From 7c0e2a1c8603917fd7d6e48a03ddad417bab2dfe Mon Sep 17 00:00:00 2001 From: eiximenis Date: Wed, 26 Jun 2019 12:58:07 +0200 Subject: [PATCH 001/149] Catalog.API gRPC support for one endpoint --- docker-compose.override.yml | 6 +- .../Catalog/Catalog.API/Catalog.API.csproj | 23 +++-- .../Catalog.API/Controllers/PicController.cs | 4 +- src/Services/Catalog/Catalog.API/Dockerfile | 7 +- .../Catalog.API/Extensions/HostExtensions.cs | 83 ++++++++++++++++ .../Catalog.API/Grpc/CatalogService.cs | 61 ++++++++++++ .../Infrastructure/CatalogContextSeed.cs | 2 +- .../Filters/HttpGlobalExceptionFilter.cs | 5 +- src/Services/Catalog/Catalog.API/Program.cs | 90 +++++++++++++++--- .../Properties/launchSettings.json | 4 +- .../Catalog/Catalog.API/Proto/catalog.proto | 36 +++++++ src/Services/Catalog/Catalog.API/Startup.cs | 39 ++++---- .../Catalog.API/appsettings.Development.json | 12 +++ .../Catalog/Catalog.API/appsettings.json | 2 + src/Services/Catalog/Catalog.API/eshop.pfx | Bin 0 -> 2565 bytes src/Services/Catalog/Catalog.API/web.config | 11 ++- 16 files changed, 332 insertions(+), 53 deletions(-) create mode 100644 src/Services/Catalog/Catalog.API/Extensions/HostExtensions.cs create mode 100644 src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs create mode 100644 src/Services/Catalog/Catalog.API/Proto/catalog.proto create mode 100644 src/Services/Catalog/Catalog.API/appsettings.Development.json create mode 100644 src/Services/Catalog/Catalog.API/eshop.pfx diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 563d712c10..77530e2133 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -77,7 +77,7 @@ services: catalog.api: environment: - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 + - ASPNETCORE_URLS=http://0.0.0.0:80;https://0.0.0.0:443; - ConnectionString=${ESHOP_AZURE_CATALOG_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word} - PicBaseUrl=${ESHOP_AZURE_STORAGE_CATALOG_URL:-http://localhost:5202/api/v1/c/catalog/items/[0]/pic/} #Local: You need to open your local dev-machine firewall at range 5100-5110. - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} @@ -91,8 +91,8 @@ services: - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} ports: - - "5101:80" # Important: In a production environment your should remove the external port (5101) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). + - "5101:80" + - "9101:443" ordering.api: environment: diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.csproj b/src/Services/Catalog/Catalog.API/Catalog.API.csproj index 6150179eeb..2b66b6f0c4 100644 --- a/src/Services/Catalog/Catalog.API/Catalog.API.csproj +++ b/src/Services/Catalog/Catalog.API/Catalog.API.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 portable true Catalog.API @@ -32,8 +32,18 @@ + + + + + + + + + + @@ -43,18 +53,16 @@ - - - - + + - + - + @@ -63,7 +71,6 @@ - diff --git a/src/Services/Catalog/Catalog.API/Controllers/PicController.cs b/src/Services/Catalog/Catalog.API/Controllers/PicController.cs index 7d798597e6..0aa3768321 100644 --- a/src/Services/Catalog/Catalog.API/Controllers/PicController.cs +++ b/src/Services/Catalog/Catalog.API/Controllers/PicController.cs @@ -13,10 +13,10 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers [ApiController] public class PicController : ControllerBase { - private readonly IHostingEnvironment _env; + private readonly IWebHostEnvironment _env; private readonly CatalogContext _catalogContext; - public PicController(IHostingEnvironment env, + public PicController(IWebHostEnvironment env, CatalogContext catalogContext) { _env = env; diff --git a/src/Services/Catalog/Catalog.API/Dockerfile b/src/Services/Catalog/Catalog.API/Dockerfile index facbb0ef35..d9f06d64dc 100644 --- a/src/Services/Catalog/Catalog.API/Dockerfile +++ b/src/Services/Catalog/Catalog.API/Dockerfile @@ -1,8 +1,9 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 +EXPOSE 443 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ @@ -28,4 +29,6 @@ FROM build AS publish FROM base AS final WORKDIR /app COPY --from=publish /app . +COPY --from=build /src/src/Services/Catalog/Catalog.API/Proto /app/Proto +COPY --from=build /src/src/Services/Catalog/Catalog.API/eshop.pfx . ENTRYPOINT ["dotnet", "Catalog.API.dll"] diff --git a/src/Services/Catalog/Catalog.API/Extensions/HostExtensions.cs b/src/Services/Catalog/Catalog.API/Extensions/HostExtensions.cs new file mode 100644 index 0000000000..cfa7e9d2f2 --- /dev/null +++ b/src/Services/Catalog/Catalog.API/Extensions/HostExtensions.cs @@ -0,0 +1,83 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using System; +using Microsoft.Extensions.DependencyInjection; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using Polly; +using System.Data.SqlClient; + +namespace Catalog.API.Extensions +{ + public static class HostExtensions + { + public static bool IsInKubernetes(this IHost host) + { + var cfg = host.Services.GetService(); + var orchestratorType = cfg.GetValue("OrchestratorType"); + return orchestratorType?.ToUpper() == "K8S"; + } + + public static IHost MigrateDbContext(this IHost host, Action seeder) where TContext : DbContext + { + var underK8s = host.IsInKubernetes(); + + using (var scope = host.Services.CreateScope()) + { + var services = scope.ServiceProvider; + + var logger = services.GetRequiredService>(); + + var context = services.GetService(); + + try + { + logger.LogInformation("Migrating database associated with context {DbContextName}", typeof(TContext).Name); + + if (underK8s) + { + InvokeSeeder(seeder, context, services); + } + else + { + var retry = Policy.Handle() + .WaitAndRetry(new TimeSpan[] + { + TimeSpan.FromSeconds(3), + TimeSpan.FromSeconds(5), + TimeSpan.FromSeconds(8), + }); + + //if the sql server container is not created on run docker compose this + //migration can't fail for network related exception. The retry options for DbContext only + //apply to transient exceptions + // Note that this is NOT applied when running some orchestrators (let the orchestrator to recreate the failing service) + retry.Execute(() => InvokeSeeder(seeder, context, services)); + } + + logger.LogInformation("Migrated database associated with context {DbContextName}", typeof(TContext).Name); + } + catch (Exception ex) + { + logger.LogError(ex, "An error occurred while migrating the database used on context {DbContextName}", typeof(TContext).Name); + if (underK8s) + { + throw; // Rethrow under k8s because we rely on k8s to re-run the pod + } + } + } + + return host; + } + + private static void InvokeSeeder(Action seeder, TContext context, IServiceProvider services) + where TContext : DbContext + { + context.Database.Migrate(); + seeder(context, services); + } + } +} diff --git a/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs b/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs new file mode 100644 index 0000000000..940a63c3ba --- /dev/null +++ b/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using CatalogApi; +using Grpc.Core; +using Microsoft.EntityFrameworkCore; +using Microsoft.eShopOnContainers.Services.Catalog.API; +using Microsoft.eShopOnContainers.Services.Catalog.API.Infrastructure; +using Microsoft.eShopOnContainers.Services.Catalog.API.Model; +using Microsoft.Extensions.Options; +using static CatalogApi.Catalog; + +namespace Catalog.API.Grpc +{ + public class CatalogService : CatalogBase + { + private readonly CatalogContext _catalogContext; + private readonly CatalogSettings _settings; + public CatalogService(CatalogContext dbContext, IOptions settings) + { + _settings = settings.Value; + _catalogContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext)); + } + + public override async Task GetItemById(CatalogItemRequest request, ServerCallContext context) + { + + if (request.Id <=0) + { + context.Status = new Status(StatusCode.FailedPrecondition, $"Id must be > 0 (received {request.Id})"); + return null; + } + + var item = await _catalogContext.CatalogItems.SingleOrDefaultAsync(ci => ci.Id == request.Id); + var baseUri = _settings.PicBaseUrl; + var azureStorageEnabled = _settings.AzureStorageEnabled; + item.FillProductUrl(baseUri, azureStorageEnabled: azureStorageEnabled); + + if (item != null) + { + return new CatalogItemResponse() + { + AvailableStock = item.AvailableStock, + Description = item.Description, + Id = item.Id, + MaxStockThreshold = item.MaxStockThreshold, + Name = item.Name, + OnReorder = item.OnReorder, + PictureFileName = item.PictureFileName, + PictureUri = item.PictureUri, + Price = (double)item.Price, + RestockThreshold = item.RestockThreshold + }; + } + + context.Status = new Status(StatusCode.NotFound, $"Product with id {request.Id} do not exist"); + return null; + } + } +} diff --git a/src/Services/Catalog/Catalog.API/Infrastructure/CatalogContextSeed.cs b/src/Services/Catalog/Catalog.API/Infrastructure/CatalogContextSeed.cs index 8bdd2a4010..ab88002ce8 100644 --- a/src/Services/Catalog/Catalog.API/Infrastructure/CatalogContextSeed.cs +++ b/src/Services/Catalog/Catalog.API/Infrastructure/CatalogContextSeed.cs @@ -18,7 +18,7 @@ public class CatalogContextSeed { - public async Task SeedAsync(CatalogContext context,IHostingEnvironment env,IOptions settings,ILogger logger) + public async Task SeedAsync(CatalogContext context,IWebHostEnvironment env,IOptions settings,ILogger logger) { var policy = CreatePolicy(logger, nameof(CatalogContextSeed)); diff --git a/src/Services/Catalog/Catalog.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs b/src/Services/Catalog/Catalog.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs index 1c1dfd45fb..5ddb81d63f 100644 --- a/src/Services/Catalog/Catalog.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs +++ b/src/Services/Catalog/Catalog.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System.Net; @@ -11,10 +12,10 @@ namespace Catalog.API.Infrastructure.Filters { public class HttpGlobalExceptionFilter : IExceptionFilter { - private readonly IHostingEnvironment env; + private readonly IWebHostEnvironment env; private readonly ILogger logger; - public HttpGlobalExceptionFilter(IHostingEnvironment env, ILogger logger) + public HttpGlobalExceptionFilter(IWebHostEnvironment env, ILogger logger) { this.env = env; this.logger = logger; diff --git a/src/Services/Catalog/Catalog.API/Program.cs b/src/Services/Catalog/Catalog.API/Program.cs index 39b071c465..3cd36a451d 100644 --- a/src/Services/Catalog/Catalog.API/Program.cs +++ b/src/Services/Catalog/Catalog.API/Program.cs @@ -1,14 +1,21 @@ -using Microsoft.AspNetCore; +using Autofac.Extensions.DependencyInjection; +using Catalog.API.Extensions; +using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF; using Microsoft.eShopOnContainers.Services.Catalog.API.Infrastructure; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Serilog; using System; +using System.Collections.Generic; using System.IO; +using System.Linq; +using System.Net; namespace Microsoft.eShopOnContainers.Services.Catalog.API { @@ -26,12 +33,12 @@ public static int Main(string[] args) try { Log.Information("Configuring web host ({ApplicationContext})...", AppName); - var host = BuildWebHost(configuration, args); + var host = CreateHostBuilder(configuration, args).Build(); Log.Information("Applying migrations ({ApplicationContext})...", AppName); host.MigrateDbContext((context, services) => { - var env = services.GetService(); + var env = services.GetService(); var settings = services.GetService>(); var logger = services.GetService>(); @@ -57,16 +64,37 @@ public static int Main(string[] args) } } - private static IWebHost BuildWebHost(IConfiguration configuration, string[] args) => - WebHost.CreateDefaultBuilder(args) - .CaptureStartupErrors(false) - .UseStartup() - .UseApplicationInsights() - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseWebRoot("Pics") - .UseConfiguration(configuration) - .UseSerilog() - .Build(); + + private static IHostBuilder CreateHostBuilder(IConfiguration configuration, string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureServices(services => services.AddAutofac()) + .UseServiceProviderFactory(new AutofacServiceProviderFactory()) + .ConfigureWebHostDefaults(builder => + { + builder.CaptureStartupErrors(false) + .UseConfiguration(configuration) + .ConfigureKestrel(options => + { + var ports = GetDefinedPorts(configuration); + foreach (var port in ports.Distinct()) + { + options.ListenAnyIP(port.portNumber, listenOptions => + { + Console.WriteLine($"Binding to port {port.portNumber} (https is {port.https})"); + if (port.https) + { + listenOptions.UseHttps("eshop.pfx"); + listenOptions.Protocols = HttpProtocols.Http1AndHttp2; + } + }); + } + }) + .UseStartup() + .UseApplicationInsights() + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseWebRoot("Pics") + .UseSerilog(); + }); private static Serilog.ILogger CreateSerilogLogger(IConfiguration configuration) { @@ -83,6 +111,40 @@ private static Serilog.ILogger CreateSerilogLogger(IConfiguration configuration) .CreateLogger(); } + private static IEnumerable<(int portNumber, bool https)> GetDefinedPorts(IConfiguration config) + { + const string https = "https://"; + const string http = "http://"; + var defport = config.GetValue("ASPNETCORE_HTTPS_PORT", 0); + if (defport != 0) + { + yield return (defport, true); + } + + var urls = config.GetValue("ASPNETCORE_URLS", null)?.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + if (urls?.Any() == true) + { + foreach (var urlString in urls) + { + var uri = urlString.ToLowerInvariant().Trim(); + var isHttps = uri.StartsWith(https); + var isHttp = uri.StartsWith(http); + if (!isHttp && !isHttps) + { + throw new ArgumentException($"Url {uri} must start with https:// or http://"); + } + + uri = uri.Substring(isHttps ? https.Length : http.Length); + var lastdots = uri.LastIndexOf(':'); + if (lastdots != -1) + { + var sport = uri.Substring(lastdots + 1); + yield return (int.TryParse(sport, out var nport) ? nport : isHttps ? 443 : 80, isHttps); + } + } + } + } + private static IConfiguration GetConfiguration() { var builder = new ConfigurationBuilder() @@ -103,4 +165,4 @@ private static IConfiguration GetConfiguration() return builder.Build(); } } -} \ No newline at end of file +} diff --git a/src/Services/Catalog/Catalog.API/Properties/launchSettings.json b/src/Services/Catalog/Catalog.API/Properties/launchSettings.json index f842f80d02..a296302694 100644 --- a/src/Services/Catalog/Catalog.API/Properties/launchSettings.json +++ b/src/Services/Catalog/Catalog.API/Properties/launchSettings.json @@ -14,10 +14,10 @@ "launchUrl": "/swagger", "environmentVariables": { "ConnectionString": "server=localhost,5433;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word", + "Serilog:LogstashgUrl": "http://locahost:8080", "ASPNETCORE_ENVIRONMENT": "Development", "EventBusConnection": "localhost", - "Serilog:SeqServerUrl": "http://locahost:5340", - "Serilog:LogstashgUrl":"http://locahost:8080", + "Serilog:SeqServerUrl": "http://locahost:5340" } }, "Microsoft.eShopOnContainers.Services.Catalog.API": { diff --git a/src/Services/Catalog/Catalog.API/Proto/catalog.proto b/src/Services/Catalog/Catalog.API/Proto/catalog.proto new file mode 100644 index 0000000000..cee2300700 --- /dev/null +++ b/src/Services/Catalog/Catalog.API/Proto/catalog.proto @@ -0,0 +1,36 @@ +syntax = "proto3"; + +package CatalogApi; + +message CatalogItemRequest { + int32 id = 1; +} + +message CatalogItemResponse { + int32 id = 1; + string name = 2; + string description=3; + double price=4; + string picture_file_name=5; + string picture_uri=6; + CatalogType catalog_type=8; + CatalogBrand catalog_brand=10; + int32 available_stock=11; + int32 restock_threshold=12; + int32 max_stock_threshold=13; + bool on_reorder=14; +} + +message CatalogBrand { + int32 id = 1; + string name = 2; +} + +message CatalogType { + int32 id = 1; + string type = 2; +} + +service Catalog { + rpc GetItemById (CatalogItemRequest) returns (CatalogItemResponse) {} +} \ No newline at end of file diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 1a51a86fb4..f81492c246 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -3,7 +3,6 @@ using global::Catalog.API.Infrastructure.Filters; using global::Catalog.API.IntegrationEvents; using Microsoft.ApplicationInsights.Extensibility; -using Microsoft.ApplicationInsights.ServiceFabric; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; @@ -31,6 +30,8 @@ using HealthChecks.UI.Client; using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.Extensions.Diagnostics.HealthChecks; +using Catalog.API.Grpc; +using System.IO; namespace Microsoft.eShopOnContainers.Services.Catalog.API { @@ -43,9 +44,10 @@ public Startup(IConfiguration configuration) public IConfiguration Configuration { get; } - public IServiceProvider ConfigureServices(IServiceCollection services) + public void ConfigureServices(IServiceCollection services) { services.AddAppInsight(Configuration) + .AddGrpc().Services .AddCustomMVC(Configuration) .AddCustomDbContext(Configuration) .AddCustomOptions(Configuration) @@ -56,11 +58,10 @@ public IServiceProvider ConfigureServices(IServiceCollection services) var container = new ContainerBuilder(); container.Populate(services); - return new AutofacServiceProvider(container.Build()); } - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { //Configure logs @@ -88,7 +89,18 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseCors("CorsPolicy"); - app.UseMvcWithDefaultRoute(); + app.UseRouting(); + app.UseEndpoints(e => + { + e.MapDefaultControllerRoute(); + e.MapGet("/_proto/", async ctx => + { + var data = await File.ReadAllTextAsync(Path.Combine(env.ContentRootPath, "Proto", "catalog.proto")); + ctx.Response.ContentType = "text/plain"; + await ctx.Response.WriteAsync(data); + }); + e.MapGrpcService(); + }); app.UseSwagger() .UseSwaggerUI(c => @@ -119,23 +131,17 @@ public static IServiceCollection AddAppInsight(this IServiceCollection services, // Enable K8s telemetry initializer services.AddApplicationInsightsKubernetesEnricher(); } - if (orchestratorType?.ToUpper() == "SF") - { - // Enable SF telemetry initializer - services.AddSingleton((serviceProvider) => - new FabricTelemetryInitializer()); - } return services; } public static IServiceCollection AddCustomMVC(this IServiceCollection services, IConfiguration configuration) - { + { services.AddMvc(options => { options.Filters.Add(typeof(HttpGlobalExceptionFilter)); }) - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2) + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddControllersAsServices(); services.AddCors(options => @@ -166,7 +172,7 @@ public static IServiceCollection AddCustomHealthCheck(this IServiceCollection se tags: new string[] { "catalogdb" }); if (!string.IsNullOrEmpty(accountName) && !string.IsNullOrEmpty(accountKey)) - { + { hcBuilder .AddAzureBlobStorage( $"DefaultEndpointsProtocol=https;AccountName={accountName};AccountKey={accountKey};EndpointSuffix=core.windows.net", @@ -256,12 +262,11 @@ public static IServiceCollection AddSwagger(this IServiceCollection services) services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info + options.SwaggerDoc("v1", new OpenApi.Models.OpenApiInfo { Title = "eShopOnContainers - Catalog HTTP API", Version = "v1", - Description = "The Catalog Microservice HTTP API. This is a Data-Driven/CRUD microservice sample", - TermsOfService = "Terms Of Service" + Description = "The Catalog Microservice HTTP API. This is a Data-Driven/CRUD microservice sample" }); }); diff --git a/src/Services/Catalog/Catalog.API/appsettings.Development.json b/src/Services/Catalog/Catalog.API/appsettings.Development.json new file mode 100644 index 0000000000..9d8370a392 --- /dev/null +++ b/src/Services/Catalog/Catalog.API/appsettings.Development.json @@ -0,0 +1,12 @@ +{ + "Serilog": { + "MinimumLevel": { + "Default": "Debug", + "Override": { + "Microsoft": "Warning", + "Microsoft.eShopOnContainers": "Debug", + "System": "Warning" + } + } + } +} \ No newline at end of file diff --git a/src/Services/Catalog/Catalog.API/appsettings.json b/src/Services/Catalog/Catalog.API/appsettings.json index cc7b1b1fb7..cc450f89dd 100644 --- a/src/Services/Catalog/Catalog.API/appsettings.json +++ b/src/Services/Catalog/Catalog.API/appsettings.json @@ -20,6 +20,7 @@ "ApplicationInsights": { "InstrumentationKey": "" }, + "EventBusConnection": "localhost", "EventBusRetryCount": 5, "UseVault": false, "Vault": { @@ -28,3 +29,4 @@ "ClientSecret": "your-client-secret" } } + \ No newline at end of file diff --git a/src/Services/Catalog/Catalog.API/eshop.pfx b/src/Services/Catalog/Catalog.API/eshop.pfx new file mode 100644 index 0000000000000000000000000000000000000000..8af82972f220725974b9943338a024eefb6ff3db GIT binary patch literal 2565 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 VChJlW5Iir_?L+PVQuddU{{l^PwHW{a literal 0 HcmV?d00001 diff --git a/src/Services/Catalog/Catalog.API/web.config b/src/Services/Catalog/Catalog.API/web.config index 2157aef313..6da4550d8d 100644 --- a/src/Services/Catalog/Catalog.API/web.config +++ b/src/Services/Catalog/Catalog.API/web.config @@ -4,8 +4,15 @@ - - + + + + + + + + + \ No newline at end of file From db00159347c4a7a0735b983f0b1a822816880c12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ram=C3=B3n=20Tom=C3=A1s?= Date: Thu, 27 Jun 2019 11:15:24 +0200 Subject: [PATCH 002/149] Added envoy + config grpc json transcoder --- docker-compose.override.yml | 11 +++- docker-compose.yml | 8 ++- eShopOnContainers-ServicesAndWebApps.sln | 21 ++++++- src/ApiGateways/Envoy/Dockerfile | 1 + src/ApiGateways/Envoy/config/catalog.proto | 42 +++++++++++++ .../Envoy/config/catalog.proto-descriptor.pb | Bin 0 -> 9348 bytes src/ApiGateways/Envoy/config/envoy.yaml | 56 ++++++++++++++++++ .../Web.Bff.Shopping/apigw/configuration.json | 4 +- .../Catalog/Catalog.API/Catalog.API.csproj | 1 - src/Services/Catalog/Catalog.API/Program.cs | 20 +++---- 10 files changed, 142 insertions(+), 22 deletions(-) create mode 100644 src/ApiGateways/Envoy/Dockerfile create mode 100644 src/ApiGateways/Envoy/config/catalog.proto create mode 100644 src/ApiGateways/Envoy/config/catalog.proto-descriptor.pb create mode 100644 src/ApiGateways/Envoy/config/envoy.yaml diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 77530e2133..c36cd2b3a3 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -77,7 +77,6 @@ services: catalog.api: environment: - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80;https://0.0.0.0:443; - ConnectionString=${ESHOP_AZURE_CATALOG_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word} - PicBaseUrl=${ESHOP_AZURE_STORAGE_CATALOG_URL:-http://localhost:5202/api/v1/c/catalog/items/[0]/pic/} #Local: You need to open your local dev-machine firewall at range 5100-5110. - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} @@ -92,7 +91,7 @@ services: - OrchestratorType=${ORCHESTRATOR_TYPE} ports: - "5101:80" - - "9101:443" + - "9101:81" ordering.api: environment: @@ -415,4 +414,10 @@ services: - WebhooksUrl=http://webhooks.api - SelfUrl=http://webhooks.client/ ports: - - "5114:80" \ No newline at end of file + - "5114:80" + + envoy: + volumes: + - ./src/ApiGateways/Envoy/config:/etc/envoy + ports: + - "51051:51051" \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 11839c8b88..3b2f4f77d1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -237,4 +237,10 @@ services: context: . dockerfile: src/Web/WebhookClient/Dockerfile depends_on: - - webhooks.api \ No newline at end of file + - webhooks.api + + envoy: + image: envoy:v1 + build: + context: src/ApiGateways/Envoy + dockerfile: Dockerfile \ No newline at end of file diff --git a/eShopOnContainers-ServicesAndWebApps.sln b/eShopOnContainers-ServicesAndWebApps.sln index 882bca09f8..4bf2fa51d9 100644 --- a/eShopOnContainers-ServicesAndWebApps.sln +++ b/eShopOnContainers-ServicesAndWebApps.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2027 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29020.237 MinimumVisualStudioVersion = 10.0.40219.1 Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{FEA0C318-FFED-4D39-8781-265718CA43DD}" EndProject @@ -148,7 +148,20 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebhookClient", "src\Web\We EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Devspace.Support", "Devspace.Support", "{68F5041D-51F2-4630-94B6-B49789F5E51A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Devspaces.Support", "src\BuildingBlocks\Devspaces.Support\Devspaces.Support.csproj", "{56C2EF0B-6BF2-41D9-BE07-6E6D08D06B35}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Devspaces.Support", "src\BuildingBlocks\Devspaces.Support\Devspaces.Support.csproj", "{56C2EF0B-6BF2-41D9-BE07-6E6D08D06B35}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Envoy", "Envoy", "{882A8F3A-C61F-4C44-86DD-A5A258714BF2}" + ProjectSection(SolutionItems) = preProject + src\ApiGateways\Envoy\Dockerfile = src\ApiGateways\Envoy\Dockerfile + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "config", "config", "{3ABEEE8C-35E0-4185-9825-C44326151F5B}" + ProjectSection(SolutionItems) = preProject + src\ApiGateways\Envoy\config\catalog.proto = src\ApiGateways\Envoy\config\catalog.proto + src\ApiGateways\Envoy\config\catalog.proto-descriptor.pb = src\ApiGateways\Envoy\config\catalog.proto-descriptor.pb + src\ApiGateways\Envoy\Dockerfile = src\ApiGateways\Envoy\Dockerfile + src\ApiGateways\Envoy\config\envoy.yaml = src\ApiGateways\Envoy\config\envoy.yaml + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -1862,6 +1875,8 @@ Global {766D7E92-6AF0-476C-ADD5-282BF4D8C576} = {E279BF0F-7F66-4F3A-A3AB-2CDA66C1CD04} {68F5041D-51F2-4630-94B6-B49789F5E51A} = {DB0EFB20-B024-4E5E-A75C-52143C131D25} {56C2EF0B-6BF2-41D9-BE07-6E6D08D06B35} = {68F5041D-51F2-4630-94B6-B49789F5E51A} + {882A8F3A-C61F-4C44-86DD-A5A258714BF2} = {77849D35-37D4-4802-81DC-9477B2775A40} + {3ABEEE8C-35E0-4185-9825-C44326151F5B} = {882A8F3A-C61F-4C44-86DD-A5A258714BF2} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {25728519-5F0F-4973-8A64-0A81EB4EA8D9} diff --git a/src/ApiGateways/Envoy/Dockerfile b/src/ApiGateways/Envoy/Dockerfile new file mode 100644 index 0000000000..0f714330f2 --- /dev/null +++ b/src/ApiGateways/Envoy/Dockerfile @@ -0,0 +1 @@ +FROM envoyproxy/envoy \ No newline at end of file diff --git a/src/ApiGateways/Envoy/config/catalog.proto b/src/ApiGateways/Envoy/config/catalog.proto new file mode 100644 index 0000000000..5fda69526e --- /dev/null +++ b/src/ApiGateways/Envoy/config/catalog.proto @@ -0,0 +1,42 @@ +syntax = "proto3"; + +package CatalogApi; + +import "google/api/annotations.proto"; + +message CatalogItemRequest { + int32 id = 1; +} + +message CatalogItemResponse { + int32 id = 1; + string name = 2; + string description=3; + double price=4; + string picture_file_name=5; + string picture_uri=6; + CatalogType catalog_type=8; + CatalogBrand catalog_brand=10; + int32 available_stock=11; + int32 restock_threshold=12; + int32 max_stock_threshold=13; + bool on_reorder=14; +} + +message CatalogBrand { + int32 id = 1; + string name = 2; +} + +message CatalogType { + int32 id = 1; + string type = 2; +} + +service Catalog { + rpc GetItemById (CatalogItemRequest) returns (CatalogItemResponse) { + option (google.api.http) = { + get: "/api/v1/catalog/items/{id}" + }; + } +} \ No newline at end of file diff --git a/src/ApiGateways/Envoy/config/catalog.proto-descriptor.pb b/src/ApiGateways/Envoy/config/catalog.proto-descriptor.pb new file mode 100644 index 0000000000000000000000000000000000000000..7c94ce9f05ec461731aea1a9659446fde3810e23 GIT binary patch literal 9348 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 G`SBmHwv - diff --git a/src/Services/Catalog/Catalog.API/Program.cs b/src/Services/Catalog/Catalog.API/Program.cs index 3cd36a451d..73d6445268 100644 --- a/src/Services/Catalog/Catalog.API/Program.cs +++ b/src/Services/Catalog/Catalog.API/Program.cs @@ -75,19 +75,15 @@ private static IHostBuilder CreateHostBuilder(IConfiguration configuration, stri .UseConfiguration(configuration) .ConfigureKestrel(options => { - var ports = GetDefinedPorts(configuration); - foreach (var port in ports.Distinct()) + options.Listen(IPAddress.Any, 80, listenOptions => { - options.ListenAnyIP(port.portNumber, listenOptions => - { - Console.WriteLine($"Binding to port {port.portNumber} (https is {port.https})"); - if (port.https) - { - listenOptions.UseHttps("eshop.pfx"); - listenOptions.Protocols = HttpProtocols.Http1AndHttp2; - } - }); - } + listenOptions.Protocols = HttpProtocols.Http1; + }); + options.Listen(IPAddress.Any, 81, listenOptions => + { + listenOptions.Protocols = HttpProtocols.Http2; + }); + }) .UseStartup() .UseApplicationInsights() From 591086956d80c9db65fbc7b117036887a1ef8d91 Mon Sep 17 00:00:00 2001 From: eiximenis Date: Thu, 27 Jun 2019 16:16:11 +0200 Subject: [PATCH 003/149] grpc poc working on k8s, using envoy as a sidecar in catalog api --- docker-compose.override.yml | 2 + docker-compose.yml | 5 +- .../apigwws/configuration-web-shopping.json | 16 ++++- .../envoycfg/_catalog.proto-descriptor.pb | Bin 0 -> 9348 bytes k8s/helm/catalog-api/envoycfg/_envoy.yaml | 56 ++++++++++++++++++ .../catalog-api/templates/deployment.yaml | 24 +++++++- k8s/helm/catalog-api/templates/envoy-cm.yaml | 16 +++++ k8s/helm/catalog-api/templates/service.yaml | 8 +++ k8s/helm/catalog-api/values.yaml | 12 +++- .../aggregator/Config/UrlsConfig.cs | 4 +- .../aggregator/Services/CatalogService.cs | 3 +- .../Catalog.API/Grpc/CatalogService.cs | 7 ++- src/Services/Catalog/Catalog.API/Program.cs | 42 +++---------- 13 files changed, 147 insertions(+), 48 deletions(-) create mode 100644 k8s/helm/catalog-api/envoycfg/_catalog.proto-descriptor.pb create mode 100644 k8s/helm/catalog-api/envoycfg/_envoy.yaml create mode 100644 k8s/helm/catalog-api/templates/envoy-cm.yaml diff --git a/docker-compose.override.yml b/docker-compose.override.yml index c36cd2b3a3..11ea6138ce 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -89,6 +89,8 @@ services: - AzureStorageEnabled=False - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} + - GRPC_PORT=81 + - PORT=80 ports: - "5101:80" - "9101:81" diff --git a/docker-compose.yml b/docker-compose.yml index 3b2f4f77d1..243fbf2c68 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -240,7 +240,4 @@ services: - webhooks.api envoy: - image: envoy:v1 - build: - context: src/ApiGateways/Envoy - dockerfile: Dockerfile \ No newline at end of file + image: envoyproxy/envoy \ No newline at end of file diff --git a/k8s/helm/apigwws/configuration-web-shopping.json b/k8s/helm/apigwws/configuration-web-shopping.json index 021056f430..208406793a 100644 --- a/k8s/helm/apigwws/configuration-web-shopping.json +++ b/k8s/helm/apigwws/configuration-web-shopping.json @@ -6,12 +6,24 @@ "DownstreamHostAndPorts": [ { "Host": "catalog", - "Port": 80 + "Port": 5000 } ], "UpstreamPathTemplate": "/api/{version}/c/{everything}", "UpstreamHttpMethod": [ "GET" ] }, + { + "DownstreamPathTemplate": "/api/{version}/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "catalog", + "Port": 80 + } + ], + "UpstreamPathTemplate": "/grpc/{version}/c/{everything}", + "UpstreamHttpMethod": [ "GET" ] + }, { "DownstreamPathTemplate": "/api/{version}/{everything}", "DownstreamScheme": "http", @@ -102,7 +114,7 @@ "DownstreamHostAndPorts": [ { "Host": "catalog", - "Port": 80 + "Port": 5000 } ], "UpstreamPathTemplate": "/catalog-api/{everything}", diff --git a/k8s/helm/catalog-api/envoycfg/_catalog.proto-descriptor.pb b/k8s/helm/catalog-api/envoycfg/_catalog.proto-descriptor.pb new file mode 100644 index 0000000000000000000000000000000000000000..7c94ce9f05ec461731aea1a9659446fde3810e23 GIT binary patch literal 9348 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 G`SBmHwv $"/api/v1/catalog/items/{id}"; - public static string GetItemsById(IEnumerable ids) => $"/api/v1/catalog/items?ids={string.Join(',', ids)}"; + // REST call standard must go through port 5000 + public static string GetItemsById(IEnumerable ids) => $":5000/api/v1/catalog/items?ids={string.Join(',', ids)}"; } public class BasketOperations diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs index 159e56d853..4c98c031e0 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs @@ -24,7 +24,8 @@ public CatalogService(HttpClient httpClient, ILogger logger, IOp public async Task GetCatalogItemAsync(int id) { - var stringContent = await _httpClient.GetStringAsync(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemById(id)); + var uri=_urls.Catalog + UrlsConfig.CatalogOperations.GetItemById(id); + var stringContent = await _httpClient.GetStringAsync(uri); return JsonConvert.DeserializeObject(stringContent); } diff --git a/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs b/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs index 940a63c3ba..97f40240fa 100644 --- a/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs +++ b/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs @@ -8,6 +8,7 @@ using Microsoft.eShopOnContainers.Services.Catalog.API; using Microsoft.eShopOnContainers.Services.Catalog.API.Infrastructure; using Microsoft.eShopOnContainers.Services.Catalog.API.Model; +using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using static CatalogApi.Catalog; @@ -17,15 +18,17 @@ public class CatalogService : CatalogBase { private readonly CatalogContext _catalogContext; private readonly CatalogSettings _settings; - public CatalogService(CatalogContext dbContext, IOptions settings) + private readonly ILogger _logger; + public CatalogService(CatalogContext dbContext, IOptions settings, ILogger logger) { _settings = settings.Value; _catalogContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext)); + _logger = logger; } public override async Task GetItemById(CatalogItemRequest request, ServerCallContext context) { - + _logger.LogInformation($"Begin grpc call CatalogService.GetItemById for product id {request.Id}"); if (request.Id <=0) { context.Status = new Status(StatusCode.FailedPrecondition, $"Id must be > 0 (received {request.Id})"); diff --git a/src/Services/Catalog/Catalog.API/Program.cs b/src/Services/Catalog/Catalog.API/Program.cs index 73d6445268..39f3643d87 100644 --- a/src/Services/Catalog/Catalog.API/Program.cs +++ b/src/Services/Catalog/Catalog.API/Program.cs @@ -75,11 +75,12 @@ private static IHostBuilder CreateHostBuilder(IConfiguration configuration, stri .UseConfiguration(configuration) .ConfigureKestrel(options => { - options.Listen(IPAddress.Any, 80, listenOptions => + var ports = GetDefinedPorts(configuration); + options.Listen(IPAddress.Any, ports.httpPort, listenOptions => { - listenOptions.Protocols = HttpProtocols.Http1; + listenOptions.Protocols = HttpProtocols.Http1AndHttp2; }); - options.Listen(IPAddress.Any, 81, listenOptions => + options.Listen(IPAddress.Any, ports.grpcPort, listenOptions => { listenOptions.Protocols = HttpProtocols.Http2; }); @@ -107,38 +108,11 @@ private static Serilog.ILogger CreateSerilogLogger(IConfiguration configuration) .CreateLogger(); } - private static IEnumerable<(int portNumber, bool https)> GetDefinedPorts(IConfiguration config) + private static (int httpPort, int grpcPort) GetDefinedPorts(IConfiguration config) { - const string https = "https://"; - const string http = "http://"; - var defport = config.GetValue("ASPNETCORE_HTTPS_PORT", 0); - if (defport != 0) - { - yield return (defport, true); - } - - var urls = config.GetValue("ASPNETCORE_URLS", null)?.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); - if (urls?.Any() == true) - { - foreach (var urlString in urls) - { - var uri = urlString.ToLowerInvariant().Trim(); - var isHttps = uri.StartsWith(https); - var isHttp = uri.StartsWith(http); - if (!isHttp && !isHttps) - { - throw new ArgumentException($"Url {uri} must start with https:// or http://"); - } - - uri = uri.Substring(isHttps ? https.Length : http.Length); - var lastdots = uri.LastIndexOf(':'); - if (lastdots != -1) - { - var sport = uri.Substring(lastdots + 1); - yield return (int.TryParse(sport, out var nport) ? nport : isHttps ? 443 : 80, isHttps); - } - } - } + var grpcPort = config.GetValue("GRPC_PORT", 5001); + var port = config.GetValue("PORT", 80); + return (port, grpcPort); } private static IConfiguration GetConfiguration() From 437bdd74314b1887ce57534220dec5163572e3d9 Mon Sep 17 00:00:00 2001 From: eiximenis Date: Wed, 17 Jul 2019 18:26:20 +0200 Subject: [PATCH 004/149] Using Directory.Build.props for handling versions. Needed to start the update to net3 --- src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj | 18 ++--- .../Mobile.Shopping.HttpAggregator.csproj | 19 +++-- .../Web.Shopping.HttpAggregator.csproj | 18 ++--- .../Devspaces.Support.csproj | 8 +- .../EventBus.Tests/EventBus.Tests.csproj | 8 +- .../EventBus/EventBus/EventBus.csproj | 4 +- .../EventBusRabbitMQ/EventBusRabbitMQ.csproj | 12 +-- .../EventBusServiceBus.csproj | 10 +-- .../IntegrationEventLogEF.csproj | 12 +-- .../WebHost.Customization.csproj | 4 +- src/Directory.Build.props | 3 + .../Basket/Basket.API/Basket.API.csproj | 38 ++++----- .../Basket.FunctionalTests.csproj | 8 +- .../Basket.UnitTests/Basket.UnitTests.csproj | 8 +- .../Catalog/Catalog.API/Catalog.API.csproj | 48 +++++------ .../Catalog/Catalog.API/Proto/catalog.proto | 13 ++- src/Services/Catalog/Catalog.API/Startup.cs | 12 ++- .../Catalog.FunctionalTests.csproj | 6 +- .../Catalog.UnitTests.csproj | 8 +- .../Identity/Identity.API/Identity.API.csproj | 39 +++++---- .../Locations.API/Locations.API.csproj | 49 ++++++----- .../Locations.FunctionalTests.csproj | 6 +- .../Marketing.API/Marketing.API.csproj | 52 ++++++------ .../Marketing.FunctionalTests.csproj | 6 +- .../Ordering/Ordering.API/Ordering.API.csproj | 42 +++++----- .../Ordering.BackgroundTasks.csproj | 28 +++---- .../Ordering.Domain/Ordering.Domain.csproj | 2 +- .../Ordering.FunctionalTests.csproj | 6 +- .../Ordering.Infrastructure.csproj | 6 +- .../Ordering.SignalrHub.csproj | 34 ++++---- .../Ordering.UnitTests.csproj | 8 +- .../Payment/Payment.API/Payment.API.csproj | 34 ++++---- .../Webhooks/Webhooks.API/Webhooks.API.csproj | 20 ++--- src/Web/WebMVC/WebMVC.csproj | 36 ++++----- src/Web/WebSPA/Startup.cs | 2 +- src/Web/WebSPA/WebSPA.csproj | 22 ++--- src/Web/WebStatus/Startup.cs | 2 +- src/Web/WebStatus/WebStatus.csproj | 33 ++++---- src/Web/WebhookClient/WebhookClient.csproj | 2 +- src/_build/dependencies.props | 81 +++++++++++++++++++ .../Application.FunctionalTests.csproj | 6 +- 41 files changed, 436 insertions(+), 337 deletions(-) create mode 100644 src/Directory.Build.props create mode 100644 src/_build/dependencies.props diff --git a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj index b1b6b1db65..5db2881d5e 100644 --- a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj +++ b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj @@ -1,17 +1,17 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) - - - - - - - - + + + + + + + + diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj index 1dd1ba1b60..6efbcf3897 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) Mobile.Shopping.HttpAggregator Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator ..\..\..\docker-compose.dcproj @@ -12,15 +12,14 @@ - - - - - - - - - + + + + + + + + diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj index d438e46026..d71cbee455 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) Web.Shopping.HttpAggregator Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator ..\..\..\docker-compose.dcproj @@ -12,14 +12,14 @@ - - - - - - - - + + + + + + + + diff --git a/src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj b/src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj index 81a897bad8..05fc111a4e 100644 --- a/src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj +++ b/src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj @@ -1,11 +1,11 @@  - netstandard2.0 + $(NetStandardTargetVersion) - - - + + + diff --git a/src/BuildingBlocks/EventBus/EventBus.Tests/EventBus.Tests.csproj b/src/BuildingBlocks/EventBus/EventBus.Tests/EventBus.Tests.csproj index ce65f7da82..ef1a920e98 100644 --- a/src/BuildingBlocks/EventBus/EventBus.Tests/EventBus.Tests.csproj +++ b/src/BuildingBlocks/EventBus/EventBus.Tests/EventBus.Tests.csproj @@ -1,13 +1,13 @@  - netstandard2.0 + $(NetStandardTargetVersion) - - - + + + diff --git a/src/BuildingBlocks/EventBus/EventBus/EventBus.csproj b/src/BuildingBlocks/EventBus/EventBus/EventBus.csproj index 9704f6ff5f..842e6d9378 100644 --- a/src/BuildingBlocks/EventBus/EventBus/EventBus.csproj +++ b/src/BuildingBlocks/EventBus/EventBus/EventBus.csproj @@ -1,12 +1,12 @@  - netstandard2.0 + $(NetStandardTargetVersion) Microsoft.eShopOnContainers.BuildingBlocks.EventBus - + \ No newline at end of file diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj index 62373d1b36..6830ac9d77 100644 --- a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj @@ -1,16 +1,16 @@  - netstandard2.0 + $(NetStandardTargetVersion) Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ - - - - - + + + + + diff --git a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj index 3de07e329d..bace8a713b 100644 --- a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj +++ b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj @@ -1,15 +1,15 @@  - netstandard2.0 + $(NetStandardTargetVersion) Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus - - - - + + + + diff --git a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj index ef3463cca6..c518e8e929 100644 --- a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj +++ b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj @@ -1,16 +1,16 @@  - netstandard2.0 + $(NetStandardTargetVersion) Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF - - - - - + + + + + diff --git a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj index 1d4ea7a2d2..14f4736430 100644 --- a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj +++ b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj @@ -1,11 +1,11 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) - + diff --git a/src/Directory.Build.props b/src/Directory.Build.props new file mode 100644 index 0000000000..b137daefc3 --- /dev/null +++ b/src/Directory.Build.props @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index d5fc0a3016..a949b26362 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj @@ -13,29 +13,29 @@ - - + + - - - - - + + + + + - - + + - - - - - - - - + + + + + + + + - + diff --git a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj index 4fd8cb9ecf..120bfde022 100644 --- a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj +++ b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) false @@ -19,15 +19,15 @@ - + - + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj index 27a8517678..95b30667ef 100644 --- a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj +++ b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) false @@ -9,15 +9,15 @@ - - + + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.csproj b/src/Services/Catalog/Catalog.API/Catalog.API.csproj index 2d5e36507b..d88c92f098 100644 --- a/src/Services/Catalog/Catalog.API/Catalog.API.csproj +++ b/src/Services/Catalog/Catalog.API/Catalog.API.csproj @@ -1,7 +1,7 @@  - netcoreapp3.0 + $(NetCoreTargetVersion) portable true Catalog.API @@ -39,30 +39,30 @@ - - - + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/src/Services/Catalog/Catalog.API/Proto/catalog.proto b/src/Services/Catalog/Catalog.API/Proto/catalog.proto index cee2300700..09d9c6e384 100644 --- a/src/Services/Catalog/Catalog.API/Proto/catalog.proto +++ b/src/Services/Catalog/Catalog.API/Proto/catalog.proto @@ -1,5 +1,10 @@ syntax = "proto3"; +/* >> +import "google/api/annotations.proto"; +<< */ + + package CatalogApi; message CatalogItemRequest { @@ -32,5 +37,11 @@ message CatalogType { } service Catalog { - rpc GetItemById (CatalogItemRequest) returns (CatalogItemResponse) {} + rpc GetItemById (CatalogItemRequest) returns (CatalogItemResponse) { + /* >> + option (google.api.http) = { + get: "/api/v1/catalog/items/{id}" + }; +<< */ + } } \ No newline at end of file diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index f81492c246..69580a9263 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -95,9 +95,17 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF e.MapDefaultControllerRoute(); e.MapGet("/_proto/", async ctx => { - var data = await File.ReadAllTextAsync(Path.Combine(env.ContentRootPath, "Proto", "catalog.proto")); ctx.Response.ContentType = "text/plain"; - await ctx.Response.WriteAsync(data); + using var fs = new FileStream(Path.Combine(env.ContentRootPath, "Proto", "catalog.proto"), FileMode.Open, FileAccess.Read); + using var sr = new StreamReader(fs); + while (!sr.EndOfStream) + { + var line = await sr.ReadLineAsync(); + if (line != "/* >>" || line != "<< */") + { + await ctx.Response.WriteAsync(line); + } + } }); e.MapGrpcService(); }); diff --git a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj index 455dfb0bc4..0e0ccbe7a8 100644 --- a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj +++ b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) false @@ -35,9 +35,9 @@ - + - + all runtime; build; native; contentfiles; analyzers diff --git a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj index efa9d56a48..58863148dd 100644 --- a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj +++ b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) false @@ -9,14 +9,14 @@ - - + + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index 728843f712..5fe2b3a869 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) aspnet-eShopOnContainers.Identity-90487118-103c-4ff0-b9da-e5e26f7ab0c5 ..\..\..\..\docker-compose.dcproj @@ -13,29 +13,28 @@ - - - + + + - - - - + + + - - - - + + + + - - - - - - - + + + + + + + @@ -43,7 +42,7 @@ - + diff --git a/src/Services/Location/Locations.API/Locations.API.csproj b/src/Services/Location/Locations.API/Locations.API.csproj index 6c33656e16..cd110d9de5 100644 --- a/src/Services/Location/Locations.API/Locations.API.csproj +++ b/src/Services/Location/Locations.API/Locations.API.csproj @@ -1,36 +1,35 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) ..\..\..\..\docker-compose.dcproj aspnet-Locations.API-20161122013619 - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj index 27898f5048..645c294f83 100644 --- a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj +++ b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) false @@ -19,9 +19,9 @@ - + - + all runtime; build; native; contentfiles; analyzers diff --git a/src/Services/Marketing/Marketing.API/Marketing.API.csproj b/src/Services/Marketing/Marketing.API/Marketing.API.csproj index c479896113..2409caf495 100644 --- a/src/Services/Marketing/Marketing.API/Marketing.API.csproj +++ b/src/Services/Marketing/Marketing.API/Marketing.API.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) ..\..\..\..\docker-compose.dcproj Microsoft.eShopOnContainers.Services.Marketing.API $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -20,33 +20,33 @@ - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj b/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj index eaedddbd5a..2ecf7e8eaf 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj +++ b/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) false @@ -19,9 +19,9 @@ - + - + all runtime; build; native; contentfiles; analyzers diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index e2b25c2a74..b839c0ea4b 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) aspnet-Ordering.API-20161122013547 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj @@ -28,32 +28,32 @@ - - - - - + + + + + - - - + + + - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj index 63df5da80e..d28d9e85f3 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj @@ -14,21 +14,21 @@ - - - - + + + + - - - - - - - - - + + + + + + + + + diff --git a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj index f79d76c60e..04a6c17705 100644 --- a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj +++ b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj @@ -1,7 +1,7 @@  - netstandard2.0 + $(NetStandardTargetVersion) diff --git a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj index 851a648951..c581d0807a 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj +++ b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) false @@ -19,9 +19,9 @@ - + - + all runtime; build; native; contentfiles; analyzers diff --git a/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj b/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj index 4f1a748895..6f7f59f9e7 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj +++ b/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj @@ -1,7 +1,7 @@  - netstandard2.0 + $(NetStandardTargetVersion) @@ -9,8 +9,8 @@ - - + + diff --git a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj index 00d70cbe6e..52cd6d24a0 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj +++ b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) ..\..\..\..\docker-compose.dcproj @@ -10,27 +10,27 @@ - - - - - - - + + + + + + + - - + + - - - - - - - + + + + + + + diff --git a/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj b/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj index e94aae4f1f..6ebbd90285 100644 --- a/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj +++ b/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj @@ -1,21 +1,21 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) false - - + + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Payment/Payment.API/Payment.API.csproj b/src/Services/Payment/Payment.API/Payment.API.csproj index efce8b8ab5..6eff9b503b 100644 --- a/src/Services/Payment/Payment.API/Payment.API.csproj +++ b/src/Services/Payment/Payment.API/Payment.API.csproj @@ -1,30 +1,30 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) ..\..\..\..\docker-compose.dcproj $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + + + diff --git a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj index 4b7fe7eae1..b489d32d8b 100644 --- a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj +++ b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) InProcess Linux @@ -10,16 +10,16 @@ - - - - + + + + - - - - - + + + + + diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj index 878bcbe7fd..09ecb18469 100644 --- a/src/Web/WebMVC/WebMVC.csproj +++ b/src/Web/WebMVC/WebMVC.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) aspnet-Microsoft.eShopOnContainers-946ae052-8305-4a99-965b-ec8636ddbae3 ..\..\..\docker-compose.dcproj 3.0 @@ -19,29 +19,29 @@ - - - + + + - - - + + + - - - - + + + + - - - - - - + + + + + + @@ -49,7 +49,7 @@ - + diff --git a/src/Web/WebSPA/Startup.cs b/src/Web/WebSPA/Startup.cs index 7a418c4320..0c1f37b3fd 100644 --- a/src/Web/WebSPA/Startup.cs +++ b/src/Web/WebSPA/Startup.cs @@ -64,7 +64,7 @@ public void ConfigureServices(IServiceCollection services) services.AddAntiforgery(options => options.HeaderName = "X-XSRF-TOKEN"); services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2) + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); diff --git a/src/Web/WebSPA/WebSPA.csproj b/src/Web/WebSPA/WebSPA.csproj index 56f94d530c..858d46eb38 100644 --- a/src/Web/WebSPA/WebSPA.csproj +++ b/src/Web/WebSPA/WebSPA.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) aspnetcorespa-c23d27a4-eb88-4b18-9b77-2a93f3b15119 ..\..\..\docker-compose.dcproj false @@ -85,19 +85,19 @@ - - - - - + + + + + - - + + - - - + + + diff --git a/src/Web/WebStatus/Startup.cs b/src/Web/WebStatus/Startup.cs index 5b35ee84f7..d36b2df904 100644 --- a/src/Web/WebStatus/Startup.cs +++ b/src/Web/WebStatus/Startup.cs @@ -33,7 +33,7 @@ public void ConfigureServices(IServiceCollection services) services.AddHealthChecksUI(); services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/src/Web/WebStatus/WebStatus.csproj b/src/Web/WebStatus/WebStatus.csproj index 7e83ddc7bc..94559d506a 100644 --- a/src/Web/WebStatus/WebStatus.csproj +++ b/src/Web/WebStatus/WebStatus.csproj @@ -1,28 +1,27 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\docker-compose.dcproj - - - - - - - + + + + + + - - - + + + - - - - - - + + + + + + diff --git a/src/Web/WebhookClient/WebhookClient.csproj b/src/Web/WebhookClient/WebhookClient.csproj index 895cbac546..51c99f974e 100644 --- a/src/Web/WebhookClient/WebhookClient.csproj +++ b/src/Web/WebhookClient/WebhookClient.csproj @@ -1,7 +1,7 @@ - netcoreapp2.2 + $(NetCoreTargetVersion) InProcess Linux 36215d41-f31a-4aa6-9929-bd67d650e7b5 diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props new file mode 100644 index 0000000000..33a049c2d8 --- /dev/null +++ b/src/_build/dependencies.props @@ -0,0 +1,81 @@ + + + netstandard2.1 + netcoreapp3.0 + 15.8.0 + latest + + + + 2.1.1 + 2.1.1 + + + + 2.9.406 + + + + 0.1.22-pre1 + 3.9.0-rc1 + 1.22.0 + + 2.2.0 + 2.2.0 + 2.2.0 + 2.2.0 + 2.2.0 + 2.2.22 + 2.2.3 + 2.2.2 + 4.9.2 + 4.2.1 + 2.2.1 + 2.6.1 + 1.0.2 + 2.2.0 + 1.0.0 + 2.2.0 + 3.0.0 + 4.5.0 + 2.2.2 + 2.2.2 + 2.2.2 + 2.2.2 + 2.2.0 + 2.2.0 + 2.2.0 + 2.2.0 + 2.2.0 + 2.2.0 + 3.0.0-preview6.19304.6 + 16.0.1 + 2.5.0 + 2.5.0 + 2.5.0 + 2.5.0 + 4.10.1 + 12.0.2 + 12.0.1 + 6.0.1 + 5.0.1 + 3.0.0-dev-00053 + 2.1.3 + 3.1.1-dev-00209 + 3.1.1 + 4.0.0 + 4.2.1 + 5.0.0-rc2 + 4.3.0 + 2.4.0 + 2.4.0 + + + + https://github.com/dotnet-architecture/eShopOnContainers/blob/master/LICENSE + https://github.com/dotnet-architecture/eShopOnContainers + https://github.com/dotnet-architecture/eShopOnContainers + Microsoft + + + \ No newline at end of file diff --git a/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj b/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj index 1d7ebd5a51..cd16dfad15 100644 --- a/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj +++ b/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + $(NetCoreTargetVersion) true false false @@ -67,9 +67,9 @@ - + - + all runtime; build; native; contentfiles; analyzers From 96c3b127217ded89f600efe1f5128b18c7f8f954 Mon Sep 17 00:00:00 2001 From: eiximenis Date: Thu, 18 Jul 2019 12:31:27 +0200 Subject: [PATCH 005/149] More package refs moved to dependencies.props --- .../EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj | 2 +- src/Services/Basket/Basket.API/Basket.API.csproj | 6 ++---- .../Basket.FunctionalTests/Basket.FunctionalTests.csproj | 5 ++--- .../Basket/Basket.UnitTests/Basket.UnitTests.csproj | 5 ++--- .../Catalog.FunctionalTests/Catalog.FunctionalTests.csproj | 4 ++-- .../Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj | 4 ++-- .../Locations.FunctionalTests.csproj | 4 ++-- .../Marketing.FunctionalTests.csproj | 4 ++-- src/Services/Ordering/Ordering.API/Ordering.API.csproj | 2 +- .../Ordering/Ordering.Domain/Ordering.Domain.csproj | 2 +- .../Ordering.FunctionalTests.csproj | 4 ++-- .../Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj | 6 +++--- src/_build/dependencies.props | 3 +++ .../Application.FunctionalTests.csproj | 2 +- 14 files changed, 26 insertions(+), 27 deletions(-) diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj index 6830ac9d77..2e5e0fa24a 100644 --- a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index a949b26362..561860b318 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -15,17 +15,15 @@ - + - - @@ -34,7 +32,7 @@ - + diff --git a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj index 120bfde022..1db1b6eeda 100644 --- a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj +++ b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj @@ -2,7 +2,6 @@ $(NetCoreTargetVersion) - false @@ -22,11 +21,11 @@ - + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj index 95b30667ef..4c062fccd1 100644 --- a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj +++ b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj @@ -11,12 +11,11 @@ - + all runtime; build; native; contentfiles; analyzers - - + diff --git a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj index 0e0ccbe7a8..88ec76d503 100644 --- a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj +++ b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj @@ -38,11 +38,11 @@ - + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj index 58863148dd..d0584bd60f 100644 --- a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj +++ b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj @@ -11,11 +11,11 @@ - + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj index 645c294f83..5ef4a42290 100644 --- a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj +++ b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj @@ -22,11 +22,11 @@ - + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj b/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj index 2ecf7e8eaf..8d28cd0fff 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj +++ b/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj @@ -22,11 +22,11 @@ - + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index b839c0ea4b..bcc4151e11 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -35,7 +35,7 @@ - + diff --git a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj index 04a6c17705..eac16c43f2 100644 --- a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj +++ b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj @@ -5,7 +5,7 @@ - + diff --git a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj index c581d0807a..a79b9a7db4 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj +++ b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj @@ -22,11 +22,11 @@ - + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj b/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj index 6ebbd90285..6d5cb9186a 100644 --- a/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj +++ b/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj @@ -9,12 +9,12 @@ - + all runtime; build; native; contentfiles; analyzers - - + + diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 33a049c2d8..16791811e3 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -24,12 +24,14 @@ 2.2.0 2.2.0 2.2.0 + 2.2.0 2.2.0 2.2.22 2.2.3 2.2.2 4.9.2 4.2.1 + 5.1.0 2.2.1 2.6.1 1.0.2 @@ -65,6 +67,7 @@ 3.1.1 4.0.0 4.2.1 + 1.2.6 5.0.0-rc2 4.3.0 2.4.0 diff --git a/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj b/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj index cd16dfad15..3f26ed8f0b 100644 --- a/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj +++ b/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj @@ -70,7 +70,7 @@ - + all runtime; build; native; contentfiles; analyzers From 577aca1d4c040d1dd0f672211a8edee99ed23a45 Mon Sep 17 00:00:00 2001 From: eiximenis Date: Fri, 19 Jul 2019 13:09:30 +0200 Subject: [PATCH 006/149] Basket.API updated to net3 --- docker-compose.override.yml | 65 +++++++++---------- src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj | 1 - .../Web.Shopping.HttpAggregator.csproj | 1 - .../WebHost.Customization.csproj | 1 - ...orizationHeaderParameterOperationFilter.cs | 13 ++-- .../Auth/Server/IdentitySecurityScheme.cs | 20 ------ .../Basket/Basket.API/Basket.API.csproj | 2 +- .../Filters/AuthorizeCheckOperationFilter.cs | 31 --------- .../Filters/HttpGlobalExceptionFilter.cs | 6 +- src/Services/Basket/Basket.API/Startup.cs | 59 ++++++++--------- .../Basket.API/appsettings.Development.json | 17 +++++ .../Basket/Basket.API/appsettings.json | 3 - .../Basket.FunctionalTests.csproj | 2 +- src/Services/Catalog/Catalog.API/Startup.cs | 1 - .../Catalog.API/appsettings.Development.json | 5 +- .../Catalog/Catalog.API/appsettings.json | 4 +- .../Catalog.FunctionalTests.csproj | 3 +- .../Identity/Identity.API/Identity.API.csproj | 1 - .../Locations.API/Locations.API.csproj | 1 - .../Locations.FunctionalTests.csproj | 2 +- .../Marketing.API/Marketing.API.csproj | 1 - .../Marketing.FunctionalTests.csproj | 2 +- ...orizationHeaderParameterOperationFilter.cs | 14 ++-- .../Ordering/Ordering.API/Ordering.API.csproj | 1 - .../Ordering.BackgroundTasks.csproj | 3 +- .../Ordering.FunctionalTests.csproj | 2 +- .../Payment/Payment.API/Payment.API.csproj | 1 - .../Webhooks/Webhooks.API/Webhooks.API.csproj | 1 - src/Web/WebMVC/WebMVC.csproj | 1 - src/Web/WebSPA/WebSPA.csproj | 1 - src/Web/WebStatus/WebStatus.csproj | 1 - src/Web/WebhookClient/WebhookClient.csproj | 1 - src/_build/dependencies.props | 7 +- .../Application.FunctionalTests.csproj | 2 +- 34 files changed, 110 insertions(+), 166 deletions(-) delete mode 100644 src/Services/Basket/Basket.API/Auth/Server/IdentitySecurityScheme.cs delete mode 100644 src/Services/Basket/Basket.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs create mode 100644 src/Services/Basket/Basket.API/appsettings.Development.json diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 11ea6138ce..e4ee766509 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -18,29 +18,29 @@ services: - SA_PASSWORD=Pass@word - ACCEPT_EULA=Y ports: - - "5433:1433" # Important: In a production environment your should remove the external port + - "5433:1433" nosql.data: ports: - - "27017:27017" # Important: In a production environment your should remove the external port + - "27017:27017" basket.data: ports: - - "6379:6379" # Important: In a production environment your should remove the external port + - "6379:6379" rabbitmq: ports: - - "15672:15672" # Important: In a production environment your should remove the external port - - "5672:5672" # Important: In a production environment your should remove the external port + - "15672:15672" + - "5672:5672" identity.api: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - SpaClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5104 - - XamarinCallback=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105/xamarincallback #localhost do not work for UWP login, so we have to use "external" IP always + - XamarinCallback=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105/xamarincallback - ConnectionString=${ESHOP_AZURE_IDENTITY_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word} - - MvcClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5100 #Local: You need to open your local dev-machine firewall at range 5100-5110. + - MvcClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5100 - LocationApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5109 - MarketingApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5110 - BasketApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5103 @@ -60,7 +60,7 @@ services: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - ConnectionString=${ESHOP_AZURE_REDIS_BASKET_DB:-basket.data} - - identityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. + - identityUrl=http://identity.api - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} @@ -71,8 +71,7 @@ services: - UseLoadTest=${USE_LOADTEST:-False} ports: - - "5103:80" # Important: In a production environment your should remove the external port (5103) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). + - "5103:80" catalog.api: environment: @@ -100,7 +99,7 @@ services: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} - - identityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. + - identityUrl=http://identity.api - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} @@ -114,8 +113,7 @@ services: - Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose - Serilog__MinimumLevel__Override__Ordering.API=Verbose ports: - - "5102:80" # Important: In a production environment your should remove the external port (5102) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). + - "5102:80" ordering.backgroundtasks: @@ -147,7 +145,7 @@ services: - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - identityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. + - identityUrl=http://identity.api - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - CampaignDetailFunctionUri=${ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI} - PicBaseUrl=${ESHOP_AZURE_STORAGE_MARKETING_URL:-http://localhost:5110/api/v1/campaigns/[0]/pic/} @@ -159,8 +157,7 @@ services: - OrchestratorType=${ORCHESTRATOR_TYPE} - UseLoadTest=${USE_LOADTEST:-False} ports: - - "5110:80" # Important: In a production environment your should remove the external port (5110) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). + - "5110:80" payment.api: environment: @@ -175,8 +172,7 @@ services: - Serilog__MinimumLevel__Override__Payment.API.IntegrationEvents.EventHandling=Verbose - Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose ports: - - "5108:80" # Important: In a production environment your should remove the external port (5108) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). + - "5108:80" locations.api: environment: @@ -184,7 +180,7 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:80 - ConnectionString=${ESHOP_AZURE_COSMOSDB:-mongodb://nosql.data} - Database=LocationsDb - - identityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. + - identityUrl=http://identity.api - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} @@ -194,8 +190,8 @@ services: - OrchestratorType=${ORCHESTRATOR_TYPE} - UseLoadTest=${USE_LOADTEST:-False} ports: - - "5109:80" # Important: In a production environment your should remove the external port (5109) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). + - "5109:80" + webhooks.api: environment: - ASPNETCORE_ENVIRONMENT=Development @@ -207,13 +203,12 @@ services: - IdentityUrl=http://identity.api - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 ports: - - "5113:80" # Important: In a production environment your should remove the external port (5109) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). + - "5113:80" mobileshoppingapigw: environment: - ASPNETCORE_ENVIRONMENT=Development - - IdentityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. + - IdentityUrl=http://identity.api - urls__basket=http://basket.api - urls__catalog=http://catalog.api - urls__orders=http://ordering.api @@ -233,7 +228,7 @@ services: mobilemarketingapigw: environment: - ASPNETCORE_ENVIRONMENT=Development - - IdentityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. + - IdentityUrl=http://identity.api - CatalogUrlHC=http://catalog.api/hc - OrderingUrlHC=http://ordering.api/hc - IdentityUrlHC=http://identity.api/hc @@ -249,7 +244,7 @@ services: webshoppingapigw: environment: - ASPNETCORE_ENVIRONMENT=Development - - IdentityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. + - IdentityUrl=http://identity.api - CatalogUrlHC=http://catalog.api/hc - OrderingUrlHC=http://ordering.api/hc - IdentityUrlHC=http://identity.api/hc @@ -265,7 +260,7 @@ services: webmarketingapigw: environment: - ASPNETCORE_ENVIRONMENT=Development - - IdentityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. + - IdentityUrl=http://identity.api - CatalogUrlHC=http://catalog.api/hc - OrderingUrlHC=http://ordering.api/hc - IdentityUrlHC=http://identity.api/hc @@ -284,7 +279,7 @@ services: - urls__basket=http://basket.api - urls__catalog=http://catalog.api - urls__orders=http://ordering.api - - urls__identity=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. + - urls__identity=http://identity.api - CatalogUrlHC=http://catalog.api/hc - OrderingUrlHC=http://ordering.api/hc - IdentityUrlHC=http://identity.api/hc @@ -293,8 +288,7 @@ services: - PaymentUrlHC=http://payment.api/hc - LocationUrlHC=http://locations.api/hc ports: - - "5120:80" # Important: In a production environment your should remove the external port (5120) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). + - "5120:80" webshoppingagg: environment: @@ -302,7 +296,7 @@ services: - urls__basket=http://basket.api - urls__catalog=http://catalog.api - urls__orders=http://ordering.api - - urls__identity=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. + - urls__identity=http://identity.api - CatalogUrlHC=http://catalog.api/hc - OrderingUrlHC=http://ordering.api/hc - IdentityUrlHC=http://identity.api/hc @@ -311,8 +305,7 @@ services: - PaymentUrlHC=http://payment.api/hc - LocationUrlHC=http://locations.api/hc ports: - - "5121:80" # Important: In a production environment your should remove the external port (5121) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). + - "5121:80" ordering.signalrhub: environment: @@ -324,7 +317,7 @@ services: - AzureServiceBusEnabled=False - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} - - identityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. + - identityUrl=http://identity.api ports: - "5112:80" @@ -376,7 +369,7 @@ services: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - - IdentityUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + - IdentityUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - PurchaseUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5202 - MarketingUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5203 - PurchaseUrlHC=http://webshoppingapigw/hc @@ -394,7 +387,7 @@ services: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - PurchaseUrl=http://webshoppingapigw - - IdentityUrl=http://10.0.75.1:5105 # Local Mac: Use http://docker.for.mac.localhost:5105 || Local Windows: Use 10.0.75.1 in a "Docker for Windows" environment, if using "localhost" from browser. || #Remote access: Use ${ESHOP_EXTERNAL_DNS_NAME_OR_IP} if using external IP or DNS name from browser. + - IdentityUrl=http://10.0.75.1:5105 - MarketingUrl=http://webmarketingapigw - SignalrHubUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5202 - IdentityUrlHC=http://identity.api/hc diff --git a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj index 5db2881d5e..ea011f6249 100644 --- a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj +++ b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj @@ -7,7 +7,6 @@ - diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj index d71cbee455..faa609b06d 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj @@ -14,7 +14,6 @@ - diff --git a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj index 14f4736430..3c3f6a3e39 100644 --- a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj +++ b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj @@ -6,7 +6,6 @@ - diff --git a/src/Services/Basket/Basket.API/Auth/Server/AuthorizationHeaderParameterOperationFilter.cs b/src/Services/Basket/Basket.API/Auth/Server/AuthorizationHeaderParameterOperationFilter.cs index 90aa893229..7fe19bae37 100644 --- a/src/Services/Basket/Basket.API/Auth/Server/AuthorizationHeaderParameterOperationFilter.cs +++ b/src/Services/Basket/Basket.API/Auth/Server/AuthorizationHeaderParameterOperationFilter.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Mvc.Authorization; +using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.Swagger; using Swashbuckle.AspNetCore.SwaggerGen; using System.Collections.Generic; @@ -8,7 +9,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.Auth.Server { public class AuthorizationHeaderParameterOperationFilter : IOperationFilter { - public void Apply(Operation operation, OperationFilterContext context) + public void Apply(OpenApiOperation operation, OperationFilterContext context) { var filterPipeline = context.ApiDescription.ActionDescriptor.FilterDescriptors; var isAuthorized = filterPipeline.Select(filterInfo => filterInfo.Filter).Any(filter => filter is AuthorizeFilter); @@ -17,15 +18,15 @@ public void Apply(Operation operation, OperationFilterContext context) if (isAuthorized && !allowAnonymous) { if (operation.Parameters == null) - operation.Parameters = new List(); + operation.Parameters = new List(); - operation.Parameters.Add(new NonBodyParameter + + operation.Parameters.Add(new OpenApiParameter { Name = "Authorization", - In = "header", + In = ParameterLocation.Header, Description = "access token", - Required = true, - Type = "string" + Required = true }); } } diff --git a/src/Services/Basket/Basket.API/Auth/Server/IdentitySecurityScheme.cs b/src/Services/Basket/Basket.API/Auth/Server/IdentitySecurityScheme.cs deleted file mode 100644 index 397f66db4f..0000000000 --- a/src/Services/Basket/Basket.API/Auth/Server/IdentitySecurityScheme.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Swashbuckle.AspNetCore.Swagger; -using System.Collections.Generic; - -namespace Microsoft.eShopOnContainers.Services.Basket.API.Auth.Server -{ - public class IdentitySecurityScheme:SecurityScheme - { - public IdentitySecurityScheme() - { - Type = "IdentitySecurityScheme"; - Description = "Security definition that provides to the user of Swagger a mechanism to obtain a token from the identity service that secures the api"; - Extensions.Add("authorizationUrl", "http://localhost:5103/Auth/Client/popup.html"); - Extensions.Add("flow", "implicit"); - Extensions.Add("scopes", new List - { - "basket" - }); - } - } -} diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index 561860b318..00718ad632 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -21,7 +21,7 @@ - + diff --git a/src/Services/Basket/Basket.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs b/src/Services/Basket/Basket.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs deleted file mode 100644 index 1ae38c8b0d..0000000000 --- a/src/Services/Basket/Basket.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Swashbuckle.AspNetCore.Swagger; -using Swashbuckle.AspNetCore.SwaggerGen; -using System.Collections.Generic; -using System.Linq; - -namespace Basket.API.Infrastructure.Filters -{ - public class AuthorizeCheckOperationFilter : IOperationFilter - { - public void Apply(Operation operation, OperationFilterContext context) - { - // Check for authorize attribute - var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() || - context.MethodInfo.GetCustomAttributes(true).OfType().Any(); - - if (!hasAuthorize) return; - - operation.Responses.TryAdd("401", new Response { Description = "Unauthorized" }); - operation.Responses.TryAdd("403", new Response { Description = "Forbidden" }); - - operation.Security = new List>> - { - new Dictionary> - { - { "oauth2", new [] { "basketapi" } } - } - }; - } - } -} \ No newline at end of file diff --git a/src/Services/Basket/Basket.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs b/src/Services/Basket/Basket.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs index dab7259157..0fd08a0a96 100644 --- a/src/Services/Basket/Basket.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs +++ b/src/Services/Basket/Basket.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs @@ -3,17 +3,19 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System.Net; + namespace Basket.API.Infrastructure.Filters { public partial class HttpGlobalExceptionFilter : IExceptionFilter { - private readonly IHostingEnvironment env; + private readonly IWebHostEnvironment env; private readonly ILogger logger; - public HttpGlobalExceptionFilter(IHostingEnvironment env, ILogger logger) + public HttpGlobalExceptionFilter(IWebHostEnvironment env, ILogger logger) { this.env = env; this.logger = logger; diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index 9cfabf20a0..79208b19bc 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -5,9 +5,6 @@ using Basket.API.IntegrationEvents.EventHandling; using Basket.API.IntegrationEvents.Events; using HealthChecks.UI.Client; - -using Microsoft.ApplicationInsights.Extensibility; -using Microsoft.ApplicationInsights.ServiceFabric; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; @@ -60,7 +57,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) options.Filters.Add(typeof(ValidateModelStateFilter)); }) - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2) + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddControllersAsServices(); ConfigureAuthService(services); @@ -135,27 +132,29 @@ public IServiceProvider ConfigureServices(IServiceCollection services) services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new Info + options.SwaggerDoc("v1", new OpenApi.Models.OpenApiInfo { Title = "Basket HTTP API", Version = "v1", - Description = "The Basket Service HTTP API", - TermsOfService = "Terms Of Service" + Description = "The Basket Service HTTP API" }); - options.AddSecurityDefinition("oauth2", new OAuth2Scheme + options.AddSecurityDefinition("oauth2", new OpenApi.Models.OpenApiSecurityScheme { - Type = "oauth2", - Flow = "implicit", - AuthorizationUrl = $"{Configuration.GetValue("IdentityUrlExternal")}/connect/authorize", - TokenUrl = $"{Configuration.GetValue("IdentityUrlExternal")}/connect/token", - Scopes = new Dictionary() + Flows = new OpenApi.Models.OpenApiOAuthFlows() { - { "basket", "Basket API" } + Implicit = new OpenApi.Models.OpenApiOAuthFlow() + { + AuthorizationUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/token"), + Scopes = new Dictionary() + { + { "basket", "Basket API" } + } + } } }); - options.OperationFilter(); }); services.AddCors(options => @@ -178,10 +177,10 @@ public IServiceProvider ConfigureServices(IServiceCollection services) return new AutofacServiceProvider(container.Build()); } - + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { //loggerFactory.AddAzureWebAppDiagnostics(); //loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); @@ -203,18 +202,19 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF Predicate = r => r.Name.Contains("self") }); - app.UseStaticFiles(); + app.UseStaticFiles(); app.UseCors("CorsPolicy"); ConfigureAuth(app); - app.UseMvcWithDefaultRoute(); + app.UseRouting(); + app.UseEndpoints(e => e.MapDefaultControllerRoute()); app.UseSwagger() .UseSwaggerUI(c => { c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Basket.API V1"); - c.OAuthClientId ("basketswaggerui"); + c.OAuthClientId("basketswaggerui"); c.OAuthAppName("Basket Swagger UI"); }); @@ -226,18 +226,12 @@ private void RegisterAppInsights(IServiceCollection services) { services.AddApplicationInsightsTelemetry(Configuration); var orchestratorType = Configuration.GetValue("OrchestratorType"); - + if (orchestratorType?.ToUpper() == "K8S") { // Enable K8s telemetry initializer services.AddApplicationInsightsKubernetesEnricher(); } - if (orchestratorType?.ToUpper() == "SF") - { - // Enable SF telemetry initializer - services.AddSingleton((serviceProvider) => - new FabricTelemetryInitializer()); - } } private void ConfigureAuthService(IServiceCollection services) @@ -245,8 +239,8 @@ private void ConfigureAuthService(IServiceCollection services) // prevent from mapping "sub" claim to nameidentifier. JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); - var identityUrl = Configuration.GetValue("IdentityUrl"); - + var identityUrl = Configuration.GetValue("IdentityUrl"); + services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; @@ -268,6 +262,7 @@ protected virtual void ConfigureAuth(IApplicationBuilder app) } app.UseAuthentication(); + app.UseAuthorization(); } private void RegisterEventBus(IServiceCollection services) @@ -281,7 +276,7 @@ private void RegisterEventBus(IServiceCollection services) var serviceBusPersisterConnection = sp.GetRequiredService(); var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); - var eventBusSubcriptionsManager = sp.GetRequiredService(); + var eventBusSubcriptionsManager = sp.GetRequiredService(); return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); @@ -318,7 +313,7 @@ private void ConfigureEventBus(IApplicationBuilder app) eventBus.Subscribe(); eventBus.Subscribe(); - } + } } public static class CustomExtensionMethods @@ -329,7 +324,7 @@ public static IServiceCollection AddCustomHealthCheck(this IServiceCollection se hcBuilder.AddCheck("self", () => HealthCheckResult.Healthy()); - hcBuilder + hcBuilder .AddRedis( configuration["ConnectionString"], name: "redis-check", diff --git a/src/Services/Basket/Basket.API/appsettings.Development.json b/src/Services/Basket/Basket.API/appsettings.Development.json new file mode 100644 index 0000000000..f4a3b9407f --- /dev/null +++ b/src/Services/Basket/Basket.API/appsettings.Development.json @@ -0,0 +1,17 @@ +{ + "Serilog": { + "MinimumLevel": { + "Default": "Debug", + "Override": { + "Microsoft": "Warning", + "Microsoft.eShopOnContainers": "Debug", + "System": "Warning" + } + } + }, + "IdentityUrlExternal": "http://localhost:5105", + "IdentityUrl": "http://localhost:5105", + "ConnectionString": "127.0.0.1", + "AzureServiceBusEnabled": false, + "EventBusConnection": "localhost" +} \ No newline at end of file diff --git a/src/Services/Basket/Basket.API/appsettings.json b/src/Services/Basket/Basket.API/appsettings.json index fc8fc544a6..37d5b08d6d 100644 --- a/src/Services/Basket/Basket.API/appsettings.json +++ b/src/Services/Basket/Basket.API/appsettings.json @@ -11,9 +11,6 @@ } } }, - "IdentityUrl": "http://localhost:5105", - "ConnectionString": "127.0.0.1", - "AzureServiceBusEnabled": false, "SubscriptionClientName": "Basket", "ApplicationInsights": { "InstrumentationKey": "" diff --git a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj index 1db1b6eeda..168176aaf8 100644 --- a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj +++ b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj @@ -19,7 +19,7 @@ - + all diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 69580a9263..716e0f1caa 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -2,7 +2,6 @@ using Autofac.Extensions.DependencyInjection; using global::Catalog.API.Infrastructure.Filters; using global::Catalog.API.IntegrationEvents; -using Microsoft.ApplicationInsights.Extensibility; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; diff --git a/src/Services/Catalog/Catalog.API/appsettings.Development.json b/src/Services/Catalog/Catalog.API/appsettings.Development.json index 9d8370a392..1d5574f634 100644 --- a/src/Services/Catalog/Catalog.API/appsettings.Development.json +++ b/src/Services/Catalog/Catalog.API/appsettings.Development.json @@ -1,4 +1,6 @@ { + "ConnectionString": "Server=tcp:127.0.0.1,5433;Initial Catalog=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word", + "PicBaseUrl": "http://localhost:5101/api/v1/catalog/items/[0]/pic/", "Serilog": { "MinimumLevel": { "Default": "Debug", @@ -8,5 +10,6 @@ "System": "Warning" } } - } + }, + "EventBusConnection": "localhost" } \ No newline at end of file diff --git a/src/Services/Catalog/Catalog.API/appsettings.json b/src/Services/Catalog/Catalog.API/appsettings.json index cc450f89dd..e9103c7a6c 100644 --- a/src/Services/Catalog/Catalog.API/appsettings.json +++ b/src/Services/Catalog/Catalog.API/appsettings.json @@ -1,6 +1,4 @@ { - "ConnectionString": "Server=tcp:127.0.0.1,5433;Initial Catalog=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word", - "PicBaseUrl": "http://localhost:5101/api/v1/catalog/items/[0]/pic/", "UseCustomizationData": false, "Serilog": { "SeqServerUrl": null, @@ -20,7 +18,6 @@ "ApplicationInsights": { "InstrumentationKey": "" }, - "EventBusConnection": "localhost", "EventBusRetryCount": 5, "UseVault": false, "Vault": { @@ -28,5 +25,6 @@ "ClientId": "your-clien-id", "ClientSecret": "your-client-secret" } + } \ No newline at end of file diff --git a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj index 88ec76d503..a679d5d35b 100644 --- a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj +++ b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj @@ -33,10 +33,9 @@ - - + all diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index 5fe2b3a869..e68e36a7ea 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -21,7 +21,6 @@ - diff --git a/src/Services/Location/Locations.API/Locations.API.csproj b/src/Services/Location/Locations.API/Locations.API.csproj index cd110d9de5..7f658ee2d7 100644 --- a/src/Services/Location/Locations.API/Locations.API.csproj +++ b/src/Services/Location/Locations.API/Locations.API.csproj @@ -14,7 +14,6 @@ - diff --git a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj index 5ef4a42290..dd1432b487 100644 --- a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj +++ b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj @@ -20,7 +20,7 @@ - + all diff --git a/src/Services/Marketing/Marketing.API/Marketing.API.csproj b/src/Services/Marketing/Marketing.API/Marketing.API.csproj index 2409caf495..74d7574a65 100644 --- a/src/Services/Marketing/Marketing.API/Marketing.API.csproj +++ b/src/Services/Marketing/Marketing.API/Marketing.API.csproj @@ -31,7 +31,6 @@ - diff --git a/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj b/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj index 8d28cd0fff..eddf06086c 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj +++ b/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj @@ -20,7 +20,7 @@ - + all diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/Auth/AuthorizationHeaderParameterOperationFilter.cs b/src/Services/Ordering/Ordering.API/Infrastructure/Auth/AuthorizationHeaderParameterOperationFilter.cs index f780ff4a5e..7e30a69fc3 100644 --- a/src/Services/Ordering/Ordering.API/Infrastructure/Auth/AuthorizationHeaderParameterOperationFilter.cs +++ b/src/Services/Ordering/Ordering.API/Infrastructure/Auth/AuthorizationHeaderParameterOperationFilter.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Mvc.Authorization; +using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.Swagger; using Swashbuckle.AspNetCore.SwaggerGen; using System.Collections.Generic; @@ -8,7 +9,7 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Auth { public class AuthorizationHeaderParameterOperationFilter : IOperationFilter { - public void Apply(Operation operation, OperationFilterContext context) + public void Apply(OpenApiOperation operation, OperationFilterContext context) { var filterPipeline = context.ApiDescription.ActionDescriptor.FilterDescriptors; var isAuthorized = filterPipeline.Select(filterInfo => filterInfo.Filter).Any(filter => filter is AuthorizeFilter); @@ -17,17 +18,18 @@ public void Apply(Operation operation, OperationFilterContext context) if (isAuthorized && !allowAnonymous) { if (operation.Parameters == null) - operation.Parameters = new List(); + operation.Parameters = new List(); - operation.Parameters.Add(new NonBodyParameter + + operation.Parameters.Add(new OpenApiParameter { Name = "Authorization", - In = "header", + In = ParameterLocation.Header, Description = "access token", - Required = true, - Type = "string" + Required = true }); } } + } } diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index bcc4151e11..4bbfab9d4c 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -41,7 +41,6 @@ - diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj index d28d9e85f3..5681288a84 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj @@ -18,8 +18,7 @@ - - + diff --git a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj index a79b9a7db4..5acad11ca5 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj +++ b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj @@ -20,7 +20,7 @@ - + all diff --git a/src/Services/Payment/Payment.API/Payment.API.csproj b/src/Services/Payment/Payment.API/Payment.API.csproj index 6eff9b503b..79e071e762 100644 --- a/src/Services/Payment/Payment.API/Payment.API.csproj +++ b/src/Services/Payment/Payment.API/Payment.API.csproj @@ -15,7 +15,6 @@ - diff --git a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj index b489d32d8b..1dcf916f59 100644 --- a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj +++ b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj @@ -7,7 +7,6 @@ - diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj index 09ecb18469..42f8f16dd0 100644 --- a/src/Web/WebMVC/WebMVC.csproj +++ b/src/Web/WebMVC/WebMVC.csproj @@ -31,7 +31,6 @@ - diff --git a/src/Web/WebSPA/WebSPA.csproj b/src/Web/WebSPA/WebSPA.csproj index 858d46eb38..365b3205a3 100644 --- a/src/Web/WebSPA/WebSPA.csproj +++ b/src/Web/WebSPA/WebSPA.csproj @@ -93,7 +93,6 @@ - diff --git a/src/Web/WebStatus/WebStatus.csproj b/src/Web/WebStatus/WebStatus.csproj index 94559d506a..9364cd5e2e 100644 --- a/src/Web/WebStatus/WebStatus.csproj +++ b/src/Web/WebStatus/WebStatus.csproj @@ -11,7 +11,6 @@ - diff --git a/src/Web/WebhookClient/WebhookClient.csproj b/src/Web/WebhookClient/WebhookClient.csproj index 51c99f974e..95ec6e8fbd 100644 --- a/src/Web/WebhookClient/WebhookClient.csproj +++ b/src/Web/WebhookClient/WebhookClient.csproj @@ -9,7 +9,6 @@ - diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 16791811e3..de5ed4901c 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -31,19 +31,22 @@ 2.2.2 4.9.2 4.2.1 + 1.50.7 5.1.0 2.2.1 2.6.1 1.0.2 + 3.0.0-preview6.19307.2 2.2.0 1.0.0 2.2.0 + 3.0.0-preview6.19307.2 3.0.0 - 4.5.0 + 4.5.0 2.2.2 2.2.2 2.2.2 - 2.2.2 + 2.2.2 2.2.0 2.2.0 2.2.0 diff --git a/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj b/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj index 3f26ed8f0b..96ef8f0464 100644 --- a/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj +++ b/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj @@ -68,7 +68,7 @@ - + all From 66bee87584ff922a173fa244af2338623213fa5e Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Mon, 22 Jul 2019 16:16:57 +0200 Subject: [PATCH 007/149] migrate marketing --- .../WebHost.Customization.csproj | 6 +++ .../WebHostExtensions.cs | 5 +-- .../Basket/Basket.API/Basket.API.csproj | 1 + src/Services/Basket/Basket.API/Dockerfile | 4 +- .../Catalog/Catalog.API/Catalog.API.csproj | 1 + .../Marketing/Marketing.API/Dockerfile | 4 +- .../Marketing.API/Marketing.API.csproj | 3 +- .../Marketing/Marketing.API/Startup.cs | 44 ++++++++----------- src/_build/dependencies.props | 13 ++++-- 9 files changed, 44 insertions(+), 37 deletions(-) diff --git a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj index 3c3f6a3e39..acae2354a0 100644 --- a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj +++ b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj @@ -6,6 +6,12 @@ + + + + + + diff --git a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs index fa06e0a0b9..fd17f4a0dd 100644 --- a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs +++ b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs @@ -3,7 +3,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Polly; -using Polly.Retry; using System; using System.Data.SqlClient; @@ -18,7 +17,7 @@ public static bool IsInKubernetes(this IWebHost webHost) return orchestratorType?.ToUpper() == "K8S"; } - public static IWebHost MigrateDbContext(this IWebHost webHost, Action seeder) where TContext : DbContext + public static IWebHost MigrateDbContext(this IWebHost webHost, Action seeder) where TContext : DbContext { var underK8s = webHost.IsInKubernetes(); @@ -71,7 +70,7 @@ public static IWebHost MigrateDbContext(this IWebHost webHost, Action< } private static void InvokeSeeder(Action seeder, TContext context, IServiceProvider services) - where TContext : DbContext + where TContext : DbContext { context.Database.Migrate(); seeder(context, services); diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index 00718ad632..22c562da00 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -4,6 +4,7 @@ $(NetCoreTargetVersion) $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj + 8.0 diff --git a/src/Services/Basket/Basket.API/Dockerfile b/src/Services/Basket/Basket.API/Dockerfile index 909567b2c0..c70aa3a96a 100644 --- a/src/Services/Basket/Basket.API/Dockerfile +++ b/src/Services/Basket/Basket.API/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.csproj b/src/Services/Catalog/Catalog.API/Catalog.API.csproj index d88c92f098..2640185d1d 100644 --- a/src/Services/Catalog/Catalog.API/Catalog.API.csproj +++ b/src/Services/Catalog/Catalog.API/Catalog.API.csproj @@ -8,6 +8,7 @@ Catalog.API aspnet-Catalog.API-20161122013618 ..\..\..\..\docker-compose.dcproj + 8.0 diff --git a/src/Services/Marketing/Marketing.API/Dockerfile b/src/Services/Marketing/Marketing.API/Dockerfile index 3e0936e816..108b63f28e 100644 --- a/src/Services/Marketing/Marketing.API/Dockerfile +++ b/src/Services/Marketing/Marketing.API/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/Services/Marketing/Marketing.API/Marketing.API.csproj b/src/Services/Marketing/Marketing.API/Marketing.API.csproj index 74d7574a65..8eb50e2a39 100644 --- a/src/Services/Marketing/Marketing.API/Marketing.API.csproj +++ b/src/Services/Marketing/Marketing.API/Marketing.API.csproj @@ -9,6 +9,7 @@ /subscriptions/6c22bb55-0221-4ce4-9bf1-3c4a10a7294c/resourcegroups/eshop-log/providers/microsoft.insights/components/eshopappinsights /subscriptions/6c22bb55-0221-4ce4-9bf1-3c4a10a7294c/resourcegroups/eshop-log/providers/microsoft.insights/components/eshopappinsights + 8.0 @@ -30,7 +31,6 @@ - @@ -46,6 +46,7 @@ + diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs index 7f990e3ad9..cb82dbf88a 100644 --- a/src/Services/Marketing/Marketing.API/Startup.cs +++ b/src/Services/Marketing/Marketing.API/Startup.cs @@ -21,8 +21,6 @@ using Infrastructure.Services; using IntegrationEvents.Events; using Marketing.API.IntegrationEvents.Handlers; - using Microsoft.ApplicationInsights.Extensibility; - using Microsoft.ApplicationInsights.ServiceFabric; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Mvc; @@ -30,7 +28,6 @@ using Microsoft.eShopOnContainers.Services.Marketing.API.Infrastructure.Middlewares; using Microsoft.Extensions.Diagnostics.HealthChecks; using RabbitMQ.Client; - using Swashbuckle.AspNetCore.Swagger; using System; using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; @@ -63,7 +60,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) services.Configure(Configuration); - ConfigureAuthService(services); + ConfigureAuthService(services); services.AddDbContext(options => { @@ -123,29 +120,32 @@ public IServiceProvider ConfigureServices(IServiceCollection services) return new DefaultRabbitMQPersistentConnection(factory, logger, retryCount); }); - } + } // Add framework services. services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info + options.SwaggerDoc("v1", new OpenApi.Models.OpenApiInfo { Title = "Marketing HTTP API", Version = "v1", - Description = "The Marketing Service HTTP API", - TermsOfService = "Terms Of Service" + Description = "The Marketing Service HTTP API" }); - options.AddSecurityDefinition("oauth2", new OAuth2Scheme + options.AddSecurityDefinition("oauth2", new OpenApi.Models.OpenApiSecurityScheme { - Type = "oauth2", - Flow = "implicit", - AuthorizationUrl = $"{Configuration.GetValue("IdentityUrlExternal")}/connect/authorize", - TokenUrl = $"{Configuration.GetValue("IdentityUrlExternal")}/connect/token", - Scopes = new Dictionary() + Flows = new OpenApi.Models.OpenApiOAuthFlows() { - { "marketing", "Marketing API" } + Implicit = new OpenApi.Models.OpenApiOAuthFlow() + { + AuthorizationUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/token"), + Scopes = new Dictionary() + { + { "marketing", "Marketing API" } + } + } } }); @@ -178,7 +178,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { //loggerFactory.AddAzureWebAppDiagnostics(); //loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); @@ -213,7 +213,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFa c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Marketing.API V1"); c.OAuthClientId("marketingswaggerui"); c.OAuthAppName("Marketing Swagger UI"); - }); + }); ConfigureEventBus(app); } @@ -228,12 +228,6 @@ private void RegisterAppInsights(IServiceCollection services) // Enable K8s telemetry initializer services.AddApplicationInsightsKubernetesEnricher(); } - if (orchestratorType?.ToUpper() == "SF") - { - // Enable SF telemetry initializer - services.AddSingleton((serviceProvider) => - new FabricTelemetryInitializer()); - } } private void ConfigureAuthService(IServiceCollection services) @@ -241,7 +235,7 @@ private void ConfigureAuthService(IServiceCollection services) // prevent from mapping "sub" claim to nameidentifier. JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); - services.AddAuthentication(options=> + services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; @@ -265,7 +259,7 @@ private void RegisterEventBus(IServiceCollection services) var serviceBusPersisterConnection = sp.GetRequiredService(); var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); - var eventBusSubcriptionsManager = sp.GetRequiredService(); + var eventBusSubcriptionsManager = sp.GetRequiredService(); return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index de5ed4901c..6a91b3f6ad 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -43,10 +43,15 @@ 3.0.0-preview6.19307.2 3.0.0 4.5.0 - 2.2.2 - 2.2.2 - 2.2.2 - 2.2.2 + + 3.0.0-preview4-19123-01 + 4.7.0-preview6.19303.8 + + 3.0.0-preview6.19304.10 + 3.0.0-preview6.19304.10 + 3.0.0-preview6.19304.10 + 3.0.0-preview6.19304.10 + 2.2.0 2.2.0 2.2.0 From e7f26be573a2717ce3a7b3ef39f2104b5be12a72 Mon Sep 17 00:00:00 2001 From: = Date: Mon, 22 Jul 2019 16:23:30 +0200 Subject: [PATCH 008/149] Migrate locations api --- .../Filters/AuthorizeCheckOperationFilter.cs | 23 +++++++----- .../Filters/HttpGlobalExceptionFilter.cs | 5 +-- .../Locations.API/Locations.API.csproj | 2 ++ .../Location/Locations.API/Startup.cs | 36 +++++++++---------- src/_build/dependencies.props | 4 ++- 5 files changed, 38 insertions(+), 32 deletions(-) diff --git a/src/Services/Location/Locations.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs b/src/Services/Location/Locations.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs index e4194daebc..e2d4c9aed5 100644 --- a/src/Services/Location/Locations.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs +++ b/src/Services/Location/Locations.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs @@ -1,6 +1,6 @@  using Microsoft.AspNetCore.Authorization; -using Swashbuckle.AspNetCore.Swagger; +using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; using System.Collections.Generic; using System.Linq; @@ -9,7 +9,7 @@ namespace Microsoft.eShopOnContainers.Services.Locations.API.Infrastructure.Filt { internal class AuthorizeCheckOperationFilter : IOperationFilter { - public void Apply(Operation operation, OperationFilterContext context) + public void Apply(OpenApiOperation operation, OperationFilterContext context) { // Check for authorize attribute var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() || @@ -17,16 +17,21 @@ public void Apply(Operation operation, OperationFilterContext context) if (!hasAuthorize) return; - operation.Responses.TryAdd("401", new Response { Description = "Unauthorized" }); - operation.Responses.TryAdd("403", new Response { Description = "Forbidden" }); + operation.Responses.TryAdd("401", new OpenApiResponse() { Description = "Unauthorized" }); + operation.Responses.TryAdd("403", new OpenApiResponse() { Description = "Forbidden" }); - operation.Security = new List>> + var oAuthScheme = new OpenApiSecurityScheme { - new Dictionary> - { - { "oauth2", new [] { "locationsapi" } } - } + Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } }; + + operation.Security = new List + { + new OpenApiSecurityRequirement + { + [ oAuthScheme ] = new [] { "locationsapi" } + } + }; } } } diff --git a/src/Services/Location/Locations.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs b/src/Services/Location/Locations.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs index 30b9df1fa2..12cffe878d 100644 --- a/src/Services/Location/Locations.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs +++ b/src/Services/Location/Locations.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs @@ -5,15 +5,16 @@ using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.eShopOnContainers.Services.Locations.API.Infrastructure.ActionResults; using Microsoft.eShopOnContainers.Services.Locations.API.Infrastructure.Exceptions; + using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System.Net; public class HttpGlobalExceptionFilter : IExceptionFilter { - private readonly IHostingEnvironment env; + private readonly IHostEnvironment env; private readonly ILogger logger; - public HttpGlobalExceptionFilter(IHostingEnvironment env, ILogger logger) + public HttpGlobalExceptionFilter(IHostEnvironment env, ILogger logger) { this.env = env; this.logger = logger; diff --git a/src/Services/Location/Locations.API/Locations.API.csproj b/src/Services/Location/Locations.API/Locations.API.csproj index 7f658ee2d7..653b7b7b52 100644 --- a/src/Services/Location/Locations.API/Locations.API.csproj +++ b/src/Services/Location/Locations.API/Locations.API.csproj @@ -4,6 +4,7 @@ $(NetCoreTargetVersion) ..\..\..\..\docker-compose.dcproj aspnet-Locations.API-20161122013619 + $(LangVersion) @@ -14,6 +15,7 @@ + diff --git a/src/Services/Location/Locations.API/Startup.cs b/src/Services/Location/Locations.API/Startup.cs index 4664381d0a..cfb9d7e224 100644 --- a/src/Services/Location/Locations.API/Startup.cs +++ b/src/Services/Location/Locations.API/Startup.cs @@ -1,8 +1,6 @@ using Autofac; using Autofac.Extensions.DependencyInjection; using HealthChecks.UI.Client; -using Microsoft.ApplicationInsights.Extensibility; -using Microsoft.ApplicationInsights.ServiceFabric; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; @@ -23,8 +21,8 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; +using Microsoft.OpenApi.Models; using RabbitMQ.Client; -using Swashbuckle.AspNetCore.Swagger; using System; using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; @@ -50,7 +48,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) { options.Filters.Add(typeof(HttpGlobalExceptionFilter)); }) - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2) + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddControllersAsServices(); ConfigureAuthService(services); @@ -99,7 +97,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) return new DefaultRabbitMQPersistentConnection(factory, logger, retryCount); }); - } + } RegisterEventBus(services); @@ -107,23 +105,27 @@ public IServiceProvider ConfigureServices(IServiceCollection services) services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info + options.SwaggerDoc("v1", new OpenApiInfo { Title = "eShopOnContainers - Location HTTP API", Version = "v1", Description = "The Location Microservice HTTP API. This is a Data-Driven/CRUD microservice sample", - TermsOfService = "Terms Of Service" }); - options.AddSecurityDefinition("oauth2", new OAuth2Scheme + options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { - Type = "oauth2", - Flow = "implicit", - AuthorizationUrl = $"{Configuration.GetValue("IdentityUrlExternal")}/connect/authorize", - TokenUrl = $"{Configuration.GetValue("IdentityUrlExternal")}/connect/token", - Scopes = new Dictionary() + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows() { - { "locations", "Locations API" } + Implicit = new OpenApiOAuthFlow() + { + AuthorizationUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/token"), + Scopes = new Dictionary() + { + { "locations", "Locations API" } + } + } } }); @@ -204,12 +206,6 @@ private void RegisterAppInsights(IServiceCollection services) // Enable K8s telemetry initializer services.AddApplicationInsightsKubernetesEnricher(); } - if (orchestratorType?.ToUpper() == "SF") - { - // Enable SF telemetry initializer - services.AddSingleton((serviceProvider) => - new FabricTelemetryInitializer()); - } } private void ConfigureAuthService(IServiceCollection services) diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index de5ed4901c..d3e5890de8 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -3,7 +3,7 @@ netstandard2.1 netcoreapp3.0 15.8.0 - latest + preview @@ -37,9 +37,11 @@ 2.6.1 1.0.2 3.0.0-preview6.19307.2 + 3.0.0-preview6.19307.2 2.2.0 1.0.0 2.2.0 + 3.0.0-preview6.19307.2 3.0.0-preview6.19307.2 3.0.0 4.5.0 From 58cf030e02a6d1f7f1ee959fc79807db4eb66616 Mon Sep 17 00:00:00 2001 From: ericuss Date: Mon, 22 Jul 2019 16:52:29 +0200 Subject: [PATCH 009/149] migration of payments api --- src/Services/Payment/Payment.API/Payment.API.csproj | 2 +- src/Services/Payment/Payment.API/Startup.cs | 11 +---------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/Services/Payment/Payment.API/Payment.API.csproj b/src/Services/Payment/Payment.API/Payment.API.csproj index 79e071e762..df0f93690c 100644 --- a/src/Services/Payment/Payment.API/Payment.API.csproj +++ b/src/Services/Payment/Payment.API/Payment.API.csproj @@ -4,6 +4,7 @@ $(NetCoreTargetVersion) ..\..\..\..\docker-compose.dcproj $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + $(LangVersion) @@ -14,7 +15,6 @@ - diff --git a/src/Services/Payment/Payment.API/Startup.cs b/src/Services/Payment/Payment.API/Startup.cs index 39bb78f91f..bd3b7241b1 100644 --- a/src/Services/Payment/Payment.API/Startup.cs +++ b/src/Services/Payment/Payment.API/Startup.cs @@ -1,9 +1,6 @@ using Autofac; using Autofac.Extensions.DependencyInjection; -using Microsoft.ApplicationInsights.Extensibility; -using Microsoft.ApplicationInsights.ServiceFabric; using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; using Microsoft.Azure.ServiceBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; @@ -90,7 +87,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) { //loggerFactory.AddAzureWebAppDiagnostics(); //loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); @@ -126,12 +123,6 @@ private void RegisterAppInsights(IServiceCollection services) // Enable K8s telemetry initializer services.AddApplicationInsightsKubernetesEnricher(); } - if (orchestratorType?.ToUpper() == "SF") - { - // Enable SF telemetry initializer - services.AddSingleton((serviceProvider) => - new FabricTelemetryInitializer()); - } } private void RegisterEventBus(IServiceCollection services) From 1e4908484419e6b50b95b57601f3b4652d21ee14 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Tue, 23 Jul 2019 08:30:05 +0200 Subject: [PATCH 010/149] netcore 3 ordering --- .../Location/Locations.API/Dockerfile | 4 +- src/Services/Ordering/Ordering.API/Dockerfile | 4 +- .../Ordering/Ordering.API/Ordering.API.csproj | 14 +++--- src/Services/Ordering/Ordering.API/Startup.cs | 43 ++++++++----------- .../Ordering.BackgroundTasks/Dockerfile | 4 +- .../Ordering.Domain/Ordering.Domain.csproj | 4 +- .../Ordering.Infrastructure.csproj | 2 +- .../Ordering/Ordering.SignalrHub/Dockerfile | 4 +- .../Ordering.SignalrHub.csproj | 10 +++-- .../Ordering/Ordering.SignalrHub/Startup.cs | 7 ++- src/_build/dependencies.props | 11 +++-- 11 files changed, 53 insertions(+), 54 deletions(-) diff --git a/src/Services/Location/Locations.API/Dockerfile b/src/Services/Location/Locations.API/Dockerfile index 8a173cbc17..d61b5dbddc 100644 --- a/src/Services/Location/Locations.API/Dockerfile +++ b/src/Services/Location/Locations.API/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/Services/Ordering/Ordering.API/Dockerfile b/src/Services/Ordering/Ordering.API/Dockerfile index 63813c5ae4..dcb0d30225 100644 --- a/src/Services/Ordering/Ordering.API/Dockerfile +++ b/src/Services/Ordering/Ordering.API/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index 4bbfab9d4c..ea2ac2d775 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -5,7 +5,7 @@ aspnet-Ordering.API-20161122013547 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj - latest + 8.0 @@ -33,14 +33,13 @@ - - + + - + - @@ -53,8 +52,9 @@ - - + + + diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index b773540526..9f8de60928 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -7,13 +7,12 @@ using global::Ordering.API.Application.IntegrationEvents.Events; using global::Ordering.API.Infrastructure.Filters; using global::Ordering.API.Infrastructure.Middlewares; + using HealthChecks.UI.Client; using Infrastructure.AutofacModules; using Infrastructure.Filters; using Infrastructure.Services; - using Microsoft.ApplicationInsights.Extensibility; - using Microsoft.ApplicationInsights.ServiceFabric; - using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; + using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.ServiceBus; @@ -26,18 +25,15 @@ using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Services; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; + using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using Ordering.Infrastructure; using RabbitMQ.Client; - using Swashbuckle.AspNetCore.Swagger; using System; using System.Collections.Generic; using System.Data.Common; using System.IdentityModel.Tokens.Jwt; using System.Reflection; - using HealthChecks.UI.Client; - using Microsoft.AspNetCore.Diagnostics.HealthChecks; - using Microsoft.Extensions.Diagnostics.HealthChecks; public class Startup { @@ -148,12 +144,6 @@ public static IServiceCollection AddApplicationInsights(this IServiceCollection // Enable K8s telemetry initializer services.AddApplicationInsightsKubernetesEnricher(); } - if (orchestratorType?.ToUpper() == "SF") - { - // Enable SF telemetry initializer - services.AddSingleton((serviceProvider) => - new FabricTelemetryInitializer()); - } return services; } @@ -249,23 +239,26 @@ public static IServiceCollection AddCustomSwagger(this IServiceCollection servic services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info + options.SwaggerDoc("v1", new OpenApi.Models.OpenApiInfo { Title = "Ordering HTTP API", Version = "v1", - Description = "The Ordering Service HTTP API", - TermsOfService = "Terms Of Service" + Description = "The Ordering Service HTTP API" }); - options.AddSecurityDefinition("oauth2", new OAuth2Scheme + options.AddSecurityDefinition("oauth2", new OpenApi.Models.OpenApiSecurityScheme { - Type = "oauth2", - Flow = "implicit", - AuthorizationUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize", - TokenUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/token", - Scopes = new Dictionary() + Flows = new OpenApi.Models.OpenApiOAuthFlows() { - { "orders", "Ordering API" } + Implicit = new OpenApi.Models.OpenApiOAuthFlow() + { + AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), + Scopes = new Dictionary() + { + { "orders", "Ordering API" } + } + } } }); @@ -407,8 +400,8 @@ public static IServiceCollection AddCustomAuthentication(this IServiceCollection services.AddAuthentication(options => { - options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; - options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; + options.DefaultAuthenticateScheme = AspNetCore.Authentication.JwtBearer.JwtBearerDefaults.AuthenticationScheme; + options.DefaultChallengeScheme = AspNetCore.Authentication.JwtBearer.JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(options => { diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile index f1dbea6b1f..820f8d4b1c 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj index eac16c43f2..626c6e5265 100644 --- a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj +++ b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj b/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj index 6f7f59f9e7..1ec58ec383 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj +++ b/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/Services/Ordering/Ordering.SignalrHub/Dockerfile b/src/Services/Ordering/Ordering.SignalrHub/Dockerfile index 1dfffd8392..15389786c0 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Dockerfile +++ b/src/Services/Ordering/Ordering.SignalrHub/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj index 52cd6d24a0..82e1a0df9e 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj +++ b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj @@ -3,6 +3,8 @@ $(NetCoreTargetVersion) ..\..\..\..\docker-compose.dcproj + $(PackageTargetFallback);portable-net45+win8+wp8+wpa81; + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -17,13 +19,12 @@ - - - - + + + @@ -31,6 +32,7 @@ + diff --git a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs index edcc805210..c754d98e46 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs @@ -1,7 +1,8 @@ using Autofac; using Autofac.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Authentication.JwtBearer; +using HealthChecks.UI.Client; using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.Azure.ServiceBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; @@ -9,6 +10,7 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using Ordering.SignalrHub.AutofacModules; using Ordering.SignalrHub.IntegrationEvents; @@ -17,9 +19,6 @@ using RabbitMQ.Client; using System; using System.IdentityModel.Tokens.Jwt; -using HealthChecks.UI.Client; -using Microsoft.AspNetCore.Diagnostics.HealthChecks; -using Microsoft.Extensions.Diagnostics.HealthChecks; namespace Ordering.SignalrHub { diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 6a91b3f6ad..9a37da9087 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -32,7 +32,14 @@ 4.9.2 4.2.1 1.50.7 + 4.3.0 + 4.5.1 + 4.5.0 5.1.0 + 3.0.0-preview4-19123-01 + 3.0.0-preview4-19123-01 + 3.0.0-alpha1-34847 + 5.1.0 2.2.1 2.6.1 1.0.2 @@ -43,15 +50,13 @@ 3.0.0-preview6.19307.2 3.0.0 4.5.0 - 3.0.0-preview4-19123-01 4.7.0-preview6.19303.8 - + 7.5.0 3.0.0-preview6.19304.10 3.0.0-preview6.19304.10 3.0.0-preview6.19304.10 3.0.0-preview6.19304.10 - 2.2.0 2.2.0 2.2.0 From 1c5c0c11c4b0b9858497c2e98047d5a176505b79 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Tue, 23 Jul 2019 09:41:04 +0200 Subject: [PATCH 011/149] fix error csproj --- .../Ordering.SignalrHub/Ordering.SignalrHub.csproj | 11 +++++------ src/Services/Ordering/Ordering.SignalrHub/Startup.cs | 5 +++-- src/_build/dependencies.props | 2 -- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj index 82e1a0df9e..e4084087f6 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj +++ b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj @@ -3,10 +3,12 @@ $(NetCoreTargetVersion) ..\..\..\..\docker-compose.dcproj - $(PackageTargetFallback);portable-net45+win8+wp8+wpa81; - $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false + 8.0 + + @@ -19,12 +21,9 @@ - - - - + diff --git a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs index c754d98e46..329fba0705 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs @@ -1,6 +1,7 @@ using Autofac; using Autofac.Extensions.DependencyInjection; using HealthChecks.UI.Client; +using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.Azure.ServiceBus; @@ -147,9 +148,9 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) app.UseAuthentication(); - app.UseSignalR(routes => + app.UseEndpoints(endpoints => { - routes.MapHub("/notificationhub", options => + endpoints.MapHub("/notificationhub", options => options.Transports = Microsoft.AspNetCore.Http.Connections.HttpTransports.All); }); diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 9f1cd07d16..809b3e08cc 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -36,8 +36,6 @@ 4.5.1 4.5.0 5.1.0 - 3.0.0-preview4-19123-01 - 3.0.0-preview4-19123-01 3.0.0-alpha1-34847 5.1.0 2.2.1 From 5b5b0d1b7d1b103dab37c22b13e86021c212615a Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Tue, 23 Jul 2019 10:07:50 +0200 Subject: [PATCH 012/149] migrate bffs --- src/ApiGateways/ApiGw-Base/Dockerfile | 4 +- src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj | 1 + src/ApiGateways/ApiGw-Base/Program.cs | 10 ++--- src/ApiGateways/ApiGw-Base/Startup.cs | 7 ++-- .../Mobile.Bff.Shopping/aggregator/Dockerfile | 4 +- .../Filters/AuthorizeCheckOperationFilter.cs | 19 +++++---- .../Mobile.Shopping.HttpAggregator.csproj | 3 ++ .../Mobile.Bff.Shopping/aggregator/Program.cs | 9 +--- .../Mobile.Bff.Shopping/aggregator/Startup.cs | 42 ++++++++++--------- .../Web.Bff.Shopping/aggregator/Dockerfile | 4 +- .../Filters/AuthorizeCheckOperationFilter.cs | 19 +++++---- .../Web.Bff.Shopping/aggregator/Program.cs | 9 +--- .../Web.Bff.Shopping/aggregator/Startup.cs | 37 ++++++++-------- .../Web.Shopping.HttpAggregator.csproj | 3 ++ .../Marketing/Marketing.API/Startup.cs | 2 +- .../Filters/AuthorizeCheckOperationFilter.cs | 25 ++++++----- src/Services/Ordering/Ordering.API/Startup.cs | 2 +- 17 files changed, 102 insertions(+), 98 deletions(-) diff --git a/src/ApiGateways/ApiGw-Base/Dockerfile b/src/ApiGateways/ApiGw-Base/Dockerfile index 9dc86a8466..0d66ada6b7 100644 --- a/src/ApiGateways/ApiGw-Base/Dockerfile +++ b/src/ApiGateways/ApiGw-Base/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj index ea011f6249..8f311ab773 100644 --- a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj +++ b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj @@ -12,5 +12,6 @@ + diff --git a/src/ApiGateways/ApiGw-Base/Program.cs b/src/ApiGateways/ApiGw-Base/Program.cs index bcf1c8d602..4e689d5a1c 100644 --- a/src/ApiGateways/ApiGw-Base/Program.cs +++ b/src/ApiGateways/ApiGw-Base/Program.cs @@ -1,14 +1,10 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore; +using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Logging; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; using Serilog; +using System.IO; namespace OcelotApiGw { diff --git a/src/ApiGateways/ApiGw-Base/Startup.cs b/src/ApiGateways/ApiGw-Base/Startup.cs index 585c264714..be845edcaa 100644 --- a/src/ApiGateways/ApiGw-Base/Startup.cs +++ b/src/ApiGateways/ApiGw-Base/Startup.cs @@ -1,14 +1,13 @@ -using Microsoft.AspNetCore.Builder; +using HealthChecks.UI.Client; +using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Diagnostics.HealthChecks; using Ocelot.DependencyInjection; using Ocelot.Middleware; using System; -using HealthChecks.UI.Client; -using Microsoft.Extensions.Diagnostics.HealthChecks; namespace OcelotApiGw { diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile index 9b03eccbda..3d89c9b272 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs index 21997360bd..3b8298bfe0 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs @@ -1,7 +1,7 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Filters { using Microsoft.AspNetCore.Authorization; - using Swashbuckle.AspNetCore.Swagger; + using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; using System.Collections.Generic; using System.Linq; @@ -10,7 +10,7 @@ namespace Basket.API.Infrastructure.Filters { public class AuthorizeCheckOperationFilter : IOperationFilter { - public void Apply(Operation operation, OperationFilterContext context) + public void Apply(OpenApiOperation operation, OperationFilterContext context) { // Check for authorize attribute var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() || @@ -18,14 +18,19 @@ public void Apply(Operation operation, OperationFilterContext context) if (!hasAuthorize) return; - operation.Responses.TryAdd("401", new Response { Description = "Unauthorized" }); - operation.Responses.TryAdd("403", new Response { Description = "Forbidden" }); + operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" }); + operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" }); - operation.Security = new List>> + var oAuthScheme = new OpenApiSecurityScheme { - new Dictionary> + Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } + }; + + operation.Security = new List + { + new OpenApiSecurityRequirement { - { "oauth2", new [] { "Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator" } } + [ oAuthScheme ] = new [] { "Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator" } } }; } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj index 6efbcf3897..87e6c31b3d 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj @@ -5,6 +5,8 @@ Mobile.Shopping.HttpAggregator Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator ..\..\..\docker-compose.dcproj + false + 8.0 @@ -20,6 +22,7 @@ + diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Program.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Program.cs index fc21a70a43..5d1840192f 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Program.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Program.cs @@ -1,12 +1,5 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore; +using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Logging; using Serilog; namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index eee0d9c6ec..a2997be054 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -1,9 +1,8 @@ -using System; -using System.Collections.Generic; -using System.IdentityModel.Tokens.Jwt; -using System.Net.Http; +using Devspaces.Support; +using HealthChecks.UI.Client; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; @@ -13,14 +12,14 @@ using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Services; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using Polly; using Polly.Extensions.Http; -using Swashbuckle.AspNetCore.Swagger; -using HealthChecks.UI.Client; -using Microsoft.AspNetCore.Diagnostics.HealthChecks; -using Microsoft.Extensions.Diagnostics.HealthChecks; -using Devspaces.Support; +using System; +using System.Collections.Generic; +using System.IdentityModel.Tokens.Jwt; +using System.Net.Http; namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator { @@ -110,28 +109,31 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, services.Configure(configuration.GetSection("urls")); services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info + options.SwaggerDoc("v1", new OpenApi.Models.OpenApiInfo { Title = "Shopping Aggregator for Mobile Clients", Version = "v1", - Description = "Shopping Aggregator for Mobile Clients", - TermsOfService = "Terms Of Service" + Description = "Shopping Aggregator for Mobile Clients" }); - options.AddSecurityDefinition("oauth2", new OAuth2Scheme + options.AddSecurityDefinition("oauth2", new OpenApi.Models.OpenApiSecurityScheme { - Type = "oauth2", - Flow = "implicit", - AuthorizationUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize", - TokenUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/token", - Scopes = new Dictionary() + Flows = new OpenApi.Models.OpenApiOAuthFlows() { - { "mobileshoppingagg", "Shopping Aggregator for Mobile Clients" } + Implicit = new OpenApi.Models.OpenApiOAuthFlow() + { + AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), + Scopes = new Dictionary() + { + { "marketing", "Marketing API" } + } + } } }); diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile index fbce2f0ab3..2a3b551a24 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs index e93ec157cc..45c1911046 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs @@ -1,7 +1,7 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Filters { using Microsoft.AspNetCore.Authorization; - using Swashbuckle.AspNetCore.Swagger; + using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; using System.Collections.Generic; using System.Linq; @@ -10,7 +10,7 @@ namespace Basket.API.Infrastructure.Filters { public class AuthorizeCheckOperationFilter : IOperationFilter { - public void Apply(Operation operation, OperationFilterContext context) + public void Apply(OpenApiOperation operation, OperationFilterContext context) { // Check for authorize attribute var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() || @@ -18,14 +18,19 @@ public void Apply(Operation operation, OperationFilterContext context) if (!hasAuthorize) return; - operation.Responses.TryAdd("401", new Response { Description = "Unauthorized" }); - operation.Responses.TryAdd("403", new Response { Description = "Forbidden" }); + operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" }); + operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" }); - operation.Security = new List>> + var oAuthScheme = new OpenApiSecurityScheme { - new Dictionary> + Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } + }; + + operation.Security = new List + { + new OpenApiSecurityRequirement { - { "oauth2", new [] { "Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator" } } + [ oAuthScheme ] = new [] { "Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator" } } }; } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Program.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Program.cs index 4bbac21e6e..6589719fa2 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Program.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Program.cs @@ -1,12 +1,5 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore; +using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Logging; using Serilog; namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index dd5e1cc8c3..747269f503 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -1,5 +1,8 @@ -using Microsoft.AspNetCore.Authentication.JwtBearer; +using Devspaces.Support; +using HealthChecks.UI.Client; +using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; @@ -9,19 +12,14 @@ using Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using Polly; using Polly.Extensions.Http; -using Polly.Timeout; -using Swashbuckle.AspNetCore.Swagger; using System; using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; using System.Net.Http; -using HealthChecks.UI.Client; -using Microsoft.AspNetCore.Diagnostics.HealthChecks; -using Microsoft.Extensions.Diagnostics.HealthChecks; -using Devspaces.Support; namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator { @@ -137,28 +135,31 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, services.Configure(configuration.GetSection("urls")); services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info + options.SwaggerDoc("v1", new OpenApi.Models.OpenApiInfo { Title = "Shopping Aggregator for Web Clients", Version = "v1", - Description = "Shopping Aggregator for Web Clients", - TermsOfService = "Terms Of Service" + Description = "Shopping Aggregator for Web Clients" }); - options.AddSecurityDefinition("oauth2", new OAuth2Scheme + options.AddSecurityDefinition("oauth2", new OpenApi.Models.OpenApiSecurityScheme { - Type = "oauth2", - Flow = "implicit", - AuthorizationUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize", - TokenUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/token", - Scopes = new Dictionary() + Flows = new OpenApi.Models.OpenApiOAuthFlows() { - { "webshoppingagg", "Shopping Aggregator for Web Clients" } + Implicit = new OpenApi.Models.OpenApiOAuthFlow() + { + AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), + Scopes = new Dictionary() + { + { "webshoppingagg", "Shopping Aggregator for Web Clients" } + } + } } }); diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj index faa609b06d..b7eb1a019c 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj @@ -5,6 +5,8 @@ Web.Shopping.HttpAggregator Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator ..\..\..\docker-compose.dcproj + false + 8.0 @@ -19,6 +21,7 @@ + diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs index cb82dbf88a..1879153436 100644 --- a/src/Services/Marketing/Marketing.API/Startup.cs +++ b/src/Services/Marketing/Marketing.API/Startup.cs @@ -55,7 +55,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) { options.Filters.Add(typeof(HttpGlobalExceptionFilter)); }) - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2) + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddControllersAsServices(); //Injecting Controllers themselves thru DIFor further info see: http://docs.autofac.org/en/latest/integration/aspnetcore.html#controllers-as-services services.Configure(Configuration); diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs b/src/Services/Ordering/Ordering.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs index ee0301cc56..34b897a408 100644 --- a/src/Services/Ordering/Ordering.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs +++ b/src/Services/Ordering/Ordering.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs @@ -1,16 +1,14 @@ using Microsoft.AspNetCore.Authorization; -using Swashbuckle.AspNetCore.Swagger; +using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; -using System; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; namespace Ordering.API.Infrastructure.Filters { public class AuthorizeCheckOperationFilter : IOperationFilter { - public void Apply(Operation operation, OperationFilterContext context) + public void Apply(OpenApiOperation operation, OperationFilterContext context) { // Check for authorize attribute var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() || @@ -18,16 +16,21 @@ public void Apply(Operation operation, OperationFilterContext context) if (!hasAuthorize) return; - operation.Responses.TryAdd("401", new Response { Description = "Unauthorized" }); - operation.Responses.TryAdd("403", new Response { Description = "Forbidden" }); + operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" }); + operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" }); - operation.Security = new List>> + var oAuthScheme = new OpenApiSecurityScheme { - new Dictionary> - { - { "oauth2", new [] { "orderingapi" } } - } + Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } }; + + operation.Security = new List + { + new OpenApiSecurityRequirement + { + [ oAuthScheme ] = new [] { "orderingapi" } + } + }; } } } \ No newline at end of file diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index 9f8de60928..195fb90b75 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -155,7 +155,7 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services) { options.Filters.Add(typeof(HttpGlobalExceptionFilter)); }) - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2) + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddControllersAsServices(); //Injecting Controllers themselves thru DI //For further info see: http://docs.autofac.org/en/latest/integration/aspnetcore.html#controllers-as-services From 31f77cb79e587b451a29457b8b28d63a7c2c0793 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Tue, 23 Jul 2019 10:26:33 +0200 Subject: [PATCH 013/149] update version and image docker --- .../Marketing/Marketing.API/Startup.cs | 3 ++- src/Services/Ordering/Ordering.API/Startup.cs | 5 ++-- .../Ordering/Ordering.SignalrHub/Startup.cs | 1 + src/Services/Payment/Payment.API/Dockerfile | 4 +-- src/Services/Webhooks/Webhooks.API/Dockerfile | 4 +-- src/Web/WebStatus/Dockerfile | 4 +-- src/Web/WebStatus/Program.cs | 2 +- src/Web/WebStatus/Startup.cs | 26 ++++++------------- 8 files changed, 21 insertions(+), 28 deletions(-) diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs index cb82dbf88a..bada0ec994 100644 --- a/src/Services/Marketing/Marketing.API/Startup.cs +++ b/src/Services/Marketing/Marketing.API/Startup.cs @@ -205,7 +205,8 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF ConfigureAuth(app); - app.UseMvcWithDefaultRoute(); + app.UseRouting(); + app.UseEndpoints(e => e.MapDefaultControllerRoute()); app.UseSwagger() .UseSwaggerUI(c => diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index 9f8de60928..e4193a5f21 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -95,7 +95,8 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) ConfigureAuth(app); - app.UseMvcWithDefaultRoute(); + app.UseRouting(); + app.UseEndpoints(e => e.MapDefaultControllerRoute()); app.UseSwagger() .UseSwaggerUI(c => @@ -155,7 +156,7 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services) { options.Filters.Add(typeof(HttpGlobalExceptionFilter)); }) - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2) + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddControllersAsServices(); //Injecting Controllers themselves thru DI //For further info see: http://docs.autofac.org/en/latest/integration/aspnetcore.html#controllers-as-services diff --git a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs index 329fba0705..23bca19777 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs @@ -148,6 +148,7 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) app.UseAuthentication(); + app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapHub("/notificationhub", options => diff --git a/src/Services/Payment/Payment.API/Dockerfile b/src/Services/Payment/Payment.API/Dockerfile index 65baf82781..1f2ab41d11 100644 --- a/src/Services/Payment/Payment.API/Dockerfile +++ b/src/Services/Payment/Payment.API/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/Services/Webhooks/Webhooks.API/Dockerfile b/src/Services/Webhooks/Webhooks.API/Dockerfile index 9cc1828d90..5d3f6da5a9 100644 --- a/src/Services/Webhooks/Webhooks.API/Dockerfile +++ b/src/Services/Webhooks/Webhooks.API/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/Web/WebStatus/Dockerfile b/src/Web/WebStatus/Dockerfile index 92c1b2717b..35c81d594f 100644 --- a/src/Web/WebStatus/Dockerfile +++ b/src/Web/WebStatus/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/Web/WebStatus/Program.cs b/src/Web/WebStatus/Program.cs index c8c850cfd5..efe3f051b9 100644 --- a/src/Web/WebStatus/Program.cs +++ b/src/Web/WebStatus/Program.cs @@ -54,7 +54,7 @@ private static IWebHost BuildWebHost(IConfiguration configuration, string[] args .UseSerilog() .Build(); - private static Serilog.ILogger CreateSerilogLogger(IConfiguration configuration) + private static Serilog.ILogger CreateSerilogLogger(IConfiguration configuration) { var seqServerUrl = configuration["Serilog:SeqServerUrl"]; var logstashUrl = configuration["Serilog:LogstashgUrl"]; diff --git a/src/Web/WebStatus/Startup.cs b/src/Web/WebStatus/Startup.cs index d36b2df904..48875eab5c 100644 --- a/src/Web/WebStatus/Startup.cs +++ b/src/Web/WebStatus/Startup.cs @@ -1,7 +1,4 @@ -using HealthChecks.UI.Client; -using Microsoft.ApplicationInsights.Extensibility; -using Microsoft.ApplicationInsights.ServiceFabric; -using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; @@ -31,7 +28,7 @@ public void ConfigureServices(IServiceCollection services) .AddCheck("self", () => HealthCheckResult.Healthy()); services.AddHealthChecksUI(); - + services.AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); } @@ -64,20 +61,19 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF Predicate = r => r.Name.Contains("self") }); - app.UseHealthChecksUI(config => { + app.UseHealthChecksUI(config => + { config.ResourcesPath = string.IsNullOrEmpty(pathBase) ? "/ui/resources" : $"{pathBase}/ui/resources"; - config.UIPath = "/hc-ui"; + config.UIPath = "/hc-ui"; }); - + app.UseStaticFiles(); app.UseHttpsRedirection(); - app.UseMvc(routes => + app.UseEndpoints(endpoints => { - routes.MapRoute( - name: "default", - template: "{controller=Home}/{action=Index}/{id?}"); + endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); }); } @@ -91,12 +87,6 @@ private void RegisterAppInsights(IServiceCollection services) // Enable K8s telemetry initializer services.AddApplicationInsightsKubernetesEnricher(); } - if (orchestratorType?.ToUpper() == "SF") - { - // Enable SF telemetry initializer - services.AddSingleton((serviceProvider) => - new FabricTelemetryInitializer()); - } } } } From 756142db943f4036c24766ddb449d082207029b5 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Tue, 23 Jul 2019 12:14:09 +0200 Subject: [PATCH 014/149] upgrade net3 webapp --- src/Services/Basket/Basket.API/Startup.cs | 34 +++----- src/Services/Catalog/Catalog.API/Startup.cs | 35 ++++---- src/Services/Identity/Identity.API/Startup.cs | 26 ++---- .../Location/Locations.API/Startup.cs | 33 +++---- .../Marketing/Marketing.API/Startup.cs | 33 +++---- src/Services/Ordering/Ordering.API/Startup.cs | 22 +++-- .../Ordering.BackgroundTasks/Startup.cs | 26 +++--- .../Ordering/Ordering.SignalrHub/Startup.cs | 26 +++--- src/Services/Payment/Payment.API/Startup.cs | 40 ++++----- .../WebMVC/Controllers/AccountController.cs | 11 ++- src/Web/WebMVC/Dockerfile | 4 +- src/Web/WebMVC/Startup.cs | 85 +++++++++++-------- src/Web/WebMVC/WebMVC.csproj | 14 +-- src/Web/WebSPA/Dockerfile | 4 +- src/Web/WebSPA/Startup.cs | 60 +++++-------- src/Web/WebSPA/WebSPA.csproj | 4 +- src/Web/WebSPA/package.json | 2 +- src/Web/WebStatus/Startup.cs | 17 ++-- src/Web/WebStatus/WebStatus.csproj | 3 +- .../Controllers/AccountController.cs | 3 - src/Web/WebhookClient/Dockerfile | 4 +- src/Web/WebhookClient/WebhookClient.csproj | 11 ++- src/_build/dependencies.props | 11 ++- 23 files changed, 241 insertions(+), 267 deletions(-) diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index 79208b19bc..46599c6165 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -28,7 +28,6 @@ using Microsoft.Extensions.Options; using RabbitMQ.Client; using StackExchange.Redis; -using Swashbuckle.AspNetCore.Swagger; using System; using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; @@ -191,24 +190,25 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF app.UsePathBase(pathBase); } - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - app.UseStaticFiles(); app.UseCors("CorsPolicy"); ConfigureAuth(app); app.UseRouting(); - app.UseEndpoints(e => e.MapDefaultControllerRoute()); + app.UseEndpoints(endpoints => + { + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + endpoints.MapDefaultControllerRoute(); + }); app.UseSwagger() .UseSwaggerUI(c => @@ -225,13 +225,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF private void RegisterAppInsights(IServiceCollection services) { services.AddApplicationInsightsTelemetry(Configuration); - var orchestratorType = Configuration.GetValue("OrchestratorType"); - - if (orchestratorType?.ToUpper() == "K8S") - { - // Enable K8s telemetry initializer - services.AddApplicationInsightsKubernetesEnricher(); - } + services.AddApplicationInsightsKubernetesEnricher(); } private void ConfigureAuthService(IServiceCollection services) diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 716e0f1caa..c34db76143 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -1,8 +1,11 @@ using Autofac; using Autofac.Extensions.DependencyInjection; +using Catalog.API.Grpc; using global::Catalog.API.Infrastructure.Filters; using global::Catalog.API.IntegrationEvents; +using HealthChecks.UI.Client; using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; @@ -20,17 +23,14 @@ using Microsoft.eShopOnContainers.Services.Catalog.API.IntegrationEvents.Events; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using RabbitMQ.Client; using System; using System.Data.Common; -using System.Reflection; -using HealthChecks.UI.Client; -using Microsoft.AspNetCore.Diagnostics.HealthChecks; -using Microsoft.Extensions.Diagnostics.HealthChecks; -using Catalog.API.Grpc; using System.IO; +using System.Reflection; namespace Microsoft.eShopOnContainers.Services.Catalog.API { @@ -89,10 +89,10 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF app.UseCors("CorsPolicy"); app.UseRouting(); - app.UseEndpoints(e => + app.UseEndpoints(endpoints => { - e.MapDefaultControllerRoute(); - e.MapGet("/_proto/", async ctx => + endpoints.MapDefaultControllerRoute(); + endpoints.MapGet("/_proto/", async ctx => { ctx.Response.ContentType = "text/plain"; using var fs = new FileStream(Path.Combine(env.ContentRootPath, "Proto", "catalog.proto"), FileMode.Open, FileAccess.Read); @@ -106,7 +106,16 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF } } }); - e.MapGrpcService(); + endpoints.MapGrpcService(); + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); }); app.UseSwagger() @@ -131,13 +140,7 @@ public static class CustomExtensionMethods public static IServiceCollection AddAppInsight(this IServiceCollection services, IConfiguration configuration) { services.AddApplicationInsightsTelemetry(configuration); - var orchestratorType = configuration.GetValue("OrchestratorType"); - - if (orchestratorType?.ToUpper() == "K8S") - { - // Enable K8s telemetry initializer - services.AddApplicationInsightsKubernetesEnricher(); - } + services.AddApplicationInsightsKubernetesEnricher(); return services; } diff --git a/src/Services/Identity/Identity.API/Startup.cs b/src/Services/Identity/Identity.API/Startup.cs index 6ea7e3888a..009773b628 100644 --- a/src/Services/Identity/Identity.API/Startup.cs +++ b/src/Services/Identity/Identity.API/Startup.cs @@ -1,28 +1,26 @@ using Autofac; using Autofac.Extensions.DependencyInjection; +using HealthChecks.UI.Client; using IdentityServer4.Services; -using Microsoft.ApplicationInsights.Extensibility; -using Microsoft.ApplicationInsights.ServiceFabric; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.DataProtection; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.eShopOnContainers.Services.Identity.API.Certificates; using Microsoft.eShopOnContainers.Services.Identity.API.Data; +using Microsoft.eShopOnContainers.Services.Identity.API.Devspaces; using Microsoft.eShopOnContainers.Services.Identity.API.Models; using Microsoft.eShopOnContainers.Services.Identity.API.Services; -using Microsoft.eShopOnContainers.Services.Identity.API.Devspaces; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using StackExchange.Redis; using System; using System.Reflection; -using HealthChecks.UI.Client; -using Microsoft.AspNetCore.Diagnostics.HealthChecks; -using Microsoft.Extensions.Diagnostics.HealthChecks; namespace Microsoft.eShopOnContainers.Services.Identity.API { @@ -73,7 +71,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) .AddSqlServer(Configuration["ConnectionString"], name: "IdentityDB-check", tags: new string[] { "IdentityDB" }); - + services.AddTransient, EFLoginService>(); services.AddTransient(); @@ -179,19 +177,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF private void RegisterAppInsights(IServiceCollection services) { services.AddApplicationInsightsTelemetry(Configuration); - var orchestratorType = Configuration.GetValue("OrchestratorType"); - - if (orchestratorType?.ToUpper() == "K8S") - { - // Enable K8s telemetry initializer - services.AddApplicationInsightsKubernetesEnricher(); - } - if (orchestratorType?.ToUpper() == "SF") - { - // Enable SF telemetry initializer - services.AddSingleton((serviceProvider) => - new FabricTelemetryInitializer()); - } + services.AddApplicationInsightsKubernetesEnricher(); } } } diff --git a/src/Services/Location/Locations.API/Startup.cs b/src/Services/Location/Locations.API/Startup.cs index cfb9d7e224..7b4a391afe 100644 --- a/src/Services/Location/Locations.API/Startup.cs +++ b/src/Services/Location/Locations.API/Startup.cs @@ -167,22 +167,23 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UsePathBase(pathBase); } - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - app.UseCors("CorsPolicy"); ConfigureAuth(app); - app.UseMvcWithDefaultRoute(); + app.UseRouting(); + app.UseEndpoints(endpoints => + { + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + }); app.UseSwagger() .UseSwaggerUI(c => @@ -199,13 +200,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF private void RegisterAppInsights(IServiceCollection services) { services.AddApplicationInsightsTelemetry(Configuration); - var orchestratorType = Configuration.GetValue("OrchestratorType"); - - if (orchestratorType?.ToUpper() == "K8S") - { - // Enable K8s telemetry initializer - services.AddApplicationInsightsKubernetesEnricher(); - } + services.AddApplicationInsightsKubernetesEnricher(); } private void ConfigureAuthService(IServiceCollection services) diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs index 3e9c923243..289a9c351b 100644 --- a/src/Services/Marketing/Marketing.API/Startup.cs +++ b/src/Services/Marketing/Marketing.API/Startup.cs @@ -190,23 +190,24 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UsePathBase(pathBase); } - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - app.UseCors("CorsPolicy"); ConfigureAuth(app); app.UseRouting(); - app.UseEndpoints(e => e.MapDefaultControllerRoute()); + app.UseEndpoints(endpoints => + { + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + endpoints.MapDefaultControllerRoute(); + }); app.UseSwagger() .UseSwaggerUI(c => @@ -222,13 +223,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF private void RegisterAppInsights(IServiceCollection services) { services.AddApplicationInsightsTelemetry(Configuration); - var orchestratorType = Configuration.GetValue("OrchestratorType"); - - if (orchestratorType?.ToUpper() == "K8S") - { - // Enable K8s telemetry initializer - services.AddApplicationInsightsKubernetesEnricher(); - } + services.AddApplicationInsightsKubernetesEnricher(); } private void ConfigureAuthService(IServiceCollection services) diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index e4193a5f21..de9a88af1c 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -96,7 +96,19 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) ConfigureAuth(app); app.UseRouting(); - app.UseEndpoints(e => e.MapDefaultControllerRoute()); + app.UseEndpoints(endpoints => + { + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + endpoints.MapDefaultControllerRoute(); + }); app.UseSwagger() .UseSwaggerUI(c => @@ -138,13 +150,7 @@ static class CustomExtensionsMethods public static IServiceCollection AddApplicationInsights(this IServiceCollection services, IConfiguration configuration) { services.AddApplicationInsightsTelemetry(configuration); - var orchestratorType = configuration.GetValue("OrchestratorType"); - - if (orchestratorType?.ToUpper() == "K8S") - { - // Enable K8s telemetry initializer - services.AddApplicationInsightsKubernetesEnricher(); - } + services.AddApplicationInsightsKubernetesEnricher(); return services; } diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs index 9d6a78e38b..6035beaeb8 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs @@ -1,7 +1,8 @@ using Autofac; using Autofac.Extensions.DependencyInjection; +using HealthChecks.UI.Client; using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.Azure.ServiceBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; @@ -9,15 +10,13 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Ordering.BackgroundTasks.Configuration; using Ordering.BackgroundTasks.Tasks; using RabbitMQ.Client; using System; -using HealthChecks.UI.Client; -using Microsoft.AspNetCore.Diagnostics.HealthChecks; -using Microsoft.Extensions.Diagnostics.HealthChecks; namespace Ordering.BackgroundTasks { @@ -106,15 +105,18 @@ public IServiceProvider ConfigureServices(IServiceCollection services) // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { - app.UseHealthChecks("/hc", new HealthCheckOptions() + app.UseRouting(); + app.UseEndpoints(endpoints => { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); }); } diff --git a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs index 23bca19777..78f10adb35 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs @@ -127,32 +127,28 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) //loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); var pathBase = Configuration["PATH_BASE"]; + if (!string.IsNullOrEmpty(pathBase)) { loggerFactory.CreateLogger().LogDebug("Using PATH BASE '{pathBase}'", pathBase); app.UsePathBase(pathBase); } - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - app.UseCors("CorsPolicy"); - app.UseAuthentication(); - app.UseRouting(); app.UseEndpoints(endpoints => { - endpoints.MapHub("/notificationhub", options => - options.Transports = Microsoft.AspNetCore.Http.Connections.HttpTransports.All); + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + endpoints.MapHub("/notificationhub", options => options.Transports = Microsoft.AspNetCore.Http.Connections.HttpTransports.All); }); ConfigureEventBus(app); diff --git a/src/Services/Payment/Payment.API/Startup.cs b/src/Services/Payment/Payment.API/Startup.cs index bd3b7241b1..77b8d55fd4 100644 --- a/src/Services/Payment/Payment.API/Startup.cs +++ b/src/Services/Payment/Payment.API/Startup.cs @@ -1,6 +1,8 @@ using Autofac; using Autofac.Extensions.DependencyInjection; +using HealthChecks.UI.Client; using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.Azure.ServiceBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; @@ -8,14 +10,12 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using Payment.API.IntegrationEvents.EventHandling; using Payment.API.IntegrationEvents.Events; using RabbitMQ.Client; using System; -using HealthChecks.UI.Client; -using Microsoft.AspNetCore.Diagnostics.HealthChecks; -using Microsoft.Extensions.Diagnostics.HealthChecks; namespace Payment.API { @@ -77,7 +77,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) return new DefaultRabbitMQPersistentConnection(factory, logger, retryCount); }); - } + } RegisterEventBus(services); @@ -98,31 +98,27 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) app.UsePathBase(pathBase); } + ConfigureEventBus(app); - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions + app.UseRouting(); + app.UseEndpoints(endpoints => { - Predicate = r => r.Name.Contains("self") + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); }); - - ConfigureEventBus(app); } private void RegisterAppInsights(IServiceCollection services) { services.AddApplicationInsightsTelemetry(Configuration); - var orchestratorType = Configuration.GetValue("OrchestratorType"); - - if (orchestratorType?.ToUpper() == "K8S") - { - // Enable K8s telemetry initializer - services.AddApplicationInsightsKubernetesEnricher(); - } + services.AddApplicationInsightsKubernetesEnricher(); } private void RegisterEventBus(IServiceCollection services) @@ -136,7 +132,7 @@ private void RegisterEventBus(IServiceCollection services) var serviceBusPersisterConnection = sp.GetRequiredService(); var iLifetimeScope = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); - var eventBusSubcriptionsManager = sp.GetRequiredService(); + var eventBusSubcriptionsManager = sp.GetRequiredService(); return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); diff --git a/src/Web/WebMVC/Controllers/AccountController.cs b/src/Web/WebMVC/Controllers/AccountController.cs index f4562b1691..de10770f5d 100644 --- a/src/Web/WebMVC/Controllers/AccountController.cs +++ b/src/Web/WebMVC/Controllers/AccountController.cs @@ -1,13 +1,12 @@ -using System.Security.Claims; +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Authentication.Cookies; +using Microsoft.AspNetCore.Authentication.OpenIdConnect; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Http.Authentication; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Authentication.OpenIdConnect; -using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.Extensions.Logging; using System; +using System.Security.Claims; +using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.WebMVC.Controllers { diff --git a/src/Web/WebMVC/Dockerfile b/src/Web/WebMVC/Dockerfile index 0e3445b572..c32a34295a 100644 --- a/src/Web/WebMVC/Dockerfile +++ b/src/Web/WebMVC/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/Web/WebMVC/Startup.cs b/src/Web/WebMVC/Startup.cs index 52a3113690..e9c0a519f6 100644 --- a/src/Web/WebMVC/Startup.cs +++ b/src/Web/WebMVC/Startup.cs @@ -1,9 +1,7 @@ using Devspaces.Support; using HealthChecks.UI.Client; -using Microsoft.ApplicationInsights.Extensibility; -using Microsoft.ApplicationInsights.ServiceFabric; using Microsoft.AspNetCore.Authentication.Cookies; -using Microsoft.AspNetCore.Authentication.OpenIdConnect; +using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Diagnostics.HealthChecks; @@ -56,13 +54,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF //loggerFactory.AddAzureWebAppDiagnostics(); //loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); - - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); @@ -80,11 +71,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UsePathBase(pathBase); } - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - app.UseSession(); app.UseStaticFiles(); @@ -98,15 +84,20 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF WebContextSeed.Seed(app, env, loggerFactory); app.UseHttpsRedirection(); - app.UseMvc(routes => + app.UseRouting(); + app.UseEndpoints(endpoints => { - routes.MapRoute( - name: "default", - template: "{controller=Catalog}/{action=Index}/{id?}"); - - routes.MapRoute( - name: "defaultError", - template: "{controller=Error}/{action=Error}"); + endpoints.MapControllerRoute("default", "{controller=Catalog}/{action=Index}/{id?}"); + endpoints.MapControllerRoute("defaultError", "{controller=Error}/{action=Error}"); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); }); } } @@ -125,13 +116,6 @@ public static IServiceCollection AddAppInsight(this IServiceCollection services, services.AddApplicationInsightsKubernetesEnricher(); } - if (orchestratorType?.ToUpper() == "SF") - { - // Enable SF telemetry initializer - services.AddSingleton((serviceProvider) => - new FabricTelemetryInitializer()); - } - return services; } @@ -141,8 +125,8 @@ public static IServiceCollection AddHealthChecks(this IServiceCollection service .AddCheck("self", () => HealthCheckResult.Healthy()) .AddUrlGroup(new Uri(configuration["PurchaseUrlHC"]), name: "purchaseapigw-check", tags: new string[] { "purchaseapigw" }) .AddUrlGroup(new Uri(configuration["MarketingUrlHC"]), name: "marketingapigw-check", tags: new string[] { "marketingapigw" }) - .AddUrlGroup(new Uri(configuration["IdentityUrlHC"]), name: "identityapi-check", tags: new string[] { "identityapi" }); - + .AddUrlGroup(new Uri(configuration["IdentityUrlHC"]), name: "identityapi-check", tags: new string[] { "identityapi" }); + return services; } @@ -152,7 +136,7 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, services.Configure(configuration); services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); services.AddSession(); @@ -245,10 +229,10 @@ public static IServiceCollection AddCustomAuthentication(this IServiceCollection services.AddAuthentication(options => { options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; - options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme; + options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) - .AddCookie(setup=>setup.ExpireTimeSpan = TimeSpan.FromMinutes(sessionCookieLifetime)) - .AddOpenIdConnect(options => + .AddCookie(setup => setup.ExpireTimeSpan = TimeSpan.FromMinutes(sessionCookieLifetime)) + .AddJwtBearer(options => { options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.Authority = identityUrl.ToString(); @@ -266,7 +250,34 @@ public static IServiceCollection AddCustomAuthentication(this IServiceCollection options.Scope.Add("marketing"); options.Scope.Add("locations"); options.Scope.Add("webshoppingagg"); - options.Scope.Add("orders.signalrhub"); + options.Scope.Add("orders.signalrhub"); + + /*options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; + options.Authority = identityUrl.ToString(); + options.SignedOutRedirectUri = callBackUrl.ToString(); + options.ClientId = useLoadTest ? "mvctest" : "mvc"; + options.ClientSecret = "secret"; + + if (useLoadTest) + { + options.Configuration.ResponseTypesSupported.Add("code id_token token"); + } + else + { + options.Configuration.ResponseTypesSupported.Add("code id_token"); + } + + options.SaveToken = true; + options.GetClaimsFromUserInfoEndpoint = true; + options.RequireHttpsMetadata = false; + options.Configuration.ScopesSupported.Add("openid"); + options.Configuration.ScopesSupported.Add("profile"); + options.Configuration.ScopesSupported.Add("orders"); + options.Configuration.ScopesSupported.Add("basket"); + options.Configuration.ScopesSupported.Add("marketing"); + options.Configuration.ScopesSupported.Add("locations"); + options.Configuration.ScopesSupported.Add("webshoppingagg"); + options.Configuration.ScopesSupported.Add("orders.signalrhub");*/ }); return services; diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj index 42f8f16dd0..adfc5587ee 100644 --- a/src/Web/WebMVC/WebMVC.csproj +++ b/src/Web/WebMVC/WebMVC.csproj @@ -5,6 +5,8 @@ aspnet-Microsoft.eShopOnContainers-946ae052-8305-4a99-965b-ec8636ddbae3 ..\..\..\docker-compose.dcproj 3.0 + false + 8.0 @@ -22,25 +24,25 @@ - + - - - - - + + + + + diff --git a/src/Web/WebSPA/Dockerfile b/src/Web/WebSPA/Dockerfile index d7cb7631c8..14617aaa79 100644 --- a/src/Web/WebSPA/Dockerfile +++ b/src/Web/WebSPA/Dockerfile @@ -1,5 +1,5 @@ ARG NODE_IMAGE=node:8.11 -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 @@ -9,7 +9,7 @@ COPY src/Web/WebSPA . RUN npm install RUN npm run build:prod -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/Web/WebSPA/Startup.cs b/src/Web/WebSPA/Startup.cs index 0c1f37b3fd..50e4dbef2b 100644 --- a/src/Web/WebSPA/Startup.cs +++ b/src/Web/WebSPA/Startup.cs @@ -1,22 +1,19 @@ using eShopOnContainers.WebSPA; -using Microsoft.ApplicationInsights.Extensibility; -using Microsoft.ApplicationInsights.ServiceFabric; +using HealthChecks.UI.Client; using Microsoft.AspNetCore.Antiforgery; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.DataProtection; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; -using Newtonsoft.Json.Serialization; using StackExchange.Redis; using System; using System.IO; using WebSPA.Infrastructure; -using HealthChecks.UI.Client; -using Microsoft.AspNetCore.Diagnostics.HealthChecks; -using Microsoft.Extensions.Diagnostics.HealthChecks; namespace eShopConContainers.WebSPA { @@ -30,6 +27,7 @@ public Startup(IConfiguration configuration) public IConfiguration Configuration { get; } private IHostingEnvironment _hostingEnv; + public Startup(IHostingEnvironment env) { _hostingEnv = env; @@ -48,7 +46,7 @@ public void ConfigureServices(IServiceCollection services) .AddCheck("self", () => HealthCheckResult.Healthy()) .AddUrlGroup(new Uri(Configuration["PurchaseUrlHC"]), name: "purchaseapigw-check", tags: new string[] { "purchaseapigw" }) .AddUrlGroup(new Uri(Configuration["MarketingUrlHC"]), name: "marketingapigw-check", tags: new string[] { "marketingapigw" }) - .AddUrlGroup(new Uri(Configuration["IdentityUrlHC"]), name: "identityapi-check", tags: new string[] { "identityapi" }); + .AddUrlGroup(new Uri(Configuration["IdentityUrlHC"]), name: "identityapi-check", tags: new string[] { "identityapi" }); services.Configure(Configuration); @@ -67,7 +65,7 @@ public void ConfigureServices(IServiceCollection services) .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddJsonOptions(options => { - options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); + options.JsonSerializerOptions.PropertyNameCaseInsensitive = true; }); } @@ -86,18 +84,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - // Configure XSRF middleware, This pattern is for SPA style applications where XSRF token is added on Index page // load and passed back token on every subsequent async request // app.Use(async (context, next) => @@ -128,34 +114,34 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF // Rewrite request to use app root if (context.Response.StatusCode == 404 && !Path.HasExtension(context.Request.Path.Value) && !context.Request.Path.Value.StartsWith("/api")) { - context.Request.Path = "/index.html"; + context.Request.Path = "/index.html"; context.Response.StatusCode = 200; // Make sure we update the status code, otherwise it returns 404 await next(); } }); - + app.UseDefaultFiles(); app.UseStaticFiles(); - - app.UseMvcWithDefaultRoute(); + app.UseRouting(); + app.UseEndpoints(endpoints => + { + endpoints.MapDefaultControllerRoute(); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + }); } private void RegisterAppInsights(IServiceCollection services) { services.AddApplicationInsightsTelemetry(Configuration); - var orchestratorType = Configuration.GetValue("OrchestratorType"); - - if (orchestratorType?.ToUpper() == "K8S") - { - // Enable K8s telemetry initializer - services.AddApplicationInsightsKubernetesEnricher(); - } - if (orchestratorType?.ToUpper() == "SF") - { - // Enable SF telemetry initializer - services.AddSingleton((serviceProvider) => - new FabricTelemetryInitializer()); - } + services.AddApplicationInsightsKubernetesEnricher(); } } } diff --git a/src/Web/WebSPA/WebSPA.csproj b/src/Web/WebSPA/WebSPA.csproj index 365b3205a3..c2682716f7 100644 --- a/src/Web/WebSPA/WebSPA.csproj +++ b/src/Web/WebSPA/WebSPA.csproj @@ -9,6 +9,7 @@ wwwroot/dist/** $(DefaultItemExcludes);$(GeneratedItemPatterns) 2.9 + 8.0 @@ -90,10 +91,9 @@ - - + diff --git a/src/Web/WebSPA/package.json b/src/Web/WebSPA/package.json index 41d25c6406..ae4209a14f 100644 --- a/src/Web/WebSPA/package.json +++ b/src/Web/WebSPA/package.json @@ -37,7 +37,7 @@ "@angular/platform-browser-dynamic": "^7.2.10", "@angular/platform-server": "^7.2.10", "@angular/router": "^7.2.10", - "@aspnet/signalr": "1.0.3", + "@aspnet/signalr": "3.0.0-preview6.19307.2", "@ng-bootstrap/ng-bootstrap": "3.3.0", "bootstrap": "4.3.1", "core-js": "^2.5.0", diff --git a/src/Web/WebStatus/Startup.cs b/src/Web/WebStatus/Startup.cs index 48875eab5c..17f42de5c6 100644 --- a/src/Web/WebStatus/Startup.cs +++ b/src/Web/WebStatus/Startup.cs @@ -56,11 +56,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UsePathBase(pathBase); } - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - app.UseHealthChecksUI(config => { config.ResourcesPath = string.IsNullOrEmpty(pathBase) ? "/ui/resources" : $"{pathBase}/ui/resources"; @@ -74,19 +69,17 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseEndpoints(endpoints => { endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); }); } private void RegisterAppInsights(IServiceCollection services) { services.AddApplicationInsightsTelemetry(Configuration); - var orchestratorType = Configuration.GetValue("OrchestratorType"); - - if (orchestratorType?.ToUpper() == "K8S") - { - // Enable K8s telemetry initializer - services.AddApplicationInsightsKubernetesEnricher(); - } + services.AddApplicationInsightsKubernetesEnricher(); } } } diff --git a/src/Web/WebStatus/WebStatus.csproj b/src/Web/WebStatus/WebStatus.csproj index 9364cd5e2e..43462a55e1 100644 --- a/src/Web/WebStatus/WebStatus.csproj +++ b/src/Web/WebStatus/WebStatus.csproj @@ -3,6 +3,7 @@ $(NetCoreTargetVersion) $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\docker-compose.dcproj + 8.0 @@ -14,7 +15,7 @@ - + diff --git a/src/Web/WebhookClient/Controllers/AccountController.cs b/src/Web/WebhookClient/Controllers/AccountController.cs index 26fc4074e3..461e3261df 100644 --- a/src/Web/WebhookClient/Controllers/AccountController.cs +++ b/src/Web/WebhookClient/Controllers/AccountController.cs @@ -3,9 +3,6 @@ using Microsoft.AspNetCore.Authentication.OpenIdConnect; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using System; -using System.Collections.Generic; -using System.Linq; using System.Security.Claims; using System.Threading.Tasks; diff --git a/src/Web/WebhookClient/Dockerfile b/src/Web/WebhookClient/Dockerfile index 9143fd8e1f..b756936f76 100644 --- a/src/Web/WebhookClient/Dockerfile +++ b/src/Web/WebhookClient/Dockerfile @@ -1,9 +1,9 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 EXPOSE 443 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/Web/WebhookClient/WebhookClient.csproj b/src/Web/WebhookClient/WebhookClient.csproj index 95ec6e8fbd..3e4eb8ed3d 100644 --- a/src/Web/WebhookClient/WebhookClient.csproj +++ b/src/Web/WebhookClient/WebhookClient.csproj @@ -1,17 +1,20 @@ - + $(NetCoreTargetVersion) InProcess Linux 36215d41-f31a-4aa6-9929-bd67d650e7b5 + 8.0 - - - + + + + + diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 809b3e08cc..7914c41c76 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -32,10 +32,19 @@ 4.9.2 4.2.1 1.50.7 - 4.3.0 + 3.0.0-alpha1-10670 + 1.0.2105168 + 3.0.0-preview6-19319-03 + 3.0.0-preview6-19253-01 + 4.3.0 4.5.1 4.5.0 5.1.0 + 2.6.375 + 2.2.0-preview2-35157 + 5.2.7 + 15.9.20 + 1.0.172 3.0.0-alpha1-34847 5.1.0 2.2.1 From fe93901f084c9a5589a0a32b5607088fc1846ae5 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Tue, 23 Jul 2019 15:23:26 +0200 Subject: [PATCH 015/149] identity service --- src/Services/Catalog/Catalog.API/Startup.cs | 11 ----- .../Identity/Identity.API/Identity.API.csproj | 10 ++-- src/Services/Identity/Identity.API/Startup.cs | 31 +++++------- .../Identity.API/Views/Account/Login.cshtml | 5 +- src/Web/WebMVC/Startup.cs | 48 +++++++++---------- src/_build/dependencies.props | 28 ++++++----- 6 files changed, 60 insertions(+), 73 deletions(-) diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index c34db76143..85fd3ba42e 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -75,17 +75,6 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF app.UsePathBase(pathBase); } - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - app.UseCors("CorsPolicy"); app.UseRouting(); diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index e68e36a7ea..6301e21e36 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -16,17 +16,17 @@ - - + + - + - + @@ -34,6 +34,8 @@ + + diff --git a/src/Services/Identity/Identity.API/Startup.cs b/src/Services/Identity/Identity.API/Startup.cs index 009773b628..644124da46 100644 --- a/src/Services/Identity/Identity.API/Startup.cs +++ b/src/Services/Identity/Identity.API/Startup.cs @@ -55,7 +55,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) services.Configure(Configuration); services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); if (Configuration.GetValue("IsClusterEnv") == bool.TrueString) { @@ -140,20 +140,8 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UsePathBase(pathBase); } - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - app.UseStaticFiles(); - // Make work identity server redirections in Edge and lastest versions of browers. WARN: Not valid in a production environment. app.Use(async (context, next) => { @@ -164,13 +152,20 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseForwardedHeaders(); // Adds IdentityServer app.UseIdentityServer(); - app.UseHttpsRedirection(); - app.UseMvc(routes => + app.UseRouting(); + app.UseEndpoints(endpoints => { - routes.MapRoute( - name: "default", - template: "{controller=Home}/{action=Index}/{id?}"); + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + endpoints.MapDefaultControllerRoute(); }); } diff --git a/src/Services/Identity/Identity.API/Views/Account/Login.cshtml b/src/Services/Identity/Identity.API/Views/Account/Login.cshtml index 3158104199..b74d7d8b93 100644 --- a/src/Services/Identity/Identity.API/Views/Account/Login.cshtml +++ b/src/Services/Identity/Identity.API/Views/Account/Login.cshtml @@ -1,7 +1,4 @@ -@using System.Collections.Generic -@using Microsoft.AspNetCore.Http -@using Microsoft.AspNetCore.Http.Authentication -@model Microsoft.eShopOnContainers.Services.Identity.API.Models.AccountViewModels.LoginViewModel +@model Microsoft.eShopOnContainers.Services.Identity.API.Models.AccountViewModels.LoginViewModel @{ diff --git a/src/Web/WebMVC/Startup.cs b/src/Web/WebMVC/Startup.cs index e9c0a519f6..1d2908bf1f 100644 --- a/src/Web/WebMVC/Startup.cs +++ b/src/Web/WebMVC/Startup.cs @@ -234,29 +234,29 @@ public static IServiceCollection AddCustomAuthentication(this IServiceCollection .AddCookie(setup => setup.ExpireTimeSpan = TimeSpan.FromMinutes(sessionCookieLifetime)) .AddJwtBearer(options => { - options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; + //options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; + //options.Authority = identityUrl.ToString(); + //options.SignedOutRedirectUri = callBackUrl.ToString(); + //options.ClientId = useLoadTest ? "mvctest" : "mvc"; + //options.ClientSecret = "secret"; + //options.ResponseType = useLoadTest ? "code id_token token" : "code id_token"; + //options.SaveTokens = true; + //options.GetClaimsFromUserInfoEndpoint = true; + //options.RequireHttpsMetadata = false; + //options.Scope.Add("openid"); + //options.Scope.Add("profile"); + //options.Scope.Add("orders"); + //options.Scope.Add("basket"); + //options.Scope.Add("marketing"); + //options.Scope.Add("locations"); + //options.Scope.Add("webshoppingagg"); + //options.Scope.Add("orders.signalrhub"); + + //options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.Authority = identityUrl.ToString(); - options.SignedOutRedirectUri = callBackUrl.ToString(); - options.ClientId = useLoadTest ? "mvctest" : "mvc"; - options.ClientSecret = "secret"; - options.ResponseType = useLoadTest ? "code id_token token" : "code id_token"; - options.SaveTokens = true; - options.GetClaimsFromUserInfoEndpoint = true; - options.RequireHttpsMetadata = false; - options.Scope.Add("openid"); - options.Scope.Add("profile"); - options.Scope.Add("orders"); - options.Scope.Add("basket"); - options.Scope.Add("marketing"); - options.Scope.Add("locations"); - options.Scope.Add("webshoppingagg"); - options.Scope.Add("orders.signalrhub"); - - /*options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; - options.Authority = identityUrl.ToString(); - options.SignedOutRedirectUri = callBackUrl.ToString(); - options.ClientId = useLoadTest ? "mvctest" : "mvc"; - options.ClientSecret = "secret"; + options.ForwardSignOut = callBackUrl.ToString(); + //options.ClientId = useLoadTest ? "mvctest" : "mvc"; + //options.ClientSecret = "secret"; if (useLoadTest) { @@ -268,7 +268,7 @@ public static IServiceCollection AddCustomAuthentication(this IServiceCollection } options.SaveToken = true; - options.GetClaimsFromUserInfoEndpoint = true; + //options.GetClaimsFromUserInfoEndpoint = true; options.RequireHttpsMetadata = false; options.Configuration.ScopesSupported.Add("openid"); options.Configuration.ScopesSupported.Add("profile"); @@ -277,7 +277,7 @@ public static IServiceCollection AddCustomAuthentication(this IServiceCollection options.Configuration.ScopesSupported.Add("marketing"); options.Configuration.ScopesSupported.Add("locations"); options.Configuration.ScopesSupported.Add("webshoppingagg"); - options.Configuration.ScopesSupported.Add("orders.signalrhub");*/ + options.Configuration.ScopesSupported.Add("orders.signalrhub"); }); return services; diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 7914c41c76..b914b4ec3a 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -15,7 +15,7 @@ 2.9.406 - + 0.1.22-pre1 3.9.0-rc1 1.22.0 @@ -32,24 +32,24 @@ 4.9.2 4.2.1 1.50.7 - 3.0.0-alpha1-10670 - 1.0.2105168 - 3.0.0-preview6-19319-03 - 3.0.0-preview6-19253-01 - 4.3.0 + 4.3.0 4.5.1 4.5.0 5.1.0 2.6.375 - 2.2.0-preview2-35157 - 5.2.7 + 5.2.7 15.9.20 1.0.172 - 3.0.0-alpha1-34847 + 1.0.2105168 + 3.0.0-preview6-19319-03 5.1.0 2.2.1 2.6.1 1.0.2 + 3.0.0-alpha1-10670 + 3.0.0-preview6-19253-01 + 2.2.0-preview2-35157 + 3.0.0-alpha1-34847 3.0.0-preview6.19307.2 3.0.0-preview6.19307.2 2.2.0 @@ -57,11 +57,13 @@ 2.2.0 3.0.0-preview6.19307.2 3.0.0-preview6.19307.2 + 3.0.0-preview6.19307.2 + 3.0.0-preview6-19253-01 + 3.0.0-preview4-19123-01 + 7.5.0 3.0.0 4.5.0 - 3.0.0-preview4-19123-01 4.7.0-preview6.19303.8 - 7.5.0 3.0.0-preview6.19304.10 3.0.0-preview6.19304.10 3.0.0-preview6.19304.10 @@ -82,6 +84,8 @@ 12.0.2 12.0.1 6.0.1 + 3.0.0-preview3.4 + 3.0.0-preview3.4 5.0.1 3.0.0-dev-00053 2.1.3 @@ -94,7 +98,7 @@ 4.3.0 2.4.0 2.4.0 - + https://github.com/dotnet-architecture/eShopOnContainers/blob/master/LICENSE From 49cc39d731914fafbb0cd4a9e2b151c18e36a097 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Wed, 24 Jul 2019 09:06:46 +0200 Subject: [PATCH 016/149] update startups --- src/ApiGateways/ApiGw-Base/Startup.cs | 19 ++-- .../Mobile.Bff.Shopping/aggregator/Startup.cs | 26 +++--- .../Web.Bff.Shopping/aggregator/Startup.cs | 26 +++--- .../AuthorizeCheckOperationFilter.cs | 25 +++--- src/Services/Webhooks/Webhooks.API/Startup.cs | 86 ++++++++----------- .../Webhooks/Webhooks.API/Webhooks.API.csproj | 9 +- src/Web/WebMVC/Startup.cs | 67 ++++----------- src/Web/WebhookClient/Startup.cs | 10 ++- src/Web/WebhookClient/WebhookClient.csproj | 3 +- 9 files changed, 122 insertions(+), 149 deletions(-) diff --git a/src/ApiGateways/ApiGw-Base/Startup.cs b/src/ApiGateways/ApiGw-Base/Startup.cs index be845edcaa..f4b7eaff71 100644 --- a/src/ApiGateways/ApiGw-Base/Startup.cs +++ b/src/ApiGateways/ApiGw-Base/Startup.cs @@ -89,15 +89,18 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env) app.UseDeveloperExceptionPage(); } - app.UseHealthChecks("/hc", new HealthCheckOptions() + app.UseRouting(); + app.UseEndpoints(endpoints => { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); }); app.UseCors("CorsPolicy"); diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index a2997be054..efa9285c25 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -62,17 +62,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UsePathBase(pathBase); } - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - app.UseCors("CorsPolicy"); if (env.IsDevelopment()) @@ -87,7 +76,20 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseAuthentication(); app.UseHttpsRedirection(); - app.UseMvc(); + app.UseRouting(); + app.UseEndpoints(endpoints => + { + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + endpoints.MapDefaultControllerRoute(); + }); app.UseSwagger().UseSwaggerUI(c => { diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index 747269f503..b6d43b3005 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -61,17 +61,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UsePathBase(pathBase); } - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - app.UseCors("CorsPolicy"); if (env.IsDevelopment()) @@ -86,7 +75,20 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseAuthentication(); app.UseHttpsRedirection(); - app.UseMvc(); + app.UseRouting(); + app.UseEndpoints(endpoints => + { + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + endpoints.MapDefaultControllerRoute(); + }); app.UseSwagger() .UseSwaggerUI(c => diff --git a/src/Services/Webhooks/Webhooks.API/Infrastructure/AuthorizeCheckOperationFilter.cs b/src/Services/Webhooks/Webhooks.API/Infrastructure/AuthorizeCheckOperationFilter.cs index 920f2ac8e8..487a599819 100644 --- a/src/Services/Webhooks/Webhooks.API/Infrastructure/AuthorizeCheckOperationFilter.cs +++ b/src/Services/Webhooks/Webhooks.API/Infrastructure/AuthorizeCheckOperationFilter.cs @@ -1,16 +1,14 @@ using Microsoft.AspNetCore.Authorization; -using Swashbuckle.AspNetCore.Swagger; +using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; -using System; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; namespace Webhooks.API.Infrastructure { public class AuthorizeCheckOperationFilter : IOperationFilter { - public void Apply(Operation operation, OperationFilterContext context) + public void Apply(OpenApiOperation operation, OperationFilterContext context) { // Check for authorize attribute var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() || @@ -18,16 +16,21 @@ public void Apply(Operation operation, OperationFilterContext context) if (!hasAuthorize) return; - operation.Responses.TryAdd("401", new Response { Description = "Unauthorized" }); - operation.Responses.TryAdd("403", new Response { Description = "Forbidden" }); + operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" }); + operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" }); - operation.Security = new List>> + var oAuthScheme = new OpenApiSecurityScheme { - new Dictionary> - { - { "oauth2", new [] { "webhooksapi" } } - } + Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } }; + + operation.Security = new List + { + new OpenApiSecurityRequirement + { + [ oAuthScheme ] = new [] { "webhooksapi" } + } + }; } } } diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs index f1a89d3290..dfeb36a79f 100644 --- a/src/Services/Webhooks/Webhooks.API/Startup.cs +++ b/src/Services/Webhooks/Webhooks.API/Startup.cs @@ -1,21 +1,10 @@ -using System; -using System.Collections.Generic; -using System.Data.Common; -using System.IdentityModel.Tokens.Jwt; -using System.Linq; -using System.Reflection; -using System.Threading; -using System.Threading.Tasks; -using Autofac; +using Autofac; using Autofac.Extensions.DependencyInjection; using Devspaces.Support; using HealthChecks.UI.Client; -using Microsoft.ApplicationInsights.Extensibility; -using Microsoft.ApplicationInsights.ServiceFabric; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.ServiceBus; @@ -31,7 +20,12 @@ using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using RabbitMQ.Client; -using Swashbuckle.AspNetCore.Swagger; +using System; +using System.Collections.Generic; +using System.Data.Common; +using System.IdentityModel.Tokens.Jwt; +using System.Reflection; +using System.Threading; using Webhooks.API.Infrastructure; using Webhooks.API.IntegrationEvents; using Webhooks.API.Services; @@ -84,22 +78,25 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) app.UsePathBase(pathBase); } - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - app.UseCors("CorsPolicy"); ConfigureAuth(app); - app.UseMvcWithDefaultRoute(); + app.UseRouting(); + app.UseEndpoints(endpoints => + { + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + + endpoints.MapDefaultControllerRoute(); + }); app.UseSwagger() .UseSwaggerUI(c => @@ -138,19 +135,7 @@ static class CustomExtensionMethods public static IServiceCollection AddAppInsight(this IServiceCollection services, IConfiguration configuration) { services.AddApplicationInsightsTelemetry(configuration); - var orchestratorType = configuration.GetValue("OrchestratorType"); - - if (orchestratorType?.ToUpper() == "K8S") - { - // Enable K8s telemetry initializer - services.AddApplicationInsightsKubernetesEnricher(); - } - if (orchestratorType?.ToUpper() == "SF") - { - // Enable SF telemetry initializer - services.AddSingleton((serviceProvider) => - new FabricTelemetryInitializer()); - } + services.AddApplicationInsightsKubernetesEnricher(); return services; } @@ -161,7 +146,7 @@ public static IServiceCollection AddCustomMVC(this IServiceCollection services, { options.Filters.Add(typeof(HttpGlobalExceptionFilter)); }) - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2) + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddControllersAsServices(); services.AddCors(options => @@ -203,23 +188,26 @@ public static IServiceCollection AddSwagger(this IServiceCollection services, IC services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info + options.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "eShopOnContainers - Webhooks HTTP API", Version = "v1", - Description = "The Webhooks Microservice HTTP API. This is a simple webhooks CRUD registration entrypoint", - TermsOfService = "Terms Of Service" + Description = "The Webhooks Microservice HTTP API. This is a simple webhooks CRUD registration entrypoint" }); - options.AddSecurityDefinition("oauth2", new OAuth2Scheme + options.AddSecurityDefinition("oauth2", new Microsoft.OpenApi.Models.OpenApiSecurityScheme { - Type = "oauth2", - Flow = "implicit", - AuthorizationUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize", - TokenUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/token", - Scopes = new Dictionary() + Flows = new Microsoft.OpenApi.Models.OpenApiOAuthFlows() { - { "webhooks", "Webhooks API" } + Implicit = new Microsoft.OpenApi.Models.OpenApiOAuthFlow() + { + AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), + Scopes = new Dictionary() + { + { "marketing", "Marketing API" } + } + } } }); diff --git a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj index 1dcf916f59..9ff40e01bc 100644 --- a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj +++ b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj @@ -4,21 +4,24 @@ $(NetCoreTargetVersion) InProcess Linux + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false + 8.0 - - + + - + diff --git a/src/Web/WebMVC/Startup.cs b/src/Web/WebMVC/Startup.cs index 1d2908bf1f..db53a23b90 100644 --- a/src/Web/WebMVC/Startup.cs +++ b/src/Web/WebMVC/Startup.cs @@ -108,13 +108,7 @@ static class ServiceCollectionExtensions public static IServiceCollection AddAppInsight(this IServiceCollection services, IConfiguration configuration) { services.AddApplicationInsightsTelemetry(configuration); - var orchestratorType = configuration.GetValue("OrchestratorType"); - - if (orchestratorType?.ToUpper() == "K8S") - { - // Enable K8s telemetry initializer - services.AddApplicationInsightsKubernetesEnricher(); - } + services.AddApplicationInsightsKubernetesEnricher(); return services; } @@ -232,52 +226,25 @@ public static IServiceCollection AddCustomAuthentication(this IServiceCollection options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddCookie(setup => setup.ExpireTimeSpan = TimeSpan.FromMinutes(sessionCookieLifetime)) - .AddJwtBearer(options => + .AddOpenIdConnect(options => { - //options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; - //options.Authority = identityUrl.ToString(); - //options.SignedOutRedirectUri = callBackUrl.ToString(); - //options.ClientId = useLoadTest ? "mvctest" : "mvc"; - //options.ClientSecret = "secret"; - //options.ResponseType = useLoadTest ? "code id_token token" : "code id_token"; - //options.SaveTokens = true; - //options.GetClaimsFromUserInfoEndpoint = true; - //options.RequireHttpsMetadata = false; - //options.Scope.Add("openid"); - //options.Scope.Add("profile"); - //options.Scope.Add("orders"); - //options.Scope.Add("basket"); - //options.Scope.Add("marketing"); - //options.Scope.Add("locations"); - //options.Scope.Add("webshoppingagg"); - //options.Scope.Add("orders.signalrhub"); - - //options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; + options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.Authority = identityUrl.ToString(); - options.ForwardSignOut = callBackUrl.ToString(); - //options.ClientId = useLoadTest ? "mvctest" : "mvc"; - //options.ClientSecret = "secret"; - - if (useLoadTest) - { - options.Configuration.ResponseTypesSupported.Add("code id_token token"); - } - else - { - options.Configuration.ResponseTypesSupported.Add("code id_token"); - } - - options.SaveToken = true; - //options.GetClaimsFromUserInfoEndpoint = true; + options.SignedOutRedirectUri = callBackUrl.ToString(); + options.ClientId = useLoadTest ? "mvctest" : "mvc"; + options.ClientSecret = "secret"; + options.ResponseType = useLoadTest ? "code id_token token" : "code id_token"; + options.SaveTokens = true; + options.GetClaimsFromUserInfoEndpoint = true; options.RequireHttpsMetadata = false; - options.Configuration.ScopesSupported.Add("openid"); - options.Configuration.ScopesSupported.Add("profile"); - options.Configuration.ScopesSupported.Add("orders"); - options.Configuration.ScopesSupported.Add("basket"); - options.Configuration.ScopesSupported.Add("marketing"); - options.Configuration.ScopesSupported.Add("locations"); - options.Configuration.ScopesSupported.Add("webshoppingagg"); - options.Configuration.ScopesSupported.Add("orders.signalrhub"); + options.Scope.Add("openid"); + options.Scope.Add("profile"); + options.Scope.Add("orders"); + options.Scope.Add("basket"); + options.Scope.Add("marketing"); + options.Scope.Add("locations"); + options.Scope.Add("webshoppingagg"); + options.Scope.Add("orders.signalrhub"); }); return services; diff --git a/src/Web/WebhookClient/Startup.cs b/src/Web/WebhookClient/Startup.cs index 13ff703621..3b56d20fb8 100644 --- a/src/Web/WebhookClient/Startup.cs +++ b/src/Web/WebhookClient/Startup.cs @@ -36,7 +36,7 @@ public void ConfigureServices(IServiceCollection services) .AddCustomAuthentication(Configuration) .AddTransient() .AddSingleton() - .AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); + .AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -69,7 +69,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env) var header = context.Request.Headers[HeaderNames.WebHookCheckHeader]; var value = header.FirstOrDefault(); var tokenToValidate = Configuration["Token"]; - if (!validateToken || value == tokenToValidate) + if (!validateToken || value == tokenToValidate) { if (!string.IsNullOrWhiteSpace(tokenToValidate)) { @@ -91,7 +91,11 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env) }); app.UseStaticFiles(); app.UseSession(); - app.UseMvcWithDefaultRoute(); + app.UseRouting(); + app.UseEndpoints(endpoints => + { + endpoints.MapDefaultControllerRoute(); + }); } } diff --git a/src/Web/WebhookClient/WebhookClient.csproj b/src/Web/WebhookClient/WebhookClient.csproj index 3e4eb8ed3d..f9d46a63a6 100644 --- a/src/Web/WebhookClient/WebhookClient.csproj +++ b/src/Web/WebhookClient/WebhookClient.csproj @@ -5,12 +5,13 @@ InProcess Linux 36215d41-f31a-4aa6-9929-bd67d650e7b5 + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false 8.0 - From 754d91f3ef89a12589cfd1aae55b89fdcb656cc6 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Wed, 24 Jul 2019 09:51:34 +0200 Subject: [PATCH 017/149] update dockerfile image --- src/Services/Identity/Identity.API/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Services/Identity/Identity.API/Dockerfile b/src/Services/Identity/Identity.API/Dockerfile index 8196b077ae..0096fe7f48 100644 --- a/src/Services/Identity/Identity.API/Dockerfile +++ b/src/Services/Identity/Identity.API/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ From 072c82a92d0a9d5cbf9152a946c7c4663f832403 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Wed, 24 Jul 2019 09:58:02 +0200 Subject: [PATCH 018/149] add target references ignore --- src/Services/Basket/Basket.API/Basket.API.csproj | 1 + src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index 22c562da00..a28c52524a 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -4,6 +4,7 @@ $(NetCoreTargetVersion) $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj + false 8.0 diff --git a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj index 4c062fccd1..a678bc4ce8 100644 --- a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj +++ b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj @@ -2,7 +2,7 @@ $(NetCoreTargetVersion) - + false false From 19dfd6862939cc9176e1c8dfac61fea62f666afb Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 24 Jul 2019 11:13:25 +0200 Subject: [PATCH 019/149] Migrate Basket.UnitTests --- .../Basket/Basket.UnitTests/Basket.UnitTests.csproj | 8 ++++++-- src/_build/dependencies.props | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj index a678bc4ce8..54d753de98 100644 --- a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj +++ b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj @@ -7,8 +7,12 @@ - - + + + + + + diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index b914b4ec3a..df4140c777 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -46,6 +46,7 @@ 2.2.1 2.6.1 1.0.2 + 3.0.0-preview4-19123-01 3.0.0-alpha1-10670 3.0.0-preview6-19253-01 2.2.0-preview2-35157 @@ -60,14 +61,17 @@ 3.0.0-preview6.19307.2 3.0.0-preview6-19253-01 3.0.0-preview4-19123-01 + 3.0.0-preview4-19123-01 7.5.0 3.0.0 4.5.0 4.7.0-preview6.19303.8 + 3.0.0-preview6.19303.8 3.0.0-preview6.19304.10 3.0.0-preview6.19304.10 3.0.0-preview6.19304.10 3.0.0-preview6.19304.10 + 3.0.0-preview7.19365.7 2.2.0 2.2.0 2.2.0 From eb1c2705cb7645bf1cea17295391475b4d5e014b Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 24 Jul 2019 11:22:46 +0200 Subject: [PATCH 020/149] Migrate Catalog.UnitTests --- .../Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj index d0584bd60f..027b7d5d71 100644 --- a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj +++ b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj @@ -7,8 +7,9 @@ - - + + + From 79405b89b073088341a2ac566762181c8b3feff4 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Wed, 24 Jul 2019 12:15:38 +0200 Subject: [PATCH 021/149] modify retries count --- global.json | 1 + src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj | 1 + .../Mobile.Shopping.HttpAggregator.csproj | 2 +- .../Web.Shopping.HttpAggregator.csproj | 2 +- .../Basket/Basket.API/Basket.API.csproj | 2 +- .../Catalog/Catalog.API/Catalog.API.csproj | 3 ++- src/Services/Catalog/Catalog.API/Startup.cs | 7 +++--- .../Identity/Identity.API/Identity.API.csproj | 2 ++ src/Services/Identity/Identity.API/Startup.cs | 4 ---- .../Locations.API/Locations.API.csproj | 1 + .../Filters/AuthorizeCheckOperationFilter.cs | 23 +++++++++++-------- .../Marketing.API/Marketing.API.csproj | 3 ++- .../Marketing/Marketing.API/Startup.cs | 5 ++-- .../Ordering/Ordering.API/Ordering.API.csproj | 3 ++- src/Services/Ordering/Ordering.API/Startup.cs | 16 ++----------- .../Ordering.BackgroundTasks.csproj | 2 ++ .../Ordering.SignalrHub.csproj | 2 +- .../Payment/Payment.API/Payment.API.csproj | 1 + src/Services/Webhooks/Webhooks.API/Startup.cs | 5 ++-- .../Webhooks/Webhooks.API/Webhooks.API.csproj | 2 +- src/Web/WebMVC/WebMVC.csproj | 2 +- src/Web/WebSPA/WebSPA.csproj | 2 +- src/Web/WebStatus/Startup.cs | 3 +-- src/Web/WebStatus/WebStatus.csproj | 2 +- src/Web/WebhookClient/WebhookClient.csproj | 2 +- 25 files changed, 50 insertions(+), 48 deletions(-) create mode 100644 global.json diff --git a/global.json b/global.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/global.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj index 8f311ab773..c7855f18ec 100644 --- a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj +++ b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj @@ -2,6 +2,7 @@ $(NetCoreTargetVersion) + $(LangVersion) diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj index 87e6c31b3d..d8d54643fb 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj @@ -6,7 +6,7 @@ Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator ..\..\..\docker-compose.dcproj false - 8.0 + $(LangVersion) diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj index b7eb1a019c..10d8900626 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj @@ -6,7 +6,7 @@ Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator ..\..\..\docker-compose.dcproj false - 8.0 + $(LangVersion) diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index a28c52524a..9c09a08bc9 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -5,7 +5,7 @@ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj false - 8.0 + $(LangVersion) diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.csproj b/src/Services/Catalog/Catalog.API/Catalog.API.csproj index 2640185d1d..f20ba1c7d8 100644 --- a/src/Services/Catalog/Catalog.API/Catalog.API.csproj +++ b/src/Services/Catalog/Catalog.API/Catalog.API.csproj @@ -8,7 +8,8 @@ Catalog.API aspnet-Catalog.API-20161122013618 ..\..\..\..\docker-compose.dcproj - 8.0 + false + $(LangVersion) diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 85fd3ba42e..24d3395b06 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -202,14 +202,15 @@ public static IServiceCollection AddCustomHealthCheck(this IServiceCollection se public static IServiceCollection AddCustomDbContext(this IServiceCollection services, IConfiguration configuration) { - services.AddDbContext(options => + services.AddEntityFrameworkSqlServer() + .AddDbContext(options => { options.UseSqlServer(configuration["ConnectionString"], sqlServerOptionsAction: sqlOptions => { sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name); //Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency - sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); + sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); }); // Changing default behavior when client evaluation occurs to throw. @@ -225,7 +226,7 @@ public static IServiceCollection AddCustomDbContext(this IServiceCollection serv { sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name); //Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency - sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); + sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); }); }); diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index 6301e21e36..1fe8e7ac44 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -4,6 +4,8 @@ $(NetCoreTargetVersion) aspnet-eShopOnContainers.Identity-90487118-103c-4ff0-b9da-e5e26f7ab0c5 ..\..\..\..\docker-compose.dcproj + false + $(LangVersion) diff --git a/src/Services/Identity/Identity.API/Startup.cs b/src/Services/Identity/Identity.API/Startup.cs index 644124da46..fd8e94c59a 100644 --- a/src/Services/Identity/Identity.API/Startup.cs +++ b/src/Services/Identity/Identity.API/Startup.cs @@ -7,7 +7,6 @@ using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Identity; -using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.eShopOnContainers.Services.Identity.API.Certificates; using Microsoft.eShopOnContainers.Services.Identity.API.Data; @@ -54,9 +53,6 @@ public IServiceProvider ConfigureServices(IServiceCollection services) services.Configure(Configuration); - services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); - if (Configuration.GetValue("IsClusterEnv") == bool.TrueString) { services.AddDataProtection(opts => diff --git a/src/Services/Location/Locations.API/Locations.API.csproj b/src/Services/Location/Locations.API/Locations.API.csproj index 653b7b7b52..10b2a6f9b5 100644 --- a/src/Services/Location/Locations.API/Locations.API.csproj +++ b/src/Services/Location/Locations.API/Locations.API.csproj @@ -4,6 +4,7 @@ $(NetCoreTargetVersion) ..\..\..\..\docker-compose.dcproj aspnet-Locations.API-20161122013619 + false $(LangVersion) diff --git a/src/Services/Marketing/Marketing.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs b/src/Services/Marketing/Marketing.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs index 3f19140bfa..d013597d98 100644 --- a/src/Services/Marketing/Marketing.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs +++ b/src/Services/Marketing/Marketing.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs @@ -1,5 +1,5 @@ using Microsoft.AspNetCore.Authorization; -using Swashbuckle.AspNetCore.Swagger; +using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; using System.Collections.Generic; using System.Linq; @@ -8,7 +8,7 @@ namespace Microsoft.eShopOnContainers.Services.Marketing.API.Infrastructure.Filt { public class AuthorizeCheckOperationFilter : IOperationFilter { - public void Apply(Operation operation, OperationFilterContext context) + public void Apply(OpenApiOperation operation, OperationFilterContext context) { // Check for authorize attribute var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() || @@ -16,16 +16,21 @@ public void Apply(Operation operation, OperationFilterContext context) if (!hasAuthorize) return; - operation.Responses.TryAdd("401", new Response { Description = "Unauthorized" }); - operation.Responses.TryAdd("403", new Response { Description = "Forbidden" }); + operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" }); + operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" }); - operation.Security = new List>> + var oAuthScheme = new OpenApiSecurityScheme { - new Dictionary> - { - { "oauth2", new [] { "marketingapi" } } - } + Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } }; + + operation.Security = new List + { + new OpenApiSecurityRequirement + { + [ oAuthScheme ] = new [] { "marketingapi" } + } + }; } } } \ No newline at end of file diff --git a/src/Services/Marketing/Marketing.API/Marketing.API.csproj b/src/Services/Marketing/Marketing.API/Marketing.API.csproj index 8eb50e2a39..e07d4e444f 100644 --- a/src/Services/Marketing/Marketing.API/Marketing.API.csproj +++ b/src/Services/Marketing/Marketing.API/Marketing.API.csproj @@ -5,11 +5,12 @@ ..\..\..\..\docker-compose.dcproj Microsoft.eShopOnContainers.Services.Marketing.API $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false aspnet-Marketing.API-20161122013619 /subscriptions/6c22bb55-0221-4ce4-9bf1-3c4a10a7294c/resourcegroups/eshop-log/providers/microsoft.insights/components/eshopappinsights /subscriptions/6c22bb55-0221-4ce4-9bf1-3c4a10a7294c/resourcegroups/eshop-log/providers/microsoft.insights/components/eshopappinsights - 8.0 + $(LangVersion) diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs index 289a9c351b..533827ae25 100644 --- a/src/Services/Marketing/Marketing.API/Startup.cs +++ b/src/Services/Marketing/Marketing.API/Startup.cs @@ -62,14 +62,15 @@ public IServiceProvider ConfigureServices(IServiceCollection services) ConfigureAuthService(services); - services.AddDbContext(options => + services.AddEntityFrameworkSqlServer() + .AddDbContext(options => { options.UseSqlServer(Configuration["ConnectionString"], sqlServerOptionsAction: sqlOptions => { sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name); //Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency - sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); + sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); }); // Changing default behavior when client evaluation occurs to throw. diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index ea2ac2d775..bb038d2e5a 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -5,7 +5,8 @@ aspnet-Ordering.API-20161122013547 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj - 8.0 + false + $(LangVersion) diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index de9a88af1c..ddd53489ab 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -13,7 +13,6 @@ using Infrastructure.Services; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; - using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.ServiceBus; using Microsoft.EntityFrameworkCore; @@ -82,17 +81,6 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) app.UseCors("CorsPolicy"); - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - ConfigureAuth(app); app.UseRouting(); @@ -221,7 +209,7 @@ public static IServiceCollection AddCustomDbContext(this IServiceCollection serv sqlServerOptionsAction: sqlOptions => { sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name); - sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); + sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); }); }, ServiceLifetime.Scoped //Showing explicitly that the DbContext is shared across the HTTP request scope (graph of objects started in the HTTP request) @@ -234,7 +222,7 @@ public static IServiceCollection AddCustomDbContext(this IServiceCollection serv { sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name); //Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency - sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); + sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); }); }); diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj index 5681288a84..ab193ddb9b 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj @@ -4,6 +4,8 @@ $(NetCoreTargetVersion) $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj + false + $(LangVersion) diff --git a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj index e4084087f6..93bed47113 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj +++ b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj @@ -4,7 +4,7 @@ $(NetCoreTargetVersion) ..\..\..\..\docker-compose.dcproj false - 8.0 + $(LangVersion) diff --git a/src/Services/Payment/Payment.API/Payment.API.csproj b/src/Services/Payment/Payment.API/Payment.API.csproj index df0f93690c..341dfd3836 100644 --- a/src/Services/Payment/Payment.API/Payment.API.csproj +++ b/src/Services/Payment/Payment.API/Payment.API.csproj @@ -4,6 +4,7 @@ $(NetCoreTargetVersion) ..\..\..\..\docker-compose.dcproj $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false $(LangVersion) diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs index dfeb36a79f..c7f896b0bc 100644 --- a/src/Services/Webhooks/Webhooks.API/Startup.cs +++ b/src/Services/Webhooks/Webhooks.API/Startup.cs @@ -164,14 +164,15 @@ public static IServiceCollection AddCustomMVC(this IServiceCollection services, public static IServiceCollection AddCustomDbContext(this IServiceCollection services, IConfiguration configuration) { - services.AddDbContext(options => + services.AddEntityFrameworkSqlServer() + .AddDbContext(options => { options.UseSqlServer(configuration["ConnectionString"], sqlServerOptionsAction: sqlOptions => { sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name); //Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency - sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); + sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); }); // Changing default behavior when client evaluation occurs to throw. diff --git a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj index 9ff40e01bc..ed474e7413 100644 --- a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj +++ b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj @@ -6,7 +6,7 @@ Linux $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false - 8.0 + $(LangVersion) diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj index adfc5587ee..25fc670fdd 100644 --- a/src/Web/WebMVC/WebMVC.csproj +++ b/src/Web/WebMVC/WebMVC.csproj @@ -6,7 +6,7 @@ ..\..\..\docker-compose.dcproj 3.0 false - 8.0 + $(LangVersion) diff --git a/src/Web/WebSPA/WebSPA.csproj b/src/Web/WebSPA/WebSPA.csproj index c2682716f7..f219dc5aa2 100644 --- a/src/Web/WebSPA/WebSPA.csproj +++ b/src/Web/WebSPA/WebSPA.csproj @@ -9,7 +9,7 @@ wwwroot/dist/** $(DefaultItemExcludes);$(GeneratedItemPatterns) 2.9 - 8.0 + $(LangVersion) diff --git a/src/Web/WebStatus/Startup.cs b/src/Web/WebStatus/Startup.cs index 17f42de5c6..eeabd09127 100644 --- a/src/Web/WebStatus/Startup.cs +++ b/src/Web/WebStatus/Startup.cs @@ -28,7 +28,6 @@ public void ConfigureServices(IServiceCollection services) .AddCheck("self", () => HealthCheckResult.Healthy()); services.AddHealthChecksUI(); - services.AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); } @@ -65,7 +64,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseStaticFiles(); app.UseHttpsRedirection(); - + app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); diff --git a/src/Web/WebStatus/WebStatus.csproj b/src/Web/WebStatus/WebStatus.csproj index 43462a55e1..28f4bce18f 100644 --- a/src/Web/WebStatus/WebStatus.csproj +++ b/src/Web/WebStatus/WebStatus.csproj @@ -3,7 +3,7 @@ $(NetCoreTargetVersion) $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\docker-compose.dcproj - 8.0 + $(LangVersion) diff --git a/src/Web/WebhookClient/WebhookClient.csproj b/src/Web/WebhookClient/WebhookClient.csproj index f9d46a63a6..22cb5afe27 100644 --- a/src/Web/WebhookClient/WebhookClient.csproj +++ b/src/Web/WebhookClient/WebhookClient.csproj @@ -7,7 +7,7 @@ 36215d41-f31a-4aa6-9929-bd67d650e7b5 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false - 8.0 + $(LangVersion) From eb080668ab3288fb66713a8d89e10d4545e4642d Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Wed, 24 Jul 2019 16:20:08 +0200 Subject: [PATCH 022/149] add type securitySchema OAuth2 --- .../Mobile.Bff.Shopping/aggregator/Startup.cs | 10 ++++++---- src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs | 10 ++++++---- src/Services/Basket/Basket.API/Startup.cs | 10 ++++++---- src/Services/Identity/Identity.API/Identity.API.csproj | 5 +++-- src/Services/Marketing/Marketing.API/Startup.cs | 10 ++++++---- src/Services/Ordering/Ordering.API/Startup.cs | 10 ++++++---- src/Services/Webhooks/Webhooks.API/Startup.cs | 10 ++++++---- 7 files changed, 39 insertions(+), 26 deletions(-) diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index efa9285c25..716f0ec5c2 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -14,6 +14,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; +using Microsoft.OpenApi.Models; using Polly; using Polly.Extensions.Http; using System; @@ -116,18 +117,19 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new OpenApi.Models.OpenApiInfo + options.SwaggerDoc("v1", new OpenApiInfo { Title = "Shopping Aggregator for Mobile Clients", Version = "v1", Description = "Shopping Aggregator for Mobile Clients" }); - options.AddSecurityDefinition("oauth2", new OpenApi.Models.OpenApiSecurityScheme + options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { - Flows = new OpenApi.Models.OpenApiOAuthFlows() + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows() { - Implicit = new OpenApi.Models.OpenApiOAuthFlow() + Implicit = new OpenApiOAuthFlow() { AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index b6d43b3005..b8ef7b4594 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -14,6 +14,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; +using Microsoft.OpenApi.Models; using Polly; using Polly.Extensions.Http; using System; @@ -142,18 +143,19 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new OpenApi.Models.OpenApiInfo + options.SwaggerDoc("v1", new OpenApiInfo { Title = "Shopping Aggregator for Web Clients", Version = "v1", Description = "Shopping Aggregator for Web Clients" }); - options.AddSecurityDefinition("oauth2", new OpenApi.Models.OpenApiSecurityScheme + options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { - Flows = new OpenApi.Models.OpenApiOAuthFlows() + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows() { - Implicit = new OpenApi.Models.OpenApiOAuthFlow() + Implicit = new OpenApiOAuthFlow() { AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index 46599c6165..6a23c76d4c 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -26,6 +26,7 @@ using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; +using Microsoft.OpenApi.Models; using RabbitMQ.Client; using StackExchange.Redis; using System; @@ -131,18 +132,19 @@ public IServiceProvider ConfigureServices(IServiceCollection services) services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new OpenApi.Models.OpenApiInfo + options.SwaggerDoc("v1", new OpenApiInfo { Title = "Basket HTTP API", Version = "v1", Description = "The Basket Service HTTP API" }); - options.AddSecurityDefinition("oauth2", new OpenApi.Models.OpenApiSecurityScheme + options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { - Flows = new OpenApi.Models.OpenApiOAuthFlows() + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows() { - Implicit = new OpenApi.Models.OpenApiOAuthFlow() + Implicit = new OpenApiOAuthFlow() { AuthorizationUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), TokenUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/token"), diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index 1fe8e7ac44..b260322339 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -5,6 +5,7 @@ aspnet-eShopOnContainers.Identity-90487118-103c-4ff0-b9da-e5e26f7ab0c5 ..\..\..\..\docker-compose.dcproj false + true $(LangVersion) @@ -40,13 +41,13 @@ - + diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs index 533827ae25..e2d54814b9 100644 --- a/src/Services/Marketing/Marketing.API/Startup.cs +++ b/src/Services/Marketing/Marketing.API/Startup.cs @@ -27,6 +27,7 @@ using Microsoft.EntityFrameworkCore.Diagnostics; using Microsoft.eShopOnContainers.Services.Marketing.API.Infrastructure.Middlewares; using Microsoft.Extensions.Diagnostics.HealthChecks; + using Microsoft.OpenApi.Models; using RabbitMQ.Client; using System; using System.Collections.Generic; @@ -127,18 +128,19 @@ public IServiceProvider ConfigureServices(IServiceCollection services) services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new OpenApi.Models.OpenApiInfo + options.SwaggerDoc("v1", new OpenApiInfo { Title = "Marketing HTTP API", Version = "v1", Description = "The Marketing Service HTTP API" }); - options.AddSecurityDefinition("oauth2", new OpenApi.Models.OpenApiSecurityScheme + options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { - Flows = new OpenApi.Models.OpenApiOAuthFlows() + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows() { - Implicit = new OpenApi.Models.OpenApiOAuthFlow() + Implicit = new OpenApiOAuthFlow() { AuthorizationUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), TokenUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/token"), diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index ddd53489ab..a987f7bcb5 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -26,6 +26,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; + using Microsoft.OpenApi.Models; using Ordering.Infrastructure; using RabbitMQ.Client; using System; @@ -234,18 +235,19 @@ public static IServiceCollection AddCustomSwagger(this IServiceCollection servic services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new OpenApi.Models.OpenApiInfo + options.SwaggerDoc("v1", new OpenApiInfo { Title = "Ordering HTTP API", Version = "v1", Description = "The Ordering Service HTTP API" }); - options.AddSecurityDefinition("oauth2", new OpenApi.Models.OpenApiSecurityScheme + options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { - Flows = new OpenApi.Models.OpenApiOAuthFlows() + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows() { - Implicit = new OpenApi.Models.OpenApiOAuthFlow() + Implicit = new OpenApiOAuthFlow() { AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs index c7f896b0bc..cf501d46c3 100644 --- a/src/Services/Webhooks/Webhooks.API/Startup.cs +++ b/src/Services/Webhooks/Webhooks.API/Startup.cs @@ -19,6 +19,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; +using Microsoft.OpenApi.Models; using RabbitMQ.Client; using System; using System.Collections.Generic; @@ -189,18 +190,19 @@ public static IServiceCollection AddSwagger(this IServiceCollection services, IC services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo + options.SwaggerDoc("v1", new OpenApiInfo { Title = "eShopOnContainers - Webhooks HTTP API", Version = "v1", Description = "The Webhooks Microservice HTTP API. This is a simple webhooks CRUD registration entrypoint" }); - options.AddSecurityDefinition("oauth2", new Microsoft.OpenApi.Models.OpenApiSecurityScheme + options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { - Flows = new Microsoft.OpenApi.Models.OpenApiOAuthFlows() + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows() { - Implicit = new Microsoft.OpenApi.Models.OpenApiOAuthFlow() + Implicit = new OpenApiOAuthFlow() { AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), From 50a1e1311e058290c69c91fc93f4d75f9eadc18a Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Thu, 25 Jul 2019 11:30:17 +0200 Subject: [PATCH 023/149] update preview7 --- .../Mobile.Shopping.HttpAggregator.csproj | 1 + .../Mobile.Bff.Shopping/aggregator/Startup.cs | 4 +- .../Web.Bff.Shopping/aggregator/Startup.cs | 4 +- .../Web.Shopping.HttpAggregator.csproj | 1 + .../Basket/Basket.API/Basket.API.csproj | 1 + src/Services/Basket/Basket.API/Startup.cs | 4 +- .../Catalog/Catalog.API/Catalog.API.csproj | 1 + src/Services/Catalog/Catalog.API/Startup.cs | 2 + src/Services/Identity/Identity.API/Startup.cs | 39 +++++++++++-------- .../Locations.API/Locations.API.csproj | 1 + .../Location/Locations.API/Startup.cs | 3 ++ .../Marketing.API/Marketing.API.csproj | 1 + .../Marketing/Marketing.API/Startup.cs | 3 +- .../Ordering/Ordering.API/Ordering.API.csproj | 1 + src/Services/Ordering/Ordering.API/Startup.cs | 4 +- .../Ordering.BackgroundTasks.csproj | 1 + .../Ordering.SignalrHub.csproj | 1 + .../Payment/Payment.API/Payment.API.csproj | 1 + src/Services/Webhooks/Webhooks.API/Startup.cs | 5 ++- .../Webhooks/Webhooks.API/Webhooks.API.csproj | 1 + src/Web/WebMVC/Startup.cs | 2 + src/Web/WebMVC/WebMVC.csproj | 5 ++- src/Web/WebSPA/Startup.cs | 3 +- src/Web/WebSPA/WebSPA.csproj | 1 + src/Web/WebStatus/Startup.cs | 4 +- src/Web/WebStatus/WebStatus.csproj | 1 + src/Web/WebhookClient/Startup.cs | 8 ++-- src/Web/WebhookClient/WebhookClient.csproj | 1 + src/_build/dependencies.props | 21 +++++----- 29 files changed, 83 insertions(+), 42 deletions(-) diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj index d8d54643fb..fdf05ab762 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj @@ -6,6 +6,7 @@ Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator ..\..\..\docker-compose.dcproj false + true $(LangVersion) diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index 716f0ec5c2..d63e827495 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -50,6 +50,8 @@ public void ConfigureServices(IServiceCollection services) .AddCustomAuthentication(Configuration) .AddDevspaces() .AddHttpServices(); + + services.AddControllers(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -80,6 +82,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseRouting(); app.UseEndpoints(endpoints => { + endpoints.MapDefaultControllerRoute(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -89,7 +92,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF { Predicate = r => r.Name.Contains("self") }); - endpoints.MapDefaultControllerRoute(); }); app.UseSwagger().UseSwaggerUI(c => diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index b8ef7b4594..1c46551323 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -50,6 +50,8 @@ public void ConfigureServices(IServiceCollection services) .AddCustomAuthentication(Configuration) .AddDevspaces() .AddApplicationServices(); + + services.AddControllers(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -79,6 +81,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseRouting(); app.UseEndpoints(endpoints => { + endpoints.MapDefaultControllerRoute(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -88,7 +91,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF { Predicate = r => r.Name.Contains("self") }); - endpoints.MapDefaultControllerRoute(); }); app.UseSwagger() diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj index 10d8900626..a3eaa1ae63 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj @@ -6,6 +6,7 @@ Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator ..\..\..\docker-compose.dcproj false + true $(LangVersion) diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index 9c09a08bc9..5281f91075 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -5,6 +5,7 @@ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj false + true $(LangVersion) diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index 6a23c76d4c..1273428fdb 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -60,6 +60,8 @@ public IServiceProvider ConfigureServices(IServiceCollection services) .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddControllersAsServices(); + services.AddControllers(); + ConfigureAuthService(services); services.AddCustomHealthCheck(Configuration); @@ -200,6 +202,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF app.UseRouting(); app.UseEndpoints(endpoints => { + endpoints.MapDefaultControllerRoute(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -209,7 +212,6 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF { Predicate = r => r.Name.Contains("self") }); - endpoints.MapDefaultControllerRoute(); }); app.UseSwagger() diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.csproj b/src/Services/Catalog/Catalog.API/Catalog.API.csproj index f20ba1c7d8..0b32dea4b3 100644 --- a/src/Services/Catalog/Catalog.API/Catalog.API.csproj +++ b/src/Services/Catalog/Catalog.API/Catalog.API.csproj @@ -9,6 +9,7 @@ aspnet-Catalog.API-20161122013618 ..\..\..\..\docker-compose.dcproj false + true $(LangVersion) diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 24d3395b06..5e96f90d82 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -55,6 +55,8 @@ public void ConfigureServices(IServiceCollection services) .AddSwagger() .AddCustomHealthCheck(Configuration); + services.AddControllers(); + var container = new ContainerBuilder(); container.Populate(services); diff --git a/src/Services/Identity/Identity.API/Startup.cs b/src/Services/Identity/Identity.API/Startup.cs index fd8e94c59a..fbfff9828c 100644 --- a/src/Services/Identity/Identity.API/Startup.cs +++ b/src/Services/Identity/Identity.API/Startup.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.eShopOnContainers.Services.Identity.API.Certificates; using Microsoft.eShopOnContainers.Services.Identity.API.Data; @@ -39,13 +40,13 @@ public IServiceProvider ConfigureServices(IServiceCollection services) // Add framework services. services.AddDbContext(options => - options.UseSqlServer(Configuration["ConnectionString"], - sqlServerOptionsAction: sqlOptions => - { - sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name); - //Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency - sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); - })); + options.UseSqlServer(Configuration["ConnectionString"], + sqlServerOptionsAction: sqlOptions => + { + sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name); + //Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency + sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); + })); services.AddIdentity() .AddEntityFrameworkStores() @@ -94,17 +95,20 @@ public IServiceProvider ConfigureServices(IServiceCollection services) }); }) .AddOperationalStore(options => - { - options.ConfigureDbContext = builder => builder.UseSqlServer(connectionString, - sqlServerOptionsAction: sqlOptions => - { - sqlOptions.MigrationsAssembly(migrationsAssembly); - //Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency - sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); - }); - }) + { + options.ConfigureDbContext = builder => builder.UseSqlServer(connectionString, + sqlServerOptionsAction: sqlOptions => + { + sqlOptions.MigrationsAssembly(migrationsAssembly); + //Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency + sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); + }); + }) .Services.AddTransient(); + services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0); + services.AddControllers(); + var container = new ContainerBuilder(); container.Populate(services); @@ -152,6 +156,8 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseRouting(); app.UseEndpoints(endpoints => { + endpoints.MapDefaultControllerRoute(); + endpoints.MapControllers(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -161,7 +167,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF { Predicate = r => r.Name.Contains("self") }); - endpoints.MapDefaultControllerRoute(); }); } diff --git a/src/Services/Location/Locations.API/Locations.API.csproj b/src/Services/Location/Locations.API/Locations.API.csproj index 10b2a6f9b5..a085f48a96 100644 --- a/src/Services/Location/Locations.API/Locations.API.csproj +++ b/src/Services/Location/Locations.API/Locations.API.csproj @@ -5,6 +5,7 @@ ..\..\..\..\docker-compose.dcproj aspnet-Locations.API-20161122013619 false + true $(LangVersion) diff --git a/src/Services/Location/Locations.API/Startup.cs b/src/Services/Location/Locations.API/Startup.cs index 7b4a391afe..d71f05d60b 100644 --- a/src/Services/Location/Locations.API/Startup.cs +++ b/src/Services/Location/Locations.API/Startup.cs @@ -51,6 +51,8 @@ public IServiceProvider ConfigureServices(IServiceCollection services) .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddControllersAsServices(); + services.AddControllers(); + ConfigureAuthService(services); services.Configure(Configuration); @@ -174,6 +176,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseRouting(); app.UseEndpoints(endpoints => { + endpoints.MapDefaultControllerRoute(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, diff --git a/src/Services/Marketing/Marketing.API/Marketing.API.csproj b/src/Services/Marketing/Marketing.API/Marketing.API.csproj index e07d4e444f..486ec9b392 100644 --- a/src/Services/Marketing/Marketing.API/Marketing.API.csproj +++ b/src/Services/Marketing/Marketing.API/Marketing.API.csproj @@ -6,6 +6,7 @@ Microsoft.eShopOnContainers.Services.Marketing.API $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false + true aspnet-Marketing.API-20161122013619 /subscriptions/6c22bb55-0221-4ce4-9bf1-3c4a10a7294c/resourcegroups/eshop-log/providers/microsoft.insights/components/eshopappinsights diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs index e2d54814b9..24064d3a3c 100644 --- a/src/Services/Marketing/Marketing.API/Startup.cs +++ b/src/Services/Marketing/Marketing.API/Startup.cs @@ -59,6 +59,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddControllersAsServices(); //Injecting Controllers themselves thru DIFor further info see: http://docs.autofac.org/en/latest/integration/aspnetcore.html#controllers-as-services + services.AddControllers(); services.Configure(Configuration); ConfigureAuthService(services); @@ -200,6 +201,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseRouting(); app.UseEndpoints(endpoints => { + endpoints.MapDefaultControllerRoute(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -209,7 +211,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF { Predicate = r => r.Name.Contains("self") }); - endpoints.MapDefaultControllerRoute(); }); app.UseSwagger() diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index bb038d2e5a..f61a94b729 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -6,6 +6,7 @@ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj false + true $(LangVersion) diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index a987f7bcb5..4e9480e70f 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -56,6 +56,8 @@ public IServiceProvider ConfigureServices(IServiceCollection services) .AddEventBus(Configuration) .AddCustomAuthentication(Configuration); + services.AddControllers(); + //configure autofac var container = new ContainerBuilder(); @@ -87,6 +89,7 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) app.UseRouting(); app.UseEndpoints(endpoints => { + endpoints.MapDefaultControllerRoute(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -96,7 +99,6 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) { Predicate = r => r.Name.Contains("self") }); - endpoints.MapDefaultControllerRoute(); }); app.UseSwagger() diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj index ab193ddb9b..3cca3adb77 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj @@ -5,6 +5,7 @@ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj false + true $(LangVersion) diff --git a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj index 93bed47113..3da5b61f70 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj +++ b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj @@ -4,6 +4,7 @@ $(NetCoreTargetVersion) ..\..\..\..\docker-compose.dcproj false + true $(LangVersion) diff --git a/src/Services/Payment/Payment.API/Payment.API.csproj b/src/Services/Payment/Payment.API/Payment.API.csproj index 341dfd3836..fbb1ad6aa5 100644 --- a/src/Services/Payment/Payment.API/Payment.API.csproj +++ b/src/Services/Payment/Payment.API/Payment.API.csproj @@ -5,6 +5,7 @@ ..\..\..\..\docker-compose.dcproj $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false + true $(LangVersion) diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs index cf501d46c3..14781383d6 100644 --- a/src/Services/Webhooks/Webhooks.API/Startup.cs +++ b/src/Services/Webhooks/Webhooks.API/Startup.cs @@ -62,6 +62,8 @@ public IServiceProvider ConfigureServices(IServiceCollection services) .AddTransient() .AddTransient(); + services.AddControllers(); + var container = new ContainerBuilder(); container.Populate(services); return new AutofacServiceProvider(container.Build()); @@ -86,6 +88,7 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) app.UseRouting(); app.UseEndpoints(endpoints => { + endpoints.MapDefaultControllerRoute(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -95,8 +98,6 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) { Predicate = r => r.Name.Contains("self") }); - - endpoints.MapDefaultControllerRoute(); }); app.UseSwagger() diff --git a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj index ed474e7413..7acf9d3ed0 100644 --- a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj +++ b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj @@ -6,6 +6,7 @@ Linux $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false + true $(LangVersion) diff --git a/src/Web/WebMVC/Startup.cs b/src/Web/WebMVC/Startup.cs index db53a23b90..b250c365c6 100644 --- a/src/Web/WebMVC/Startup.cs +++ b/src/Web/WebMVC/Startup.cs @@ -45,6 +45,8 @@ public void ConfigureServices(IServiceCollection services) .AddHttpClientServices(Configuration) //.AddHttpClientLogging(Configuration) //Opt-in HttpClientLogging config .AddCustomAuthentication(Configuration); + + services.AddControllers(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj index 25fc670fdd..570dd7f878 100644 --- a/src/Web/WebMVC/WebMVC.csproj +++ b/src/Web/WebMVC/WebMVC.csproj @@ -6,6 +6,7 @@ ..\..\..\docker-compose.dcproj 3.0 false + true $(LangVersion) @@ -45,13 +46,13 @@ - + diff --git a/src/Web/WebSPA/Startup.cs b/src/Web/WebSPA/Startup.cs index 50e4dbef2b..431ea5fbb2 100644 --- a/src/Web/WebSPA/Startup.cs +++ b/src/Web/WebSPA/Startup.cs @@ -48,6 +48,8 @@ public void ConfigureServices(IServiceCollection services) .AddUrlGroup(new Uri(Configuration["MarketingUrlHC"]), name: "marketingapigw-check", tags: new string[] { "marketingapigw" }) .AddUrlGroup(new Uri(Configuration["IdentityUrlHC"]), name: "identityapi-check", tags: new string[] { "identityapi" }); + services.AddControllers(); + services.Configure(Configuration); if (Configuration.GetValue("IsClusterEnv") == bool.TrueString) @@ -125,7 +127,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseRouting(); app.UseEndpoints(endpoints => { - endpoints.MapDefaultControllerRoute(); endpoints.MapHealthChecks("/liveness", new HealthCheckOptions { Predicate = r => r.Name.Contains("self") diff --git a/src/Web/WebSPA/WebSPA.csproj b/src/Web/WebSPA/WebSPA.csproj index f219dc5aa2..caafa33afe 100644 --- a/src/Web/WebSPA/WebSPA.csproj +++ b/src/Web/WebSPA/WebSPA.csproj @@ -5,6 +5,7 @@ aspnetcorespa-c23d27a4-eb88-4b18-9b77-2a93f3b15119 ..\..\..\docker-compose.dcproj false + true true wwwroot/dist/** $(DefaultItemExcludes);$(GeneratedItemPatterns) diff --git a/src/Web/WebStatus/Startup.cs b/src/Web/WebStatus/Startup.cs index eeabd09127..3dadeb8422 100644 --- a/src/Web/WebStatus/Startup.cs +++ b/src/Web/WebStatus/Startup.cs @@ -23,6 +23,8 @@ public void ConfigureServices(IServiceCollection services) { RegisterAppInsights(services); + services.AddControllers(); + services.AddOptions(); services.AddHealthChecks() .AddCheck("self", () => HealthCheckResult.Healthy()); @@ -67,7 +69,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseRouting(); app.UseEndpoints(endpoints => { - endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); + endpoints.MapDefaultControllerRoute(); endpoints.MapHealthChecks("/liveness", new HealthCheckOptions { Predicate = r => r.Name.Contains("self") diff --git a/src/Web/WebStatus/WebStatus.csproj b/src/Web/WebStatus/WebStatus.csproj index 28f4bce18f..0d32dded9a 100644 --- a/src/Web/WebStatus/WebStatus.csproj +++ b/src/Web/WebStatus/WebStatus.csproj @@ -3,6 +3,7 @@ $(NetCoreTargetVersion) $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\docker-compose.dcproj + true $(LangVersion) diff --git a/src/Web/WebhookClient/Startup.cs b/src/Web/WebhookClient/Startup.cs index 3b56d20fb8..f93f61a5ff 100644 --- a/src/Web/WebhookClient/Startup.cs +++ b/src/Web/WebhookClient/Startup.cs @@ -26,8 +26,7 @@ public Startup(IConfiguration configuration) // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { - services - .AddSession(opt => + services.AddSession(opt => { opt.Cookie.Name = ".eShopWebhooks.Session"; }) @@ -36,7 +35,10 @@ public void ConfigureServices(IServiceCollection services) .AddCustomAuthentication(Configuration) .AddTransient() .AddSingleton() - .AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0); + .AddMvc() + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); + + services.AddControllers(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/src/Web/WebhookClient/WebhookClient.csproj b/src/Web/WebhookClient/WebhookClient.csproj index 22cb5afe27..7ec831b97d 100644 --- a/src/Web/WebhookClient/WebhookClient.csproj +++ b/src/Web/WebhookClient/WebhookClient.csproj @@ -7,6 +7,7 @@ 36215d41-f31a-4aa6-9929-bd67d650e7b5 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false + true $(LangVersion) diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index df4140c777..a5f7c64591 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -48,29 +48,28 @@ 1.0.2 3.0.0-preview4-19123-01 3.0.0-alpha1-10670 - 3.0.0-preview6-19253-01 2.2.0-preview2-35157 3.0.0-alpha1-34847 - 3.0.0-preview6.19307.2 - 3.0.0-preview6.19307.2 + 3.0.0-preview7.19365.7 + 3.0.0-preview7.19365.7 2.2.0 1.0.0 2.2.0 3.0.0-preview6.19307.2 3.0.0-preview6.19307.2 - 3.0.0-preview6.19307.2 - 3.0.0-preview6-19253-01 + 3.0.0-preview7.19365.7 + 3.0.0-preview7.19365.7 3.0.0-preview4-19123-01 3.0.0-preview4-19123-01 7.5.0 3.0.0 4.5.0 - 4.7.0-preview6.19303.8 + 4.7.0-preview7.19362.9 3.0.0-preview6.19303.8 - 3.0.0-preview6.19304.10 - 3.0.0-preview6.19304.10 - 3.0.0-preview6.19304.10 - 3.0.0-preview6.19304.10 + 3.0.0-preview7.19362.6 + 3.0.0-preview7.19362.6 + 3.0.0-preview7.19362.6 + 3.0.0-preview7.19362.6 3.0.0-preview7.19365.7 2.2.0 2.2.0 @@ -78,7 +77,7 @@ 2.2.0 2.2.0 2.2.0 - 3.0.0-preview6.19304.6 + 3.0.0-preview7.19362.4 16.0.1 2.5.0 2.5.0 From bacf302904fce53fc2b8783730ba4a13d4723e7d Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Fri, 26 Jul 2019 08:18:51 +0200 Subject: [PATCH 024/149] add migration core3 --- src/Services/Basket/Basket.API/Startup.cs | 23 +- .../Factories/ApplicationDbContextFactory.cs | 26 + .../ConfigurationDbContextFactory.cs | 28 + .../PersistedGrantDbContextFactory.cs | 28 + .../20190725132846_core3.Designer.cs | 708 ++++++++++++++++++ .../ConfigurationDb/20190725132846_core3.cs | 294 ++++++++ .../ConfigurationDbContextModelSnapshot.cs | 248 ++++-- src/Services/Identity/Identity.API/Startup.cs | 5 +- src/_build/dependencies.props | 1 + 9 files changed, 1284 insertions(+), 77 deletions(-) create mode 100644 src/Services/Identity/Identity.API/Factories/ApplicationDbContextFactory.cs create mode 100644 src/Services/Identity/Identity.API/Factories/ConfigurationDbContextFactory.cs create mode 100644 src/Services/Identity/Identity.API/Factories/PersistedGrantDbContextFactory.cs create mode 100644 src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.Designer.cs create mode 100644 src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.cs diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index 1273428fdb..cce2c2b96d 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -10,7 +10,6 @@ using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.ServiceBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; @@ -51,16 +50,22 @@ public IServiceProvider ConfigureServices(IServiceCollection services) RegisterAppInsights(services); // Add framework services. - services.AddMvc(options => - { - options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - options.Filters.Add(typeof(ValidateModelStateFilter)); + //services.AddMvc(options => + // { + // options.Filters.Add(typeof(HttpGlobalExceptionFilter)); + // options.Filters.Add(typeof(ValidateModelStateFilter)); + + // }) + // .AddNewtonsoftJson() + // .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) + // .AddControllersAsServices(); - }) - .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) - .AddControllersAsServices(); + services.AddControllers(options => + { + options.Filters.Add(typeof(HttpGlobalExceptionFilter)); + options.Filters.Add(typeof(ValidateModelStateFilter)); - services.AddControllers(); + }).AddNewtonsoftJson(); ConfigureAuthService(services); diff --git a/src/Services/Identity/Identity.API/Factories/ApplicationDbContextFactory.cs b/src/Services/Identity/Identity.API/Factories/ApplicationDbContextFactory.cs new file mode 100644 index 0000000000..bb3f7bfe2d --- /dev/null +++ b/src/Services/Identity/Identity.API/Factories/ApplicationDbContextFactory.cs @@ -0,0 +1,26 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Design; +using Microsoft.eShopOnContainers.Services.Identity.API.Data; +using Microsoft.Extensions.Configuration; +using System.IO; + +namespace Identity.API.Factories +{ + public class ApplicationDbContextFactory : IDesignTimeDbContextFactory + { + public ApplicationDbContext CreateDbContext(string[] args) + { + var config = new ConfigurationBuilder() + .SetBasePath(Path.Combine(Directory.GetCurrentDirectory())) + .AddJsonFile("appsettings.json") + .AddEnvironmentVariables() + .Build(); + + var optionsBuilder = new DbContextOptionsBuilder(); + + optionsBuilder.UseSqlServer(config["ConnectionString"], sqlServerOptionsAction: o => o.MigrationsAssembly("Identity.API")); + + return new ApplicationDbContext(optionsBuilder.Options); + } + } +} \ No newline at end of file diff --git a/src/Services/Identity/Identity.API/Factories/ConfigurationDbContextFactory.cs b/src/Services/Identity/Identity.API/Factories/ConfigurationDbContextFactory.cs new file mode 100644 index 0000000000..e304f50a8d --- /dev/null +++ b/src/Services/Identity/Identity.API/Factories/ConfigurationDbContextFactory.cs @@ -0,0 +1,28 @@ +using IdentityServer4.EntityFramework.DbContexts; +using IdentityServer4.EntityFramework.Options; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Design; +using Microsoft.Extensions.Configuration; +using System.IO; + +namespace Identity.API.Factories +{ + public class ConfigurationDbContextFactory : IDesignTimeDbContextFactory + { + public ConfigurationDbContext CreateDbContext(string[] args) + { + var config = new ConfigurationBuilder() + .SetBasePath(Path.Combine(Directory.GetCurrentDirectory())) + .AddJsonFile("appsettings.json") + .AddEnvironmentVariables() + .Build(); + + var optionsBuilder = new DbContextOptionsBuilder(); + var storeOptions = new ConfigurationStoreOptions(); + + optionsBuilder.UseSqlServer(config["ConnectionString"], sqlServerOptionsAction: o => o.MigrationsAssembly("Identity.API")); + + return new ConfigurationDbContext(optionsBuilder.Options, storeOptions); + } + } +} \ No newline at end of file diff --git a/src/Services/Identity/Identity.API/Factories/PersistedGrantDbContextFactory.cs b/src/Services/Identity/Identity.API/Factories/PersistedGrantDbContextFactory.cs new file mode 100644 index 0000000000..b3dff8d9ad --- /dev/null +++ b/src/Services/Identity/Identity.API/Factories/PersistedGrantDbContextFactory.cs @@ -0,0 +1,28 @@ +using IdentityServer4.EntityFramework.DbContexts; +using IdentityServer4.EntityFramework.Options; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Design; +using Microsoft.Extensions.Configuration; +using System.IO; + +namespace Identity.API.Factories +{ + public class PersistedGrantDbContextFactory : IDesignTimeDbContextFactory + { + public PersistedGrantDbContext CreateDbContext(string[] args) + { + var config = new ConfigurationBuilder() + .SetBasePath(Path.Combine(Directory.GetCurrentDirectory())) + .AddJsonFile("appsettings.json") + .AddEnvironmentVariables() + .Build(); + + var optionsBuilder = new DbContextOptionsBuilder(); + var operationOptions = new OperationalStoreOptions(); + + optionsBuilder.UseSqlServer(config["ConnectionString"], sqlServerOptionsAction: o => o.MigrationsAssembly("Identity.API")); + + return new PersistedGrantDbContext(optionsBuilder.Options, operationOptions); + } + } +} \ No newline at end of file diff --git a/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.Designer.cs b/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.Designer.cs new file mode 100644 index 0000000000..ed87031d4e --- /dev/null +++ b/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.Designer.cs @@ -0,0 +1,708 @@ +// +using System; +using IdentityServer4.EntityFramework.DbContexts; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace Identity.API.Migrations.ConfigurationDb +{ + [DbContext(typeof(ConfigurationDbContext))] + [Migration("20190725132846_core3")] + partial class core3 + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "3.0.0-preview7.19362.6") + .HasAnnotation("Relational:MaxIdentifierLength", 128) + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResource", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Created"); + + b.Property("Description") + .HasMaxLength(1000); + + b.Property("DisplayName") + .HasMaxLength(200); + + b.Property("Enabled"); + + b.Property("LastAccessed"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(200); + + b.Property("NonEditable"); + + b.Property("Updated"); + + b.HasKey("Id"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("ApiResources"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ApiResourceId"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(200); + + b.HasKey("Id"); + + b.HasIndex("ApiResourceId"); + + b.ToTable("ApiClaims"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ApiResourceId"); + + b.Property("Key") + .IsRequired() + .HasMaxLength(250); + + b.Property("Value") + .IsRequired() + .HasMaxLength(2000); + + b.HasKey("Id"); + + b.HasIndex("ApiResourceId"); + + b.ToTable("ApiProperties"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScope", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ApiResourceId"); + + b.Property("Description") + .HasMaxLength(1000); + + b.Property("DisplayName") + .HasMaxLength(200); + + b.Property("Emphasize"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(200); + + b.Property("Required"); + + b.Property("ShowInDiscoveryDocument"); + + b.HasKey("Id"); + + b.HasIndex("ApiResourceId"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("ApiScopes"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScopeClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ApiScopeId"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(200); + + b.HasKey("Id"); + + b.HasIndex("ApiScopeId"); + + b.ToTable("ApiScopeClaims"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiSecret", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ApiResourceId"); + + b.Property("Created"); + + b.Property("Description") + .HasMaxLength(1000); + + b.Property("Expiration"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(250); + + b.Property("Value") + .IsRequired() + .HasMaxLength(4000); + + b.HasKey("Id"); + + b.HasIndex("ApiResourceId"); + + b.ToTable("ApiSecrets"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.Client", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("AbsoluteRefreshTokenLifetime"); + + b.Property("AccessTokenLifetime"); + + b.Property("AccessTokenType"); + + b.Property("AllowAccessTokensViaBrowser"); + + b.Property("AllowOfflineAccess"); + + b.Property("AllowPlainTextPkce"); + + b.Property("AllowRememberConsent"); + + b.Property("AlwaysIncludeUserClaimsInIdToken"); + + b.Property("AlwaysSendClientClaims"); + + b.Property("AuthorizationCodeLifetime"); + + b.Property("BackChannelLogoutSessionRequired"); + + b.Property("BackChannelLogoutUri") + .HasMaxLength(2000); + + b.Property("ClientClaimsPrefix") + .HasMaxLength(200); + + b.Property("ClientId") + .IsRequired() + .HasMaxLength(200); + + b.Property("ClientName") + .HasMaxLength(200); + + b.Property("ClientUri") + .HasMaxLength(2000); + + b.Property("ConsentLifetime"); + + b.Property("Created"); + + b.Property("Description") + .HasMaxLength(1000); + + b.Property("DeviceCodeLifetime"); + + b.Property("EnableLocalLogin"); + + b.Property("Enabled"); + + b.Property("FrontChannelLogoutSessionRequired"); + + b.Property("FrontChannelLogoutUri") + .HasMaxLength(2000); + + b.Property("IdentityTokenLifetime"); + + b.Property("IncludeJwtId"); + + b.Property("LastAccessed"); + + b.Property("LogoUri") + .HasMaxLength(2000); + + b.Property("NonEditable"); + + b.Property("PairWiseSubjectSalt") + .HasMaxLength(200); + + b.Property("ProtocolType") + .IsRequired() + .HasMaxLength(200); + + b.Property("RefreshTokenExpiration"); + + b.Property("RefreshTokenUsage"); + + b.Property("RequireClientSecret"); + + b.Property("RequireConsent"); + + b.Property("RequirePkce"); + + b.Property("SlidingRefreshTokenLifetime"); + + b.Property("UpdateAccessTokenClaimsOnRefresh"); + + b.Property("Updated"); + + b.Property("UserCodeType") + .HasMaxLength(100); + + b.Property("UserSsoLifetime"); + + b.HasKey("Id"); + + b.HasIndex("ClientId") + .IsUnique(); + + b.ToTable("Clients"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClientId"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(250); + + b.Property("Value") + .IsRequired() + .HasMaxLength(250); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("ClientClaims"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientCorsOrigin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClientId"); + + b.Property("Origin") + .IsRequired() + .HasMaxLength(150); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("ClientCorsOrigins"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientGrantType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClientId"); + + b.Property("GrantType") + .IsRequired() + .HasMaxLength(250); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("ClientGrantTypes"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientIdPRestriction", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClientId"); + + b.Property("Provider") + .IsRequired() + .HasMaxLength(200); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("ClientIdPRestrictions"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientPostLogoutRedirectUri", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClientId"); + + b.Property("PostLogoutRedirectUri") + .IsRequired() + .HasMaxLength(2000); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("ClientPostLogoutRedirectUris"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClientId"); + + b.Property("Key") + .IsRequired() + .HasMaxLength(250); + + b.Property("Value") + .IsRequired() + .HasMaxLength(2000); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("ClientProperties"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientRedirectUri", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClientId"); + + b.Property("RedirectUri") + .IsRequired() + .HasMaxLength(2000); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("ClientRedirectUris"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientScope", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClientId"); + + b.Property("Scope") + .IsRequired() + .HasMaxLength(200); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("ClientScopes"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientSecret", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClientId"); + + b.Property("Created"); + + b.Property("Description") + .HasMaxLength(2000); + + b.Property("Expiration"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(250); + + b.Property("Value") + .IsRequired() + .HasMaxLength(4000); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("ClientSecrets"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("IdentityResourceId"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(200); + + b.HasKey("Id"); + + b.HasIndex("IdentityResourceId"); + + b.ToTable("IdentityClaims"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResource", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Created"); + + b.Property("Description") + .HasMaxLength(1000); + + b.Property("DisplayName") + .HasMaxLength(200); + + b.Property("Emphasize"); + + b.Property("Enabled"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(200); + + b.Property("NonEditable"); + + b.Property("Required"); + + b.Property("ShowInDiscoveryDocument"); + + b.Property("Updated"); + + b.HasKey("Id"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("IdentityResources"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResourceProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("IdentityResourceId"); + + b.Property("Key") + .IsRequired() + .HasMaxLength(250); + + b.Property("Value") + .IsRequired() + .HasMaxLength(2000); + + b.HasKey("Id"); + + b.HasIndex("IdentityResourceId"); + + b.ToTable("IdentityProperties"); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceClaim", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource") + .WithMany("UserClaims") + .HasForeignKey("ApiResourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceProperty", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource") + .WithMany("Properties") + .HasForeignKey("ApiResourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScope", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource") + .WithMany("Scopes") + .HasForeignKey("ApiResourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScopeClaim", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.ApiScope", "ApiScope") + .WithMany("UserClaims") + .HasForeignKey("ApiScopeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiSecret", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource") + .WithMany("Secrets") + .HasForeignKey("ApiResourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientClaim", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") + .WithMany("Claims") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientCorsOrigin", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") + .WithMany("AllowedCorsOrigins") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientGrantType", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") + .WithMany("AllowedGrantTypes") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientIdPRestriction", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") + .WithMany("IdentityProviderRestrictions") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientPostLogoutRedirectUri", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") + .WithMany("PostLogoutRedirectUris") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientProperty", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") + .WithMany("Properties") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientRedirectUri", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") + .WithMany("RedirectUris") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientScope", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") + .WithMany("AllowedScopes") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientSecret", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") + .WithMany("ClientSecrets") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityClaim", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.IdentityResource", "IdentityResource") + .WithMany("UserClaims") + .HasForeignKey("IdentityResourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResourceProperty", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.IdentityResource", "IdentityResource") + .WithMany("Properties") + .HasForeignKey("IdentityResourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.cs b/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.cs new file mode 100644 index 0000000000..7ecf040158 --- /dev/null +++ b/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.cs @@ -0,0 +1,294 @@ +using System; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace Identity.API.Migrations.ConfigurationDb +{ + public partial class core3 : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "Created", + table: "IdentityResources", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + + migrationBuilder.AddColumn( + name: "NonEditable", + table: "IdentityResources", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "Updated", + table: "IdentityResources", + nullable: true); + + migrationBuilder.AlterColumn( + name: "Value", + table: "ClientSecrets", + maxLength: 4000, + nullable: false, + oldClrType: typeof(string), + oldMaxLength: 2000); + + migrationBuilder.AlterColumn( + name: "Type", + table: "ClientSecrets", + maxLength: 250, + nullable: false, + oldClrType: typeof(string), + oldMaxLength: 250, + oldNullable: true); + + migrationBuilder.AddColumn( + name: "Created", + table: "ClientSecrets", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + + migrationBuilder.AddColumn( + name: "Created", + table: "Clients", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + + migrationBuilder.AddColumn( + name: "DeviceCodeLifetime", + table: "Clients", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "LastAccessed", + table: "Clients", + nullable: true); + + migrationBuilder.AddColumn( + name: "NonEditable", + table: "Clients", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "Updated", + table: "Clients", + nullable: true); + + migrationBuilder.AddColumn( + name: "UserCodeType", + table: "Clients", + maxLength: 100, + nullable: true); + + migrationBuilder.AddColumn( + name: "UserSsoLifetime", + table: "Clients", + nullable: true); + + migrationBuilder.AlterColumn( + name: "Value", + table: "ApiSecrets", + maxLength: 4000, + nullable: false, + oldClrType: typeof(string), + oldMaxLength: 2000, + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "Type", + table: "ApiSecrets", + maxLength: 250, + nullable: false, + oldClrType: typeof(string), + oldMaxLength: 250, + oldNullable: true); + + migrationBuilder.AddColumn( + name: "Created", + table: "ApiSecrets", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + + migrationBuilder.AddColumn( + name: "Created", + table: "ApiResources", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + + migrationBuilder.AddColumn( + name: "LastAccessed", + table: "ApiResources", + nullable: true); + + migrationBuilder.AddColumn( + name: "NonEditable", + table: "ApiResources", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "Updated", + table: "ApiResources", + nullable: true); + + migrationBuilder.CreateTable( + name: "ApiProperties", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + Key = table.Column(maxLength: 250, nullable: false), + Value = table.Column(maxLength: 2000, nullable: false), + ApiResourceId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ApiProperties", x => x.Id); + table.ForeignKey( + name: "FK_ApiProperties_ApiResources_ApiResourceId", + column: x => x.ApiResourceId, + principalTable: "ApiResources", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "IdentityProperties", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + Key = table.Column(maxLength: 250, nullable: false), + Value = table.Column(maxLength: 2000, nullable: false), + IdentityResourceId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_IdentityProperties", x => x.Id); + table.ForeignKey( + name: "FK_IdentityProperties_IdentityResources_IdentityResourceId", + column: x => x.IdentityResourceId, + principalTable: "IdentityResources", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_ApiProperties_ApiResourceId", + table: "ApiProperties", + column: "ApiResourceId"); + + migrationBuilder.CreateIndex( + name: "IX_IdentityProperties_IdentityResourceId", + table: "IdentityProperties", + column: "IdentityResourceId"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "ApiProperties"); + + migrationBuilder.DropTable( + name: "IdentityProperties"); + + migrationBuilder.DropColumn( + name: "Created", + table: "IdentityResources"); + + migrationBuilder.DropColumn( + name: "NonEditable", + table: "IdentityResources"); + + migrationBuilder.DropColumn( + name: "Updated", + table: "IdentityResources"); + + migrationBuilder.DropColumn( + name: "Created", + table: "ClientSecrets"); + + migrationBuilder.DropColumn( + name: "Created", + table: "Clients"); + + migrationBuilder.DropColumn( + name: "DeviceCodeLifetime", + table: "Clients"); + + migrationBuilder.DropColumn( + name: "LastAccessed", + table: "Clients"); + + migrationBuilder.DropColumn( + name: "NonEditable", + table: "Clients"); + + migrationBuilder.DropColumn( + name: "Updated", + table: "Clients"); + + migrationBuilder.DropColumn( + name: "UserCodeType", + table: "Clients"); + + migrationBuilder.DropColumn( + name: "UserSsoLifetime", + table: "Clients"); + + migrationBuilder.DropColumn( + name: "Created", + table: "ApiSecrets"); + + migrationBuilder.DropColumn( + name: "Created", + table: "ApiResources"); + + migrationBuilder.DropColumn( + name: "LastAccessed", + table: "ApiResources"); + + migrationBuilder.DropColumn( + name: "NonEditable", + table: "ApiResources"); + + migrationBuilder.DropColumn( + name: "Updated", + table: "ApiResources"); + + migrationBuilder.AlterColumn( + name: "Value", + table: "ClientSecrets", + maxLength: 2000, + nullable: false, + oldClrType: typeof(string), + oldMaxLength: 4000); + + migrationBuilder.AlterColumn( + name: "Type", + table: "ClientSecrets", + maxLength: 250, + nullable: true, + oldClrType: typeof(string), + oldMaxLength: 250); + + migrationBuilder.AlterColumn( + name: "Value", + table: "ApiSecrets", + maxLength: 2000, + nullable: true, + oldClrType: typeof(string), + oldMaxLength: 4000); + + migrationBuilder.AlterColumn( + name: "Type", + table: "ApiSecrets", + maxLength: 250, + nullable: true, + oldClrType: typeof(string), + oldMaxLength: 250); + } + } +} diff --git a/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/ConfigurationDbContextModelSnapshot.cs b/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/ConfigurationDbContextModelSnapshot.cs index 88d9baba37..ec91a88416 100644 --- a/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/ConfigurationDbContextModelSnapshot.cs +++ b/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/ConfigurationDbContextModelSnapshot.cs @@ -1,12 +1,10 @@ // +using System; using IdentityServer4.EntityFramework.DbContexts; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage; -using Microsoft.EntityFrameworkCore.Storage.Internal; -using System; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace Identity.API.Migrations.ConfigurationDb { @@ -17,13 +15,17 @@ protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "2.0.0-rtm-26452") + .HasAnnotation("ProductVersion", "3.0.0-preview7.19362.6") + .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResource", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Created"); b.Property("Description") .HasMaxLength(1000); @@ -33,10 +35,16 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Enabled"); + b.Property("LastAccessed"); + b.Property("Name") .IsRequired() .HasMaxLength(200); + b.Property("NonEditable"); + + b.Property("Updated"); + b.HasKey("Id"); b.HasIndex("Name") @@ -48,10 +56,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceClaim", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ApiResourceId") - .IsRequired(); + b.Property("ApiResourceId"); b.Property("Type") .IsRequired() @@ -64,13 +72,36 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("ApiClaims"); }); + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ApiResourceId"); + + b.Property("Key") + .IsRequired() + .HasMaxLength(250); + + b.Property("Value") + .IsRequired() + .HasMaxLength(2000); + + b.HasKey("Id"); + + b.HasIndex("ApiResourceId"); + + b.ToTable("ApiProperties"); + }); + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScope", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ApiResourceId") - .IsRequired(); + b.Property("ApiResourceId"); b.Property("Description") .HasMaxLength(1000); @@ -101,10 +132,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScopeClaim", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ApiScopeId") - .IsRequired(); + b.Property("ApiScopeId"); b.Property("Type") .IsRequired() @@ -120,10 +151,12 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiSecret", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ApiResourceId") - .IsRequired(); + b.Property("ApiResourceId"); + + b.Property("Created"); b.Property("Description") .HasMaxLength(1000); @@ -131,10 +164,12 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Expiration"); b.Property("Type") + .IsRequired() .HasMaxLength(250); b.Property("Value") - .HasMaxLength(2000); + .IsRequired() + .HasMaxLength(4000); b.HasKey("Id"); @@ -146,7 +181,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.Client", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); b.Property("AbsoluteRefreshTokenLifetime"); @@ -188,9 +224,13 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("ConsentLifetime"); + b.Property("Created"); + b.Property("Description") .HasMaxLength(1000); + b.Property("DeviceCodeLifetime"); + b.Property("EnableLocalLogin"); b.Property("Enabled"); @@ -204,9 +244,13 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("IncludeJwtId"); + b.Property("LastAccessed"); + b.Property("LogoUri") .HasMaxLength(2000); + b.Property("NonEditable"); + b.Property("PairWiseSubjectSalt") .HasMaxLength(200); @@ -228,6 +272,13 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("UpdateAccessTokenClaimsOnRefresh"); + b.Property("Updated"); + + b.Property("UserCodeType") + .HasMaxLength(100); + + b.Property("UserSsoLifetime"); + b.HasKey("Id"); b.HasIndex("ClientId") @@ -239,10 +290,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientClaim", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ClientId") - .IsRequired(); + b.Property("ClientId"); b.Property("Type") .IsRequired() @@ -262,10 +313,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientCorsOrigin", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ClientId") - .IsRequired(); + b.Property("ClientId"); b.Property("Origin") .IsRequired() @@ -281,10 +332,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientGrantType", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ClientId") - .IsRequired(); + b.Property("ClientId"); b.Property("GrantType") .IsRequired() @@ -300,10 +351,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientIdPRestriction", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ClientId") - .IsRequired(); + b.Property("ClientId"); b.Property("Provider") .IsRequired() @@ -319,10 +370,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientPostLogoutRedirectUri", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ClientId") - .IsRequired(); + b.Property("ClientId"); b.Property("PostLogoutRedirectUri") .IsRequired() @@ -338,10 +389,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientProperty", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ClientId") - .IsRequired(); + b.Property("ClientId"); b.Property("Key") .IsRequired() @@ -361,10 +412,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientRedirectUri", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ClientId") - .IsRequired(); + b.Property("ClientId"); b.Property("RedirectUri") .IsRequired() @@ -380,10 +431,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientScope", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ClientId") - .IsRequired(); + b.Property("ClientId"); b.Property("Scope") .IsRequired() @@ -399,10 +450,12 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientSecret", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("ClientId") - .IsRequired(); + b.Property("ClientId"); + + b.Property("Created"); b.Property("Description") .HasMaxLength(2000); @@ -410,11 +463,12 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Expiration"); b.Property("Type") + .IsRequired() .HasMaxLength(250); b.Property("Value") .IsRequired() - .HasMaxLength(2000); + .HasMaxLength(4000); b.HasKey("Id"); @@ -426,10 +480,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityClaim", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - b.Property("IdentityResourceId") - .IsRequired(); + b.Property("IdentityResourceId"); b.Property("Type") .IsRequired() @@ -445,7 +499,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResource", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Created"); b.Property("Description") .HasMaxLength(1000); @@ -461,10 +518,14 @@ protected override void BuildModel(ModelBuilder modelBuilder) .IsRequired() .HasMaxLength(200); + b.Property("NonEditable"); + b.Property("Required"); b.Property("ShowInDiscoveryDocument"); + b.Property("Updated"); + b.HasKey("Id"); b.HasIndex("Name") @@ -473,12 +534,45 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("IdentityResources"); }); + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResourceProperty", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("IdentityResourceId"); + + b.Property("Key") + .IsRequired() + .HasMaxLength(250); + + b.Property("Value") + .IsRequired() + .HasMaxLength(2000); + + b.HasKey("Id"); + + b.HasIndex("IdentityResourceId"); + + b.ToTable("IdentityProperties"); + }); + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceClaim", b => { b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource") .WithMany("UserClaims") .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceProperty", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource") + .WithMany("Properties") + .HasForeignKey("ApiResourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScope", b => @@ -486,7 +580,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource") .WithMany("Scopes") .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScopeClaim", b => @@ -494,7 +589,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.ApiScope", "ApiScope") .WithMany("UserClaims") .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiSecret", b => @@ -502,7 +598,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource") .WithMany("Secrets") .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientClaim", b => @@ -510,7 +607,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") .WithMany("Claims") .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientCorsOrigin", b => @@ -518,7 +616,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") .WithMany("AllowedCorsOrigins") .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientGrantType", b => @@ -526,7 +625,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") .WithMany("AllowedGrantTypes") .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientIdPRestriction", b => @@ -534,7 +634,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") .WithMany("IdentityProviderRestrictions") .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientPostLogoutRedirectUri", b => @@ -542,7 +643,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") .WithMany("PostLogoutRedirectUris") .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientProperty", b => @@ -550,7 +652,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") .WithMany("Properties") .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientRedirectUri", b => @@ -558,7 +661,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") .WithMany("RedirectUris") .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientScope", b => @@ -566,7 +670,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") .WithMany("AllowedScopes") .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientSecret", b => @@ -574,7 +679,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") .WithMany("ClientSecrets") .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityClaim", b => @@ -582,7 +688,17 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("IdentityServer4.EntityFramework.Entities.IdentityResource", "IdentityResource") .WithMany("UserClaims") .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResourceProperty", b => + { + b.HasOne("IdentityServer4.EntityFramework.Entities.IdentityResource", "IdentityResource") + .WithMany("Properties") + .HasForeignKey("IdentityResourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); #pragma warning restore 612, 618 } diff --git a/src/Services/Identity/Identity.API/Startup.cs b/src/Services/Identity/Identity.API/Startup.cs index fbfff9828c..3552bdaa18 100644 --- a/src/Services/Identity/Identity.API/Startup.cs +++ b/src/Services/Identity/Identity.API/Startup.cs @@ -7,7 +7,6 @@ using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Identity; -using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.eShopOnContainers.Services.Identity.API.Certificates; using Microsoft.eShopOnContainers.Services.Identity.API.Data; @@ -106,8 +105,10 @@ public IServiceProvider ConfigureServices(IServiceCollection services) }) .Services.AddTransient(); - services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0); + //services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0); services.AddControllers(); + services.AddControllersWithViews(); + services.AddRazorPages(); var container = new ContainerBuilder(); container.Populate(services); diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index a5f7c64591..04704261ec 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -70,6 +70,7 @@ 3.0.0-preview7.19362.6 3.0.0-preview7.19362.6 3.0.0-preview7.19362.6 + 3.0.0-preview7.19362.6 3.0.0-preview7.19365.7 2.2.0 2.2.0 From 5f9a1b8b8fac9bbda32df1ea801e3d626732220c Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Fri, 26 Jul 2019 08:19:16 +0200 Subject: [PATCH 025/149] package --- src/Services/Identity/Identity.API/Identity.API.csproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index b260322339..ed9900f5c4 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -27,6 +27,10 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + From 8b0ec9038f7824d8b180c4a6ed8ce5862d58ac29 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Fri, 26 Jul 2019 09:42:43 +0200 Subject: [PATCH 026/149] fix routing --- src/Services/Basket/Basket.API/Startup.cs | 13 ++----------- src/Services/Catalog/Catalog.API/Startup.cs | 14 +++++++------- src/Services/Location/Locations.API/Startup.cs | 6 +++++- src/Services/Marketing/Marketing.API/Startup.cs | 13 +++---------- src/_build/dependencies.props | 2 +- 5 files changed, 18 insertions(+), 30 deletions(-) diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index cce2c2b96d..a85e7ddc0b 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -49,17 +49,6 @@ public IServiceProvider ConfigureServices(IServiceCollection services) { RegisterAppInsights(services); - // Add framework services. - //services.AddMvc(options => - // { - // options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - // options.Filters.Add(typeof(ValidateModelStateFilter)); - - // }) - // .AddNewtonsoftJson() - // .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) - // .AddControllersAsServices(); - services.AddControllers(options => { options.Filters.Add(typeof(HttpGlobalExceptionFilter)); @@ -204,10 +193,12 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF ConfigureAuth(app); + app.UseAuthorization(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); + endpoints.MapControllers(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 5e96f90d82..2a5f2bfb8f 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -55,8 +55,6 @@ public void ConfigureServices(IServiceCollection services) .AddSwagger() .AddCustomHealthCheck(Configuration); - services.AddControllers(); - var container = new ContainerBuilder(); container.Populate(services); @@ -139,11 +137,13 @@ public static IServiceCollection AddAppInsight(this IServiceCollection services, public static IServiceCollection AddCustomMVC(this IServiceCollection services, IConfiguration configuration) { services.AddMvc(options => - { - options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - }) - .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) - .AddControllersAsServices(); + { + options.Filters.Add(typeof(HttpGlobalExceptionFilter)); + }) + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) + .AddControllersAsServices(); + + services.AddControllers(); services.AddCors(options => { diff --git a/src/Services/Location/Locations.API/Startup.cs b/src/Services/Location/Locations.API/Startup.cs index d71f05d60b..2199157c8f 100644 --- a/src/Services/Location/Locations.API/Startup.cs +++ b/src/Services/Location/Locations.API/Startup.cs @@ -51,7 +51,11 @@ public IServiceProvider ConfigureServices(IServiceCollection services) .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddControllersAsServices(); - services.AddControllers(); + services.AddControllers(options => + { + options.Filters.Add(typeof(HttpGlobalExceptionFilter)); + + }).AddNewtonsoftJson(); ConfigureAuthService(services); diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs index 24064d3a3c..5fc3c60d3c 100644 --- a/src/Services/Marketing/Marketing.API/Startup.cs +++ b/src/Services/Marketing/Marketing.API/Startup.cs @@ -23,7 +23,6 @@ using Marketing.API.IntegrationEvents.Handlers; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Diagnostics.HealthChecks; - using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore.Diagnostics; using Microsoft.eShopOnContainers.Services.Marketing.API.Infrastructure.Middlewares; using Microsoft.Extensions.Diagnostics.HealthChecks; @@ -50,15 +49,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) RegisterAppInsights(services); // Add framework services. - services - .AddCustomHealthCheck(Configuration) - .AddMvc(options => - { - options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - }) - .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) - .AddControllersAsServices(); //Injecting Controllers themselves thru DIFor further info see: http://docs.autofac.org/en/latest/integration/aspnetcore.html#controllers-as-services - + services.AddCustomHealthCheck(Configuration); services.AddControllers(); services.Configure(Configuration); @@ -198,10 +189,12 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF ConfigureAuth(app); + app.UseAuthorization(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); + endpoints.MapControllers(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 04704261ec..5dc91f6ecf 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -72,7 +72,7 @@ 3.0.0-preview7.19362.6 3.0.0-preview7.19362.6 3.0.0-preview7.19365.7 - 2.2.0 + 3.0.0-preview7.19362.4 2.2.0 2.2.0 2.2.0 From e10fbfd6ea2e1555ed3c1cf32d2352b39ef15642 Mon Sep 17 00:00:00 2001 From: ericuss Date: Fri, 26 Jul 2019 10:54:17 +0200 Subject: [PATCH 027/149] Migrate Ordering.UnitTests and fix packages of Ordering.API --- .../WebHost.Customization/WebHost.Customization.csproj | 2 ++ .../Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj | 2 +- src/Services/Ordering/Ordering.API/Ordering.API.csproj | 1 + src/Services/Ordering/Ordering.API/Startup.cs | 3 +-- .../Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj | 5 ++++- src/_build/dependencies.props | 2 +- 6 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj index acae2354a0..3cf310aaca 100644 --- a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj +++ b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj @@ -2,6 +2,7 @@ $(NetCoreTargetVersion) + false @@ -11,6 +12,7 @@ + diff --git a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj index 027b7d5d71..e603d61064 100644 --- a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj +++ b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj @@ -2,7 +2,7 @@ $(NetCoreTargetVersion) - + false false diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index f61a94b729..4bd20f8a3e 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -46,6 +46,7 @@ + diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index 4e9480e70f..bd0d8bda7c 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -243,11 +243,10 @@ public static IServiceCollection AddCustomSwagger(this IServiceCollection servic Version = "v1", Description = "The Ordering Service HTTP API" }); - options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { Type = SecuritySchemeType.OAuth2, - Flows = new OpenApiOAuthFlows() + Flows = new OpenApi.Models.OpenApiOAuthFlows() { Implicit = new OpenApiOAuthFlow() { diff --git a/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj b/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj index 6d5cb9186a..98dcb53f83 100644 --- a/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj +++ b/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj @@ -2,12 +2,15 @@ $(NetCoreTargetVersion) - + false false + + + all diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 5dc91f6ecf..18f81d6b35 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -65,12 +65,12 @@ 3.0.0 4.5.0 4.7.0-preview7.19362.9 - 3.0.0-preview6.19303.8 3.0.0-preview7.19362.6 3.0.0-preview7.19362.6 3.0.0-preview7.19362.6 3.0.0-preview7.19362.6 3.0.0-preview7.19362.6 + 3.0.0-preview7.19362.9 3.0.0-preview7.19365.7 3.0.0-preview7.19362.4 2.2.0 From 0a0b013b73d7a96f77cf37f30a1b5aef89c57709 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Fri, 26 Jul 2019 11:11:31 +0200 Subject: [PATCH 028/149] change startup routing --- src/Services/Catalog/Catalog.API/Startup.cs | 33 ++++++++++++++----- .../Location/Locations.API/Startup.cs | 12 ++----- src/Services/Ordering/Ordering.API/Startup.cs | 23 +++++++------ src/Services/Webhooks/Webhooks.API/Startup.cs | 17 ++++------ 4 files changed, 47 insertions(+), 38 deletions(-) diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 2a5f2bfb8f..732e7cddd0 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -26,8 +26,10 @@ using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; +using Microsoft.OpenApi.Models; using RabbitMQ.Client; using System; +using System.Collections.Generic; using System.Data.Common; using System.IO; using System.Reflection; @@ -52,7 +54,7 @@ public void ConfigureServices(IServiceCollection services) .AddCustomOptions(Configuration) .AddIntegrationServices(Configuration) .AddEventBus(Configuration) - .AddSwagger() + .AddSwagger(Configuration) .AddCustomHealthCheck(Configuration); var container = new ContainerBuilder(); @@ -76,11 +78,12 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF } app.UseCors("CorsPolicy"); - + app.UseAuthorization(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); + endpoints.MapControllers(); endpoints.MapGet("/_proto/", async ctx => { ctx.Response.ContentType = "text/plain"; @@ -136,14 +139,10 @@ public static IServiceCollection AddAppInsight(this IServiceCollection services, public static IServiceCollection AddCustomMVC(this IServiceCollection services, IConfiguration configuration) { - services.AddMvc(options => + services.AddControllers(options => { options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - }) - .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) - .AddControllersAsServices(); - - services.AddControllers(); + }); services.AddCors(options => { @@ -259,7 +258,7 @@ public static IServiceCollection AddCustomOptions(this IServiceCollection servic return services; } - public static IServiceCollection AddSwagger(this IServiceCollection services) + public static IServiceCollection AddSwagger(this IServiceCollection services, IConfiguration configuration) { services.AddSwaggerGen(options => { @@ -270,6 +269,22 @@ public static IServiceCollection AddSwagger(this IServiceCollection services) Version = "v1", Description = "The Catalog Microservice HTTP API. This is a Data-Driven/CRUD microservice sample" }); + options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme + { + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows() + { + Implicit = new OpenApiOAuthFlow() + { + AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), + Scopes = new Dictionary() + { + { "catalog", "Catalog API" } + } + } + } + }); }); return services; diff --git a/src/Services/Location/Locations.API/Startup.cs b/src/Services/Location/Locations.API/Startup.cs index 2199157c8f..ff7c794169 100644 --- a/src/Services/Location/Locations.API/Startup.cs +++ b/src/Services/Location/Locations.API/Startup.cs @@ -6,7 +6,6 @@ using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.ServiceBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; @@ -42,14 +41,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) { RegisterAppInsights(services); - services - .AddCustomHealthCheck(Configuration) - .AddMvc(options => - { - options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - }) - .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) - .AddControllersAsServices(); + services.AddCustomHealthCheck(Configuration); services.AddControllers(options => { @@ -177,10 +169,12 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF ConfigureAuth(app); + app.UseAuthorization(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); + endpoints.MapControllers(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index 4e9480e70f..b3dfa840c4 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -55,9 +55,6 @@ public IServiceProvider ConfigureServices(IServiceCollection services) .AddCustomConfiguration(Configuration) .AddEventBus(Configuration) .AddCustomAuthentication(Configuration); - - services.AddControllers(); - //configure autofac var container = new ContainerBuilder(); @@ -86,10 +83,12 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) ConfigureAuth(app); + app.UseAuthorization(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); + endpoints.MapControllers(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -149,13 +148,17 @@ public static IServiceCollection AddApplicationInsights(this IServiceCollection public static IServiceCollection AddCustomMvc(this IServiceCollection services) { // Add framework services. - services.AddMvc(options => - { - options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - }) - .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) - .AddControllersAsServices(); //Injecting Controllers themselves thru DI - //For further info see: http://docs.autofac.org/en/latest/integration/aspnetcore.html#controllers-as-services + services.AddControllers(options => + { + options.Filters.Add(typeof(HttpGlobalExceptionFilter)); + }); + //services.AddMvc(options => + // { + // options.Filters.Add(typeof(HttpGlobalExceptionFilter)); + // }) + // .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) + // .AddControllersAsServices(); //Injecting Controllers themselves thru DI + // //For further info see: http://docs.autofac.org/en/latest/integration/aspnetcore.html#controllers-as-services services.AddCors(options => { diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs index 14781383d6..4d3bd2c81b 100644 --- a/src/Services/Webhooks/Webhooks.API/Startup.cs +++ b/src/Services/Webhooks/Webhooks.API/Startup.cs @@ -6,7 +6,6 @@ using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.ServiceBus; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Diagnostics; @@ -47,7 +46,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) { services .AddAppInsight(Configuration) - .AddCustomMVC(Configuration) + .AddCustomRouting(Configuration) .AddCustomDbContext(Configuration) .AddSwagger(Configuration) .AddCustomHealthCheck(Configuration) @@ -62,8 +61,6 @@ public IServiceProvider ConfigureServices(IServiceCollection services) .AddTransient() .AddTransient(); - services.AddControllers(); - var container = new ContainerBuilder(); container.Populate(services); return new AutofacServiceProvider(container.Build()); @@ -85,10 +82,12 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) ConfigureAuth(app); + app.UseAuthorization(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); + endpoints.MapControllers(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -142,14 +141,12 @@ public static IServiceCollection AddAppInsight(this IServiceCollection services, return services; } - public static IServiceCollection AddCustomMVC(this IServiceCollection services, IConfiguration configuration) + public static IServiceCollection AddCustomRouting(this IServiceCollection services, IConfiguration configuration) { - services.AddMvc(options => + services.AddControllers(options => { options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - }) - .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) - .AddControllersAsServices(); + }); services.AddCors(options => { @@ -209,7 +206,7 @@ public static IServiceCollection AddSwagger(this IServiceCollection services, IC TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), Scopes = new Dictionary() { - { "marketing", "Marketing API" } + { "webhooks", "Webhooks API" } } } } From e9811980f396e0e0e3c4e5c901bcbac999a0b4d7 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Fri, 26 Jul 2019 15:39:50 +0200 Subject: [PATCH 029/149] fix catalog --- src/Services/Catalog/Catalog.API/Startup.cs | 33 +++++---------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 732e7cddd0..0e01e044e3 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -26,10 +26,8 @@ using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Microsoft.OpenApi.Models; using RabbitMQ.Client; using System; -using System.Collections.Generic; using System.Data.Common; using System.IO; using System.Reflection; @@ -77,8 +75,15 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF app.UsePathBase(pathBase); } + app.UseSwagger() + .UseSwaggerUI(c => + { + c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Catalog.API V1"); + }); + app.UseCors("CorsPolicy"); app.UseAuthorization(); + app.UseAuthentication(); app.UseRouting(); app.UseEndpoints(endpoints => { @@ -110,12 +115,6 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF }); }); - app.UseSwagger() - .UseSwaggerUI(c => - { - c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Catalog.API V1"); - }); - ConfigureEventBus(app); } @@ -142,7 +141,7 @@ public static IServiceCollection AddCustomMVC(this IServiceCollection services, services.AddControllers(options => { options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - }); + }).AddNewtonsoftJson(); services.AddCors(options => { @@ -269,22 +268,6 @@ public static IServiceCollection AddSwagger(this IServiceCollection services, IC Version = "v1", Description = "The Catalog Microservice HTTP API. This is a Data-Driven/CRUD microservice sample" }); - options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme - { - Type = SecuritySchemeType.OAuth2, - Flows = new OpenApiOAuthFlows() - { - Implicit = new OpenApiOAuthFlow() - { - AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), - TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), - Scopes = new Dictionary() - { - { "catalog", "Catalog API" } - } - } - } - }); }); return services; From 671d8b1e27215becb3d1baebe0034eff5994d634 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Mon, 29 Jul 2019 13:21:00 +0200 Subject: [PATCH 030/149] fix to startup identiy: remove old migrations and add initial migration. --- .../Mobile.Bff.Shopping/aggregator/Startup.cs | 2 +- .../Web.Bff.Shopping/aggregator/Startup.cs | 2 +- .../WebHostExtensions.cs | 7 +- src/Services/Basket/Basket.API/Startup.cs | 29 +- src/Services/Catalog/Catalog.API/Startup.cs | 5 +- ...190729091724_InitialMigration.Designer.cs} | 220 +++---- ....cs => 20190729091724_InitialMigration.cs} | 105 ++-- .../ApplicationDbContextModelSnapshot.cs | 216 ++++--- .../20170927170433_Config.Designer.cs | 591 ------------------ .../ConfigurationDb/20190725132846_core3.cs | 294 --------- ...InitialConfigurationMigration.Designer.cs} | 4 +- ...29092011_InitialConfigurationMigration.cs} | 286 +++++---- .../PersistedGrantDb/20170927170423_Grants.cs | 39 -- ...nitialPersistedGrantMigration.Designer.cs} | 44 +- ...29092100_InitialPersistedGrantMigration.cs | 65 ++ .../PersistedGrantDbContextModelSnapshot.cs | 41 +- .../Location/Locations.API/Startup.cs | 2 +- .../Marketing/Marketing.API/Startup.cs | 24 +- src/Services/Ordering/Ordering.API/Startup.cs | 6 +- .../Ordering/Ordering.SignalrHub/Startup.cs | 1 - src/Services/Webhooks/Webhooks.API/Startup.cs | 1 - 21 files changed, 634 insertions(+), 1350 deletions(-) rename src/Services/Identity/Identity.API/Migrations/{20170912114036_Initial.Designer.cs => 20190729091724_InitialMigration.Designer.cs} (80%) rename src/Services/Identity/Identity.API/Migrations/{20170912114036_Initial.cs => 20190729091724_InitialMigration.cs} (58%) delete mode 100644 src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20170927170433_Config.Designer.cs delete mode 100644 src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.cs rename src/Services/Identity/Identity.API/Migrations/ConfigurationDb/{20190725132846_core3.Designer.cs => 20190729092011_InitialConfigurationMigration.Designer.cs} (99%) rename src/Services/Identity/Identity.API/Migrations/ConfigurationDb/{20170927170433_Config.cs => 20190729092011_InitialConfigurationMigration.cs} (62%) delete mode 100644 src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20170927170423_Grants.cs rename src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/{20170927170423_Grants.Designer.cs => 20190729092100_InitialPersistedGrantMigration.Designer.cs} (54%) create mode 100644 src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20190729092100_InitialPersistedGrantMigration.cs diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index d63e827495..0c690bbcce 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -121,7 +121,7 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, options.DescribeAllEnumsAsStrings(); options.SwaggerDoc("v1", new OpenApiInfo { - Title = "Shopping Aggregator for Mobile Clients", + Title = "eShopOnContainers - Shopping Aggregator for Mobile Clients", Version = "v1", Description = "Shopping Aggregator for Mobile Clients" }); diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index 1c46551323..9edbf2815f 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -147,7 +147,7 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, options.DescribeAllEnumsAsStrings(); options.SwaggerDoc("v1", new OpenApiInfo { - Title = "Shopping Aggregator for Web Clients", + Title = "eShopOnContainers - Shopping Aggregator for Web Clients", Version = "v1", Description = "Shopping Aggregator for Web Clients" }); diff --git a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs index fd17f4a0dd..17f030e024 100644 --- a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs +++ b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs @@ -40,12 +40,7 @@ public static IWebHost MigrateDbContext(this IWebHost webHost, Action< else { var retry = Policy.Handle() - .WaitAndRetry(new TimeSpan[] - { - TimeSpan.FromSeconds(3), - TimeSpan.FromSeconds(5), - TimeSpan.FromSeconds(8), - }); + .WaitAndRetry(10, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))); //if the sql server container is not created on run docker compose this //migration can't fail for network related exception. The retry options for DbContext only diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index a85e7ddc0b..3620b0b00d 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -43,7 +43,6 @@ public Startup(IConfiguration configuration) public IConfiguration Configuration { get; } - // This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { @@ -130,7 +129,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) options.DescribeAllEnumsAsStrings(); options.SwaggerDoc("v1", new OpenApiInfo { - Title = "Basket HTTP API", + Title = "eShopOnContainers - Basket HTTP API", Version = "v1", Description = "The Basket Service HTTP API" }); @@ -151,7 +150,6 @@ public IServiceProvider ConfigureServices(IServiceCollection services) } } }); - }); services.AddCors(options => @@ -175,7 +173,6 @@ public IServiceProvider ConfigureServices(IServiceCollection services) return new AutofacServiceProvider(container.Build()); } - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { @@ -188,12 +185,19 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF app.UsePathBase(pathBase); } + ConfigureAuth(app); + app.UseStaticFiles(); - app.UseCors("CorsPolicy"); - ConfigureAuth(app); + app.UseSwagger() + .UseSwaggerUI(setup => + { + setup.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Basket.API V1"); + setup.OAuthClientId("basketswaggerui"); + setup.OAuthAppName("Basket Swagger UI"); + }); - app.UseAuthorization(); + app.UseCors("CorsPolicy"); app.UseRouting(); app.UseEndpoints(endpoints => { @@ -210,16 +214,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF }); }); - app.UseSwagger() - .UseSwaggerUI(c => - { - c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Basket.API V1"); - c.OAuthClientId("basketswaggerui"); - c.OAuthAppName("Basket Swagger UI"); - }); - ConfigureEventBus(app); - } private void RegisterAppInsights(IServiceCollection services) @@ -255,8 +250,8 @@ protected virtual void ConfigureAuth(IApplicationBuilder app) app.UseMiddleware(); } - app.UseAuthentication(); app.UseAuthorization(); + app.UseAuthentication(); } private void RegisterEventBus(IServiceCollection services) diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 0e01e044e3..9dcf81f013 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -26,6 +26,7 @@ using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; +using Microsoft.OpenApi.Models; using RabbitMQ.Client; using System; using System.Data.Common; @@ -82,8 +83,6 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF }); app.UseCors("CorsPolicy"); - app.UseAuthorization(); - app.UseAuthentication(); app.UseRouting(); app.UseEndpoints(endpoints => { @@ -262,7 +261,7 @@ public static IServiceCollection AddSwagger(this IServiceCollection services, IC services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new OpenApi.Models.OpenApiInfo + options.SwaggerDoc("v1", new OpenApiInfo { Title = "eShopOnContainers - Catalog HTTP API", Version = "v1", diff --git a/src/Services/Identity/Identity.API/Migrations/20170912114036_Initial.Designer.cs b/src/Services/Identity/Identity.API/Migrations/20190729091724_InitialMigration.Designer.cs similarity index 80% rename from src/Services/Identity/Identity.API/Migrations/20170912114036_Initial.Designer.cs rename to src/Services/Identity/Identity.API/Migrations/20190729091724_InitialMigration.Designer.cs index 0850b37b9c..5ad8029926 100644 --- a/src/Services/Identity/Identity.API/Migrations/20170912114036_Initial.Designer.cs +++ b/src/Services/Identity/Identity.API/Migrations/20190729091724_InitialMigration.Designer.cs @@ -1,114 +1,29 @@ // +using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Microsoft.eShopOnContainers.Services.Identity.API.Data; -using System; namespace Identity.API.Migrations { [DbContext(typeof(ApplicationDbContext))] - [Migration("20170912114036_Initial")] - partial class Initial + [Migration("20190729091724_InitialMigration")] + partial class InitialMigration { protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "2.0.0-rtm-26452") + .HasAnnotation("ProductVersion", "3.0.0-preview7.19362.6") + .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - modelBuilder.Entity("Identity.API.Models.ApplicationUser", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AccessFailedCount"); - - b.Property("CardHolderName") - .IsRequired(); - - b.Property("CardNumber") - .IsRequired(); - - b.Property("CardType"); - - b.Property("City") - .IsRequired(); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Country") - .IsRequired(); - - b.Property("Email") - .HasMaxLength(256); - - b.Property("EmailConfirmed"); - - b.Property("Expiration") - .IsRequired(); - - b.Property("LastName") - .IsRequired(); - - b.Property("LockoutEnabled"); - - b.Property("LockoutEnd"); - - b.Property("Name") - .IsRequired(); - - b.Property("NormalizedEmail") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasMaxLength(256); - - b.Property("PasswordHash"); - - b.Property("PhoneNumber"); - - b.Property("PhoneNumberConfirmed"); - - b.Property("SecurityNumber") - .IsRequired(); - - b.Property("SecurityStamp"); - - b.Property("State") - .IsRequired(); - - b.Property("Street") - .IsRequired(); - - b.Property("TwoFactorEnabled"); - - b.Property("UserName") - .HasMaxLength(256); - - b.Property("ZipCode") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.ToTable("AspNetUsers"); - }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => { - b.Property("Id") - .ValueGeneratedOnAdd(); + b.Property("Id"); b.Property("ConcurrencyStamp") .IsConcurrencyToken(); @@ -132,7 +47,8 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); b.Property("ClaimType"); @@ -151,7 +67,8 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); b.Property("ClaimType"); @@ -213,49 +130,140 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("AspNetUserTokens"); }); + modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Identity.API.Models.ApplicationUser", b => + { + b.Property("Id"); + + b.Property("AccessFailedCount"); + + b.Property("CardHolderName") + .IsRequired(); + + b.Property("CardNumber") + .IsRequired(); + + b.Property("CardType"); + + b.Property("City") + .IsRequired(); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Country") + .IsRequired(); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("Expiration") + .IsRequired(); + + b.Property("LastName") + .IsRequired(); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("Name") + .IsRequired(); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("SecurityNumber") + .IsRequired(); + + b.Property("SecurityStamp"); + + b.Property("State") + .IsRequired(); + + b.Property("Street") + .IsRequired(); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasMaxLength(256); + + b.Property("ZipCode") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); + + b.ToTable("AspNetUsers"); + }); + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) .WithMany() .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { - b.HasOne("Identity.API.Models.ApplicationUser") + b.HasOne("Microsoft.eShopOnContainers.Services.Identity.API.Models.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { - b.HasOne("Identity.API.Models.ApplicationUser") + b.HasOne("Microsoft.eShopOnContainers.Services.Identity.API.Models.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) .WithMany() .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("Identity.API.Models.ApplicationUser") + b.HasOne("Microsoft.eShopOnContainers.Services.Identity.API.Models.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { - b.HasOne("Identity.API.Models.ApplicationUser") + b.HasOne("Microsoft.eShopOnContainers.Services.Identity.API.Models.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); #pragma warning restore 612, 618 } diff --git a/src/Services/Identity/Identity.API/Migrations/20170912114036_Initial.cs b/src/Services/Identity/Identity.API/Migrations/20190729091724_InitialMigration.cs similarity index 58% rename from src/Services/Identity/Identity.API/Migrations/20170912114036_Initial.cs rename to src/Services/Identity/Identity.API/Migrations/20190729091724_InitialMigration.cs index cf771dac86..447369dd0e 100644 --- a/src/Services/Identity/Identity.API/Migrations/20170912114036_Initial.cs +++ b/src/Services/Identity/Identity.API/Migrations/20190729091724_InitialMigration.cs @@ -1,11 +1,10 @@ -using Microsoft.EntityFrameworkCore.Metadata; +using System; +using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; -using System; -using System.Collections.Generic; namespace Identity.API.Migrations { - public partial class Initial : Migration + public partial class InitialMigration : Migration { protected override void Up(MigrationBuilder migrationBuilder) { @@ -13,10 +12,10 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "AspNetRoles", columns: table => new { - Id = table.Column(type: "nvarchar(450)", nullable: false), - ConcurrencyStamp = table.Column(type: "nvarchar(max)", nullable: true), - Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - NormalizedName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true) + Id = table.Column(nullable: false), + Name = table.Column(maxLength: 256, nullable: true), + NormalizedName = table.Column(maxLength: 256, nullable: true), + ConcurrencyStamp = table.Column(nullable: true) }, constraints: table => { @@ -27,33 +26,33 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "AspNetUsers", columns: table => new { - Id = table.Column(type: "nvarchar(450)", nullable: false), - AccessFailedCount = table.Column(type: "int", nullable: false), - CardHolderName = table.Column(type: "nvarchar(max)", nullable: false), - CardNumber = table.Column(type: "nvarchar(max)", nullable: false), - CardType = table.Column(type: "int", nullable: false), - City = table.Column(type: "nvarchar(max)", nullable: false), - ConcurrencyStamp = table.Column(type: "nvarchar(max)", nullable: true), - Country = table.Column(type: "nvarchar(max)", nullable: false), - Email = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - EmailConfirmed = table.Column(type: "bit", nullable: false), - Expiration = table.Column(type: "nvarchar(max)", nullable: false), - LastName = table.Column(type: "nvarchar(max)", nullable: false), - LockoutEnabled = table.Column(type: "bit", nullable: false), - LockoutEnd = table.Column(type: "datetimeoffset", nullable: true), - Name = table.Column(type: "nvarchar(max)", nullable: false), - NormalizedEmail = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - NormalizedUserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - PasswordHash = table.Column(type: "nvarchar(max)", nullable: true), - PhoneNumber = table.Column(type: "nvarchar(max)", nullable: true), - PhoneNumberConfirmed = table.Column(type: "bit", nullable: false), - SecurityNumber = table.Column(type: "nvarchar(max)", nullable: false), - SecurityStamp = table.Column(type: "nvarchar(max)", nullable: true), - State = table.Column(type: "nvarchar(max)", nullable: false), - Street = table.Column(type: "nvarchar(max)", nullable: false), - TwoFactorEnabled = table.Column(type: "bit", nullable: false), - UserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - ZipCode = table.Column(type: "nvarchar(max)", nullable: false) + Id = table.Column(nullable: false), + UserName = table.Column(maxLength: 256, nullable: true), + NormalizedUserName = table.Column(maxLength: 256, nullable: true), + Email = table.Column(maxLength: 256, nullable: true), + NormalizedEmail = table.Column(maxLength: 256, nullable: true), + EmailConfirmed = table.Column(nullable: false), + PasswordHash = table.Column(nullable: true), + SecurityStamp = table.Column(nullable: true), + ConcurrencyStamp = table.Column(nullable: true), + PhoneNumber = table.Column(nullable: true), + PhoneNumberConfirmed = table.Column(nullable: false), + TwoFactorEnabled = table.Column(nullable: false), + LockoutEnd = table.Column(nullable: true), + LockoutEnabled = table.Column(nullable: false), + AccessFailedCount = table.Column(nullable: false), + CardNumber = table.Column(nullable: false), + SecurityNumber = table.Column(nullable: false), + Expiration = table.Column(nullable: false), + CardHolderName = table.Column(nullable: false), + CardType = table.Column(nullable: false), + Street = table.Column(nullable: false), + City = table.Column(nullable: false), + State = table.Column(nullable: false), + Country = table.Column(nullable: false), + ZipCode = table.Column(nullable: false), + Name = table.Column(nullable: false), + LastName = table.Column(nullable: false) }, constraints: table => { @@ -64,11 +63,11 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "AspNetRoleClaims", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ClaimType = table.Column(type: "nvarchar(max)", nullable: true), - ClaimValue = table.Column(type: "nvarchar(max)", nullable: true), - RoleId = table.Column(type: "nvarchar(450)", nullable: false) + RoleId = table.Column(nullable: false), + ClaimType = table.Column(nullable: true), + ClaimValue = table.Column(nullable: true) }, constraints: table => { @@ -85,11 +84,11 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "AspNetUserClaims", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ClaimType = table.Column(type: "nvarchar(max)", nullable: true), - ClaimValue = table.Column(type: "nvarchar(max)", nullable: true), - UserId = table.Column(type: "nvarchar(450)", nullable: false) + UserId = table.Column(nullable: false), + ClaimType = table.Column(nullable: true), + ClaimValue = table.Column(nullable: true) }, constraints: table => { @@ -106,10 +105,10 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "AspNetUserLogins", columns: table => new { - LoginProvider = table.Column(type: "nvarchar(450)", nullable: false), - ProviderKey = table.Column(type: "nvarchar(450)", nullable: false), - ProviderDisplayName = table.Column(type: "nvarchar(max)", nullable: true), - UserId = table.Column(type: "nvarchar(450)", nullable: false) + LoginProvider = table.Column(nullable: false), + ProviderKey = table.Column(nullable: false), + ProviderDisplayName = table.Column(nullable: true), + UserId = table.Column(nullable: false) }, constraints: table => { @@ -126,8 +125,8 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "AspNetUserRoles", columns: table => new { - UserId = table.Column(type: "nvarchar(450)", nullable: false), - RoleId = table.Column(type: "nvarchar(450)", nullable: false) + UserId = table.Column(nullable: false), + RoleId = table.Column(nullable: false) }, constraints: table => { @@ -150,10 +149,10 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "AspNetUserTokens", columns: table => new { - UserId = table.Column(type: "nvarchar(450)", nullable: false), - LoginProvider = table.Column(type: "nvarchar(450)", nullable: false), - Name = table.Column(type: "nvarchar(450)", nullable: false), - Value = table.Column(type: "nvarchar(max)", nullable: true) + UserId = table.Column(nullable: false), + LoginProvider = table.Column(nullable: false), + Name = table.Column(nullable: false), + Value = table.Column(nullable: true) }, constraints: table => { diff --git a/src/Services/Identity/Identity.API/Migrations/ApplicationDbContextModelSnapshot.cs b/src/Services/Identity/Identity.API/Migrations/ApplicationDbContextModelSnapshot.cs index dcc87bc73d..2819cd6eb7 100644 --- a/src/Services/Identity/Identity.API/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/src/Services/Identity/Identity.API/Migrations/ApplicationDbContextModelSnapshot.cs @@ -1,9 +1,10 @@ // +using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Microsoft.eShopOnContainers.Services.Identity.API.Data; -using System; namespace Identity.API.Migrations { @@ -14,99 +15,13 @@ protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "2.0.0-rtm-26452") + .HasAnnotation("ProductVersion", "3.0.0-preview7.19362.6") + .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - modelBuilder.Entity("Identity.API.Models.ApplicationUser", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AccessFailedCount"); - - b.Property("CardHolderName") - .IsRequired(); - - b.Property("CardNumber") - .IsRequired(); - - b.Property("CardType"); - - b.Property("City") - .IsRequired(); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Country") - .IsRequired(); - - b.Property("Email") - .HasMaxLength(256); - - b.Property("EmailConfirmed"); - - b.Property("Expiration") - .IsRequired(); - - b.Property("LastName") - .IsRequired(); - - b.Property("LockoutEnabled"); - - b.Property("LockoutEnd"); - - b.Property("Name") - .IsRequired(); - - b.Property("NormalizedEmail") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasMaxLength(256); - - b.Property("PasswordHash"); - - b.Property("PhoneNumber"); - - b.Property("PhoneNumberConfirmed"); - - b.Property("SecurityNumber") - .IsRequired(); - - b.Property("SecurityStamp"); - - b.Property("State") - .IsRequired(); - - b.Property("Street") - .IsRequired(); - - b.Property("TwoFactorEnabled"); - - b.Property("UserName") - .HasMaxLength(256); - - b.Property("ZipCode") - .IsRequired(); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.ToTable("AspNetUsers"); - }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => { - b.Property("Id") - .ValueGeneratedOnAdd(); + b.Property("Id"); b.Property("ConcurrencyStamp") .IsConcurrencyToken(); @@ -130,7 +45,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); b.Property("ClaimType"); @@ -149,7 +65,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.Property("Id") - .ValueGeneratedOnAdd(); + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); b.Property("ClaimType"); @@ -211,49 +128,140 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("AspNetUserTokens"); }); + modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Identity.API.Models.ApplicationUser", b => + { + b.Property("Id"); + + b.Property("AccessFailedCount"); + + b.Property("CardHolderName") + .IsRequired(); + + b.Property("CardNumber") + .IsRequired(); + + b.Property("CardType"); + + b.Property("City") + .IsRequired(); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Country") + .IsRequired(); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("Expiration") + .IsRequired(); + + b.Property("LastName") + .IsRequired(); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("Name") + .IsRequired(); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("SecurityNumber") + .IsRequired(); + + b.Property("SecurityStamp"); + + b.Property("State") + .IsRequired(); + + b.Property("Street") + .IsRequired(); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasMaxLength(256); + + b.Property("ZipCode") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); + + b.ToTable("AspNetUsers"); + }); + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) .WithMany() .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { - b.HasOne("Identity.API.Models.ApplicationUser") + b.HasOne("Microsoft.eShopOnContainers.Services.Identity.API.Models.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { - b.HasOne("Identity.API.Models.ApplicationUser") + b.HasOne("Microsoft.eShopOnContainers.Services.Identity.API.Models.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { - b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) .WithMany() .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("Identity.API.Models.ApplicationUser") + b.HasOne("Microsoft.eShopOnContainers.Services.Identity.API.Models.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { - b.HasOne("Identity.API.Models.ApplicationUser") + b.HasOne("Microsoft.eShopOnContainers.Services.Identity.API.Models.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); #pragma warning restore 612, 618 } diff --git a/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20170927170433_Config.Designer.cs b/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20170927170433_Config.Designer.cs deleted file mode 100644 index 327d2fee0f..0000000000 --- a/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20170927170433_Config.Designer.cs +++ /dev/null @@ -1,591 +0,0 @@ -// -using IdentityServer4.EntityFramework.DbContexts; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage; -using Microsoft.EntityFrameworkCore.Storage.Internal; -using System; - -namespace Identity.API.Migrations.ConfigurationDb -{ - [DbContext(typeof(ConfigurationDbContext))] - [Migration("20170927170433_Config")] - partial class Config - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.0.0-rtm-26452") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResource", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Description") - .HasMaxLength(1000); - - b.Property("DisplayName") - .HasMaxLength(200); - - b.Property("Enabled"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200); - - b.HasKey("Id"); - - b.HasIndex("Name") - .IsUnique(); - - b.ToTable("ApiResources"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ApiResourceId") - .IsRequired(); - - b.Property("Type") - .IsRequired() - .HasMaxLength(200); - - b.HasKey("Id"); - - b.HasIndex("ApiResourceId"); - - b.ToTable("ApiClaims"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScope", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ApiResourceId") - .IsRequired(); - - b.Property("Description") - .HasMaxLength(1000); - - b.Property("DisplayName") - .HasMaxLength(200); - - b.Property("Emphasize"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200); - - b.Property("Required"); - - b.Property("ShowInDiscoveryDocument"); - - b.HasKey("Id"); - - b.HasIndex("ApiResourceId"); - - b.HasIndex("Name") - .IsUnique(); - - b.ToTable("ApiScopes"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScopeClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ApiScopeId") - .IsRequired(); - - b.Property("Type") - .IsRequired() - .HasMaxLength(200); - - b.HasKey("Id"); - - b.HasIndex("ApiScopeId"); - - b.ToTable("ApiScopeClaims"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiSecret", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ApiResourceId") - .IsRequired(); - - b.Property("Description") - .HasMaxLength(1000); - - b.Property("Expiration"); - - b.Property("Type") - .HasMaxLength(250); - - b.Property("Value") - .HasMaxLength(2000); - - b.HasKey("Id"); - - b.HasIndex("ApiResourceId"); - - b.ToTable("ApiSecrets"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AbsoluteRefreshTokenLifetime"); - - b.Property("AccessTokenLifetime"); - - b.Property("AccessTokenType"); - - b.Property("AllowAccessTokensViaBrowser"); - - b.Property("AllowOfflineAccess"); - - b.Property("AllowPlainTextPkce"); - - b.Property("AllowRememberConsent"); - - b.Property("AlwaysIncludeUserClaimsInIdToken"); - - b.Property("AlwaysSendClientClaims"); - - b.Property("AuthorizationCodeLifetime"); - - b.Property("BackChannelLogoutSessionRequired"); - - b.Property("BackChannelLogoutUri") - .HasMaxLength(2000); - - b.Property("ClientClaimsPrefix") - .HasMaxLength(200); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200); - - b.Property("ClientName") - .HasMaxLength(200); - - b.Property("ClientUri") - .HasMaxLength(2000); - - b.Property("ConsentLifetime"); - - b.Property("Description") - .HasMaxLength(1000); - - b.Property("EnableLocalLogin"); - - b.Property("Enabled"); - - b.Property("FrontChannelLogoutSessionRequired"); - - b.Property("FrontChannelLogoutUri") - .HasMaxLength(2000); - - b.Property("IdentityTokenLifetime"); - - b.Property("IncludeJwtId"); - - b.Property("LogoUri") - .HasMaxLength(2000); - - b.Property("PairWiseSubjectSalt") - .HasMaxLength(200); - - b.Property("ProtocolType") - .IsRequired() - .HasMaxLength(200); - - b.Property("RefreshTokenExpiration"); - - b.Property("RefreshTokenUsage"); - - b.Property("RequireClientSecret"); - - b.Property("RequireConsent"); - - b.Property("RequirePkce"); - - b.Property("SlidingRefreshTokenLifetime"); - - b.Property("UpdateAccessTokenClaimsOnRefresh"); - - b.HasKey("Id"); - - b.HasIndex("ClientId") - .IsUnique(); - - b.ToTable("Clients"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ClientId") - .IsRequired(); - - b.Property("Type") - .IsRequired() - .HasMaxLength(250); - - b.Property("Value") - .IsRequired() - .HasMaxLength(250); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("ClientClaims"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientCorsOrigin", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ClientId") - .IsRequired(); - - b.Property("Origin") - .IsRequired() - .HasMaxLength(150); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("ClientCorsOrigins"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientGrantType", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ClientId") - .IsRequired(); - - b.Property("GrantType") - .IsRequired() - .HasMaxLength(250); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("ClientGrantTypes"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientIdPRestriction", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ClientId") - .IsRequired(); - - b.Property("Provider") - .IsRequired() - .HasMaxLength(200); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("ClientIdPRestrictions"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientPostLogoutRedirectUri", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ClientId") - .IsRequired(); - - b.Property("PostLogoutRedirectUri") - .IsRequired() - .HasMaxLength(2000); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("ClientPostLogoutRedirectUris"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientProperty", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ClientId") - .IsRequired(); - - b.Property("Key") - .IsRequired() - .HasMaxLength(250); - - b.Property("Value") - .IsRequired() - .HasMaxLength(2000); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("ClientProperties"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientRedirectUri", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ClientId") - .IsRequired(); - - b.Property("RedirectUri") - .IsRequired() - .HasMaxLength(2000); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("ClientRedirectUris"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientScope", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ClientId") - .IsRequired(); - - b.Property("Scope") - .IsRequired() - .HasMaxLength(200); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("ClientScopes"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientSecret", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("ClientId") - .IsRequired(); - - b.Property("Description") - .HasMaxLength(2000); - - b.Property("Expiration"); - - b.Property("Type") - .HasMaxLength(250); - - b.Property("Value") - .IsRequired() - .HasMaxLength(2000); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("ClientSecrets"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("IdentityResourceId") - .IsRequired(); - - b.Property("Type") - .IsRequired() - .HasMaxLength(200); - - b.HasKey("Id"); - - b.HasIndex("IdentityResourceId"); - - b.ToTable("IdentityClaims"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResource", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Description") - .HasMaxLength(1000); - - b.Property("DisplayName") - .HasMaxLength(200); - - b.Property("Emphasize"); - - b.Property("Enabled"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200); - - b.Property("Required"); - - b.Property("ShowInDiscoveryDocument"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .IsUnique(); - - b.ToTable("IdentityResources"); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceClaim", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource") - .WithMany("UserClaims") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScope", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource") - .WithMany("Scopes") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScopeClaim", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.ApiScope", "ApiScope") - .WithMany("UserClaims") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiSecret", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource") - .WithMany("Secrets") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientClaim", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") - .WithMany("Claims") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientCorsOrigin", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") - .WithMany("AllowedCorsOrigins") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientGrantType", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") - .WithMany("AllowedGrantTypes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientIdPRestriction", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") - .WithMany("IdentityProviderRestrictions") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientPostLogoutRedirectUri", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") - .WithMany("PostLogoutRedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientProperty", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") - .WithMany("Properties") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientRedirectUri", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") - .WithMany("RedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientScope", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") - .WithMany("AllowedScopes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientSecret", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client") - .WithMany("ClientSecrets") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade); - }); - - modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityClaim", b => - { - b.HasOne("IdentityServer4.EntityFramework.Entities.IdentityResource", "IdentityResource") - .WithMany("UserClaims") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.cs b/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.cs deleted file mode 100644 index 7ecf040158..0000000000 --- a/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.cs +++ /dev/null @@ -1,294 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; - -namespace Identity.API.Migrations.ConfigurationDb -{ - public partial class core3 : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "Created", - table: "IdentityResources", - nullable: false, - defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); - - migrationBuilder.AddColumn( - name: "NonEditable", - table: "IdentityResources", - nullable: false, - defaultValue: false); - - migrationBuilder.AddColumn( - name: "Updated", - table: "IdentityResources", - nullable: true); - - migrationBuilder.AlterColumn( - name: "Value", - table: "ClientSecrets", - maxLength: 4000, - nullable: false, - oldClrType: typeof(string), - oldMaxLength: 2000); - - migrationBuilder.AlterColumn( - name: "Type", - table: "ClientSecrets", - maxLength: 250, - nullable: false, - oldClrType: typeof(string), - oldMaxLength: 250, - oldNullable: true); - - migrationBuilder.AddColumn( - name: "Created", - table: "ClientSecrets", - nullable: false, - defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); - - migrationBuilder.AddColumn( - name: "Created", - table: "Clients", - nullable: false, - defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); - - migrationBuilder.AddColumn( - name: "DeviceCodeLifetime", - table: "Clients", - nullable: false, - defaultValue: 0); - - migrationBuilder.AddColumn( - name: "LastAccessed", - table: "Clients", - nullable: true); - - migrationBuilder.AddColumn( - name: "NonEditable", - table: "Clients", - nullable: false, - defaultValue: false); - - migrationBuilder.AddColumn( - name: "Updated", - table: "Clients", - nullable: true); - - migrationBuilder.AddColumn( - name: "UserCodeType", - table: "Clients", - maxLength: 100, - nullable: true); - - migrationBuilder.AddColumn( - name: "UserSsoLifetime", - table: "Clients", - nullable: true); - - migrationBuilder.AlterColumn( - name: "Value", - table: "ApiSecrets", - maxLength: 4000, - nullable: false, - oldClrType: typeof(string), - oldMaxLength: 2000, - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "Type", - table: "ApiSecrets", - maxLength: 250, - nullable: false, - oldClrType: typeof(string), - oldMaxLength: 250, - oldNullable: true); - - migrationBuilder.AddColumn( - name: "Created", - table: "ApiSecrets", - nullable: false, - defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); - - migrationBuilder.AddColumn( - name: "Created", - table: "ApiResources", - nullable: false, - defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); - - migrationBuilder.AddColumn( - name: "LastAccessed", - table: "ApiResources", - nullable: true); - - migrationBuilder.AddColumn( - name: "NonEditable", - table: "ApiResources", - nullable: false, - defaultValue: false); - - migrationBuilder.AddColumn( - name: "Updated", - table: "ApiResources", - nullable: true); - - migrationBuilder.CreateTable( - name: "ApiProperties", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - Key = table.Column(maxLength: 250, nullable: false), - Value = table.Column(maxLength: 2000, nullable: false), - ApiResourceId = table.Column(nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_ApiProperties", x => x.Id); - table.ForeignKey( - name: "FK_ApiProperties_ApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "ApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityProperties", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - Key = table.Column(maxLength: 250, nullable: false), - Value = table.Column(maxLength: 2000, nullable: false), - IdentityResourceId = table.Column(nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityProperties", x => x.Id); - table.ForeignKey( - name: "FK_IdentityProperties_IdentityResources_IdentityResourceId", - column: x => x.IdentityResourceId, - principalTable: "IdentityResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_ApiProperties_ApiResourceId", - table: "ApiProperties", - column: "ApiResourceId"); - - migrationBuilder.CreateIndex( - name: "IX_IdentityProperties_IdentityResourceId", - table: "IdentityProperties", - column: "IdentityResourceId"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "ApiProperties"); - - migrationBuilder.DropTable( - name: "IdentityProperties"); - - migrationBuilder.DropColumn( - name: "Created", - table: "IdentityResources"); - - migrationBuilder.DropColumn( - name: "NonEditable", - table: "IdentityResources"); - - migrationBuilder.DropColumn( - name: "Updated", - table: "IdentityResources"); - - migrationBuilder.DropColumn( - name: "Created", - table: "ClientSecrets"); - - migrationBuilder.DropColumn( - name: "Created", - table: "Clients"); - - migrationBuilder.DropColumn( - name: "DeviceCodeLifetime", - table: "Clients"); - - migrationBuilder.DropColumn( - name: "LastAccessed", - table: "Clients"); - - migrationBuilder.DropColumn( - name: "NonEditable", - table: "Clients"); - - migrationBuilder.DropColumn( - name: "Updated", - table: "Clients"); - - migrationBuilder.DropColumn( - name: "UserCodeType", - table: "Clients"); - - migrationBuilder.DropColumn( - name: "UserSsoLifetime", - table: "Clients"); - - migrationBuilder.DropColumn( - name: "Created", - table: "ApiSecrets"); - - migrationBuilder.DropColumn( - name: "Created", - table: "ApiResources"); - - migrationBuilder.DropColumn( - name: "LastAccessed", - table: "ApiResources"); - - migrationBuilder.DropColumn( - name: "NonEditable", - table: "ApiResources"); - - migrationBuilder.DropColumn( - name: "Updated", - table: "ApiResources"); - - migrationBuilder.AlterColumn( - name: "Value", - table: "ClientSecrets", - maxLength: 2000, - nullable: false, - oldClrType: typeof(string), - oldMaxLength: 4000); - - migrationBuilder.AlterColumn( - name: "Type", - table: "ClientSecrets", - maxLength: 250, - nullable: true, - oldClrType: typeof(string), - oldMaxLength: 250); - - migrationBuilder.AlterColumn( - name: "Value", - table: "ApiSecrets", - maxLength: 2000, - nullable: true, - oldClrType: typeof(string), - oldMaxLength: 4000); - - migrationBuilder.AlterColumn( - name: "Type", - table: "ApiSecrets", - maxLength: 250, - nullable: true, - oldClrType: typeof(string), - oldMaxLength: 250); - } - } -} diff --git a/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.Designer.cs b/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190729092011_InitialConfigurationMigration.Designer.cs similarity index 99% rename from src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.Designer.cs rename to src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190729092011_InitialConfigurationMigration.Designer.cs index ed87031d4e..5e801b3062 100644 --- a/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190725132846_core3.Designer.cs +++ b/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190729092011_InitialConfigurationMigration.Designer.cs @@ -10,8 +10,8 @@ namespace Identity.API.Migrations.ConfigurationDb { [DbContext(typeof(ConfigurationDbContext))] - [Migration("20190725132846_core3")] - partial class core3 + [Migration("20190729092011_InitialConfigurationMigration")] + partial class InitialConfigurationMigration { protected override void BuildTargetModel(ModelBuilder modelBuilder) { diff --git a/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20170927170433_Config.cs b/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190729092011_InitialConfigurationMigration.cs similarity index 62% rename from src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20170927170433_Config.cs rename to src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190729092011_InitialConfigurationMigration.cs index 754c754865..05155a83cc 100644 --- a/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20170927170433_Config.cs +++ b/src/Services/Identity/Identity.API/Migrations/ConfigurationDb/20190729092011_InitialConfigurationMigration.cs @@ -1,10 +1,10 @@ -using Microsoft.EntityFrameworkCore.Metadata; +using System; +using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; -using System; namespace Identity.API.Migrations.ConfigurationDb { - public partial class Config : Migration + public partial class InitialConfigurationMigration : Migration { protected override void Up(MigrationBuilder migrationBuilder) { @@ -12,12 +12,16 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "ApiResources", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) + Enabled = table.Column(nullable: false), + Name = table.Column(maxLength: 200, nullable: false), + DisplayName = table.Column(maxLength: 200, nullable: true), + Description = table.Column(maxLength: 1000, nullable: true), + Created = table.Column(nullable: false), + Updated = table.Column(nullable: true), + LastAccessed = table.Column(nullable: true), + NonEditable = table.Column(nullable: false) }, constraints: table => { @@ -28,42 +32,49 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "Clients", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - AbsoluteRefreshTokenLifetime = table.Column(type: "int", nullable: false), - AccessTokenLifetime = table.Column(type: "int", nullable: false), - AccessTokenType = table.Column(type: "int", nullable: false), - AllowAccessTokensViaBrowser = table.Column(type: "bit", nullable: false), - AllowOfflineAccess = table.Column(type: "bit", nullable: false), - AllowPlainTextPkce = table.Column(type: "bit", nullable: false), - AllowRememberConsent = table.Column(type: "bit", nullable: false), - AlwaysIncludeUserClaimsInIdToken = table.Column(type: "bit", nullable: false), - AlwaysSendClientClaims = table.Column(type: "bit", nullable: false), - AuthorizationCodeLifetime = table.Column(type: "int", nullable: false), - BackChannelLogoutSessionRequired = table.Column(type: "bit", nullable: false), - BackChannelLogoutUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - ClientClaimsPrefix = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ClientName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - ClientUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - ConsentLifetime = table.Column(type: "int", nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - EnableLocalLogin = table.Column(type: "bit", nullable: false), - Enabled = table.Column(type: "bit", nullable: false), - FrontChannelLogoutSessionRequired = table.Column(type: "bit", nullable: false), - FrontChannelLogoutUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - IdentityTokenLifetime = table.Column(type: "int", nullable: false), - IncludeJwtId = table.Column(type: "bit", nullable: false), - LogoUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - PairWiseSubjectSalt = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - ProtocolType = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - RefreshTokenExpiration = table.Column(type: "int", nullable: false), - RefreshTokenUsage = table.Column(type: "int", nullable: false), - RequireClientSecret = table.Column(type: "bit", nullable: false), - RequireConsent = table.Column(type: "bit", nullable: false), - RequirePkce = table.Column(type: "bit", nullable: false), - SlidingRefreshTokenLifetime = table.Column(type: "int", nullable: false), - UpdateAccessTokenClaimsOnRefresh = table.Column(type: "bit", nullable: false) + Enabled = table.Column(nullable: false), + ClientId = table.Column(maxLength: 200, nullable: false), + ProtocolType = table.Column(maxLength: 200, nullable: false), + RequireClientSecret = table.Column(nullable: false), + ClientName = table.Column(maxLength: 200, nullable: true), + Description = table.Column(maxLength: 1000, nullable: true), + ClientUri = table.Column(maxLength: 2000, nullable: true), + LogoUri = table.Column(maxLength: 2000, nullable: true), + RequireConsent = table.Column(nullable: false), + AllowRememberConsent = table.Column(nullable: false), + AlwaysIncludeUserClaimsInIdToken = table.Column(nullable: false), + RequirePkce = table.Column(nullable: false), + AllowPlainTextPkce = table.Column(nullable: false), + AllowAccessTokensViaBrowser = table.Column(nullable: false), + FrontChannelLogoutUri = table.Column(maxLength: 2000, nullable: true), + FrontChannelLogoutSessionRequired = table.Column(nullable: false), + BackChannelLogoutUri = table.Column(maxLength: 2000, nullable: true), + BackChannelLogoutSessionRequired = table.Column(nullable: false), + AllowOfflineAccess = table.Column(nullable: false), + IdentityTokenLifetime = table.Column(nullable: false), + AccessTokenLifetime = table.Column(nullable: false), + AuthorizationCodeLifetime = table.Column(nullable: false), + ConsentLifetime = table.Column(nullable: true), + AbsoluteRefreshTokenLifetime = table.Column(nullable: false), + SlidingRefreshTokenLifetime = table.Column(nullable: false), + RefreshTokenUsage = table.Column(nullable: false), + UpdateAccessTokenClaimsOnRefresh = table.Column(nullable: false), + RefreshTokenExpiration = table.Column(nullable: false), + AccessTokenType = table.Column(nullable: false), + EnableLocalLogin = table.Column(nullable: false), + IncludeJwtId = table.Column(nullable: false), + AlwaysSendClientClaims = table.Column(nullable: false), + ClientClaimsPrefix = table.Column(maxLength: 200, nullable: true), + PairWiseSubjectSalt = table.Column(maxLength: 200, nullable: true), + Created = table.Column(nullable: false), + Updated = table.Column(nullable: true), + LastAccessed = table.Column(nullable: true), + UserSsoLifetime = table.Column(nullable: true), + UserCodeType = table.Column(maxLength: 100, nullable: true), + DeviceCodeLifetime = table.Column(nullable: false), + NonEditable = table.Column(nullable: false) }, constraints: table => { @@ -74,15 +85,18 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "IdentityResources", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Emphasize = table.Column(type: "bit", nullable: false), - Enabled = table.Column(type: "bit", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Required = table.Column(type: "bit", nullable: false), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false) + Enabled = table.Column(nullable: false), + Name = table.Column(maxLength: 200, nullable: false), + DisplayName = table.Column(maxLength: 200, nullable: true), + Description = table.Column(maxLength: 1000, nullable: true), + Required = table.Column(nullable: false), + Emphasize = table.Column(nullable: false), + ShowInDiscoveryDocument = table.Column(nullable: false), + Created = table.Column(nullable: false), + Updated = table.Column(nullable: true), + NonEditable = table.Column(nullable: false) }, constraints: table => { @@ -93,10 +107,10 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "ApiClaims", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ApiResourceId = table.Column(type: "int", nullable: false), - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) + Type = table.Column(maxLength: 200, nullable: false), + ApiResourceId = table.Column(nullable: false) }, constraints: table => { @@ -109,19 +123,40 @@ protected override void Up(MigrationBuilder migrationBuilder) onDelete: ReferentialAction.Cascade); }); + migrationBuilder.CreateTable( + name: "ApiProperties", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + Key = table.Column(maxLength: 250, nullable: false), + Value = table.Column(maxLength: 2000, nullable: false), + ApiResourceId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ApiProperties", x => x.Id); + table.ForeignKey( + name: "FK_ApiProperties_ApiResources_ApiResourceId", + column: x => x.ApiResourceId, + principalTable: "ApiResources", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + migrationBuilder.CreateTable( name: "ApiScopes", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ApiResourceId = table.Column(type: "int", nullable: false), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Emphasize = table.Column(type: "bit", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Required = table.Column(type: "bit", nullable: false), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false) + Name = table.Column(maxLength: 200, nullable: false), + DisplayName = table.Column(maxLength: 200, nullable: true), + Description = table.Column(maxLength: 1000, nullable: true), + Required = table.Column(nullable: false), + Emphasize = table.Column(nullable: false), + ShowInDiscoveryDocument = table.Column(nullable: false), + ApiResourceId = table.Column(nullable: false) }, constraints: table => { @@ -138,13 +173,14 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "ApiSecrets", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ApiResourceId = table.Column(type: "int", nullable: false), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: true), - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: true), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true) + Description = table.Column(maxLength: 1000, nullable: true), + Value = table.Column(maxLength: 4000, nullable: false), + Expiration = table.Column(nullable: true), + Type = table.Column(maxLength: 250, nullable: false), + Created = table.Column(nullable: false), + ApiResourceId = table.Column(nullable: false) }, constraints: table => { @@ -161,11 +197,11 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "ClientClaims", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ClientId = table.Column(type: "int", nullable: false), - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) + Type = table.Column(maxLength: 250, nullable: false), + Value = table.Column(maxLength: 250, nullable: false), + ClientId = table.Column(nullable: false) }, constraints: table => { @@ -182,10 +218,10 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "ClientCorsOrigins", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ClientId = table.Column(type: "int", nullable: false), - Origin = table.Column(type: "nvarchar(150)", maxLength: 150, nullable: false) + Origin = table.Column(maxLength: 150, nullable: false), + ClientId = table.Column(nullable: false) }, constraints: table => { @@ -202,10 +238,10 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "ClientGrantTypes", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ClientId = table.Column(type: "int", nullable: false), - GrantType = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) + GrantType = table.Column(maxLength: 250, nullable: false), + ClientId = table.Column(nullable: false) }, constraints: table => { @@ -222,10 +258,10 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "ClientIdPRestrictions", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ClientId = table.Column(type: "int", nullable: false), - Provider = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) + Provider = table.Column(maxLength: 200, nullable: false), + ClientId = table.Column(nullable: false) }, constraints: table => { @@ -242,10 +278,10 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "ClientPostLogoutRedirectUris", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ClientId = table.Column(type: "int", nullable: false), - PostLogoutRedirectUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) + PostLogoutRedirectUri = table.Column(maxLength: 2000, nullable: false), + ClientId = table.Column(nullable: false) }, constraints: table => { @@ -262,11 +298,11 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "ClientProperties", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ClientId = table.Column(type: "int", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) + Key = table.Column(maxLength: 250, nullable: false), + Value = table.Column(maxLength: 2000, nullable: false), + ClientId = table.Column(nullable: false) }, constraints: table => { @@ -283,10 +319,10 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "ClientRedirectUris", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ClientId = table.Column(type: "int", nullable: false), - RedirectUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) + RedirectUri = table.Column(maxLength: 2000, nullable: false), + ClientId = table.Column(nullable: false) }, constraints: table => { @@ -303,10 +339,10 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "ClientScopes", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ClientId = table.Column(type: "int", nullable: false), - Scope = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) + Scope = table.Column(maxLength: 200, nullable: false), + ClientId = table.Column(nullable: false) }, constraints: table => { @@ -323,13 +359,14 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "ClientSecrets", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ClientId = table.Column(type: "int", nullable: false), - Description = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: true), - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: true), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) + Description = table.Column(maxLength: 2000, nullable: true), + Value = table.Column(maxLength: 4000, nullable: false), + Expiration = table.Column(nullable: true), + Type = table.Column(maxLength: 250, nullable: false), + Created = table.Column(nullable: false), + ClientId = table.Column(nullable: false) }, constraints: table => { @@ -346,10 +383,10 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "IdentityClaims", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - IdentityResourceId = table.Column(type: "int", nullable: false), - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) + Type = table.Column(maxLength: 200, nullable: false), + IdentityResourceId = table.Column(nullable: false) }, constraints: table => { @@ -362,14 +399,35 @@ protected override void Up(MigrationBuilder migrationBuilder) onDelete: ReferentialAction.Cascade); }); + migrationBuilder.CreateTable( + name: "IdentityProperties", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + Key = table.Column(maxLength: 250, nullable: false), + Value = table.Column(maxLength: 2000, nullable: false), + IdentityResourceId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_IdentityProperties", x => x.Id); + table.ForeignKey( + name: "FK_IdentityProperties_IdentityResources_IdentityResourceId", + column: x => x.IdentityResourceId, + principalTable: "IdentityResources", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + migrationBuilder.CreateTable( name: "ApiScopeClaims", columns: table => new { - Id = table.Column(type: "int", nullable: false) + Id = table.Column(nullable: false) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - ApiScopeId = table.Column(type: "int", nullable: false), - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) + Type = table.Column(maxLength: 200, nullable: false), + ApiScopeId = table.Column(nullable: false) }, constraints: table => { @@ -387,6 +445,11 @@ protected override void Up(MigrationBuilder migrationBuilder) table: "ApiClaims", column: "ApiResourceId"); + migrationBuilder.CreateIndex( + name: "IX_ApiProperties_ApiResourceId", + table: "ApiProperties", + column: "ApiResourceId"); + migrationBuilder.CreateIndex( name: "IX_ApiResources_Name", table: "ApiResources", @@ -470,6 +533,11 @@ protected override void Up(MigrationBuilder migrationBuilder) table: "IdentityClaims", column: "IdentityResourceId"); + migrationBuilder.CreateIndex( + name: "IX_IdentityProperties_IdentityResourceId", + table: "IdentityProperties", + column: "IdentityResourceId"); + migrationBuilder.CreateIndex( name: "IX_IdentityResources_Name", table: "IdentityResources", @@ -482,6 +550,9 @@ protected override void Down(MigrationBuilder migrationBuilder) migrationBuilder.DropTable( name: "ApiClaims"); + migrationBuilder.DropTable( + name: "ApiProperties"); + migrationBuilder.DropTable( name: "ApiScopeClaims"); @@ -518,6 +589,9 @@ protected override void Down(MigrationBuilder migrationBuilder) migrationBuilder.DropTable( name: "IdentityClaims"); + migrationBuilder.DropTable( + name: "IdentityProperties"); + migrationBuilder.DropTable( name: "ApiScopes"); diff --git a/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20170927170423_Grants.cs b/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20170927170423_Grants.cs deleted file mode 100644 index 4017f8bf07..0000000000 --- a/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20170927170423_Grants.cs +++ /dev/null @@ -1,39 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; -using System; - -namespace Identity.API.Migrations.PersistedGrantDb -{ - public partial class Grants : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "PersistedGrants", - columns: table => new - { - Key = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - Data = table.Column(type: "nvarchar(max)", maxLength: 50000, nullable: false), - Expiration = table.Column(type: "datetime2", nullable: true), - SubjectId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_PersistedGrants", x => x.Key); - }); - - migrationBuilder.CreateIndex( - name: "IX_PersistedGrants_SubjectId_ClientId_Type", - table: "PersistedGrants", - columns: new[] { "SubjectId", "ClientId", "Type" }); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "PersistedGrants"); - } - } -} diff --git a/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20170927170423_Grants.Designer.cs b/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20190729092100_InitialPersistedGrantMigration.Designer.cs similarity index 54% rename from src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20170927170423_Grants.Designer.cs rename to src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20190729092100_InitialPersistedGrantMigration.Designer.cs index aaf24d10c9..0518894dc4 100644 --- a/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20170927170423_Grants.Designer.cs +++ b/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20190729092100_InitialPersistedGrantMigration.Designer.cs @@ -1,25 +1,59 @@ // +using System; using IdentityServer4.EntityFramework.DbContexts; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.Internal; -using System; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace Identity.API.Migrations.PersistedGrantDb { [DbContext(typeof(PersistedGrantDbContext))] - [Migration("20170927170423_Grants")] - partial class Grants + [Migration("20190729092100_InitialPersistedGrantMigration")] + partial class InitialPersistedGrantMigration { protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "2.0.0-rtm-26452") + .HasAnnotation("ProductVersion", "3.0.0-preview7.19362.6") + .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.DeviceFlowCodes", b => + { + b.Property("UserCode") + .HasMaxLength(200); + + b.Property("ClientId") + .IsRequired() + .HasMaxLength(200); + + b.Property("CreationTime"); + + b.Property("Data") + .IsRequired() + .HasMaxLength(50000); + + b.Property("DeviceCode") + .IsRequired() + .HasMaxLength(200); + + b.Property("Expiration") + .IsRequired(); + + b.Property("SubjectId") + .HasMaxLength(200); + + b.HasKey("UserCode"); + + b.HasIndex("DeviceCode") + .IsUnique(); + + b.ToTable("DeviceCodes"); + }); + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.PersistedGrant", b => { b.Property("Key") diff --git a/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20190729092100_InitialPersistedGrantMigration.cs b/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20190729092100_InitialPersistedGrantMigration.cs new file mode 100644 index 0000000000..076f123236 --- /dev/null +++ b/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/20190729092100_InitialPersistedGrantMigration.cs @@ -0,0 +1,65 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace Identity.API.Migrations.PersistedGrantDb +{ + public partial class InitialPersistedGrantMigration : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "DeviceCodes", + columns: table => new + { + UserCode = table.Column(maxLength: 200, nullable: false), + DeviceCode = table.Column(maxLength: 200, nullable: false), + SubjectId = table.Column(maxLength: 200, nullable: true), + ClientId = table.Column(maxLength: 200, nullable: false), + CreationTime = table.Column(nullable: false), + Expiration = table.Column(nullable: false), + Data = table.Column(maxLength: 50000, nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_DeviceCodes", x => x.UserCode); + }); + + migrationBuilder.CreateTable( + name: "PersistedGrants", + columns: table => new + { + Key = table.Column(maxLength: 200, nullable: false), + Type = table.Column(maxLength: 50, nullable: false), + SubjectId = table.Column(maxLength: 200, nullable: true), + ClientId = table.Column(maxLength: 200, nullable: false), + CreationTime = table.Column(nullable: false), + Expiration = table.Column(nullable: true), + Data = table.Column(maxLength: 50000, nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_PersistedGrants", x => x.Key); + }); + + migrationBuilder.CreateIndex( + name: "IX_DeviceCodes_DeviceCode", + table: "DeviceCodes", + column: "DeviceCode", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_PersistedGrants_SubjectId_ClientId_Type", + table: "PersistedGrants", + columns: new[] { "SubjectId", "ClientId", "Type" }); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "DeviceCodes"); + + migrationBuilder.DropTable( + name: "PersistedGrants"); + } + } +} diff --git a/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/PersistedGrantDbContextModelSnapshot.cs b/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/PersistedGrantDbContextModelSnapshot.cs index 7989f0586f..3188904efe 100644 --- a/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/PersistedGrantDbContextModelSnapshot.cs +++ b/src/Services/Identity/Identity.API/Migrations/PersistedGrantDb/PersistedGrantDbContextModelSnapshot.cs @@ -1,11 +1,10 @@ // +using System; using IdentityServer4.EntityFramework.DbContexts; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.Internal; -using System; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace Identity.API.Migrations.PersistedGrantDb { @@ -16,9 +15,43 @@ protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "2.0.0-rtm-26452") + .HasAnnotation("ProductVersion", "3.0.0-preview7.19362.6") + .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.DeviceFlowCodes", b => + { + b.Property("UserCode") + .HasMaxLength(200); + + b.Property("ClientId") + .IsRequired() + .HasMaxLength(200); + + b.Property("CreationTime"); + + b.Property("Data") + .IsRequired() + .HasMaxLength(50000); + + b.Property("DeviceCode") + .IsRequired() + .HasMaxLength(200); + + b.Property("Expiration") + .IsRequired(); + + b.Property("SubjectId") + .HasMaxLength(200); + + b.HasKey("UserCode"); + + b.HasIndex("DeviceCode") + .IsUnique(); + + b.ToTable("DeviceCodes"); + }); + modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.PersistedGrant", b => { b.Property("Key") diff --git a/src/Services/Location/Locations.API/Startup.cs b/src/Services/Location/Locations.API/Startup.cs index ff7c794169..0a4e09b4e2 100644 --- a/src/Services/Location/Locations.API/Startup.cs +++ b/src/Services/Location/Locations.API/Startup.cs @@ -169,7 +169,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF ConfigureAuth(app); - app.UseAuthorization(); app.UseRouting(); app.UseEndpoints(endpoints => { @@ -230,6 +229,7 @@ protected virtual void ConfigureAuth(IApplicationBuilder app) } app.UseAuthentication(); + app.UseAuthorization(); } private void RegisterEventBus(IServiceCollection services) diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs index 5fc3c60d3c..c3ae02e23f 100644 --- a/src/Services/Marketing/Marketing.API/Startup.cs +++ b/src/Services/Marketing/Marketing.API/Startup.cs @@ -50,7 +50,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) // Add framework services. services.AddCustomHealthCheck(Configuration); - services.AddControllers(); + services.AddControllers().AddNewtonsoftJson(); services.Configure(Configuration); ConfigureAuthService(services); @@ -122,7 +122,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) options.DescribeAllEnumsAsStrings(); options.SwaggerDoc("v1", new OpenApiInfo { - Title = "Marketing HTTP API", + Title = "eShopOnContainers - Marketing HTTP API", Version = "v1", Description = "The Marketing Service HTTP API" }); @@ -189,7 +189,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF ConfigureAuth(app); - app.UseAuthorization(); app.UseRouting(); app.UseEndpoints(endpoints => { @@ -207,11 +206,11 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF }); app.UseSwagger() - .UseSwaggerUI(c => + .UseSwaggerUI(setup => { - c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Marketing.API V1"); - c.OAuthClientId("marketingswaggerui"); - c.OAuthAppName("Marketing Swagger UI"); + setup.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Marketing.API V1"); + setup.OAuthClientId("marketingswaggerui"); + setup.OAuthAppName("Marketing Swagger UI"); }); ConfigureEventBus(app); @@ -234,11 +233,11 @@ private void ConfigureAuthService(IServiceCollection services) options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(options => - { - options.Authority = Configuration.GetValue("IdentityUrl"); - options.Audience = "marketing"; - options.RequireHttpsMetadata = false; - }); + { + options.Authority = Configuration.GetValue("IdentityUrl"); + options.Audience = "marketing"; + options.RequireHttpsMetadata = false; + }); } private void RegisterEventBus(IServiceCollection services) @@ -295,6 +294,7 @@ protected virtual void ConfigureAuth(IApplicationBuilder app) } app.UseAuthentication(); + app.UseAuthorization(); } } diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index 7dfbcc45cf..e8640489ca 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -83,7 +83,6 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) ConfigureAuth(app); - app.UseAuthorization(); app.UseRouting(); app.UseEndpoints(endpoints => { @@ -132,6 +131,7 @@ protected virtual void ConfigureAuth(IApplicationBuilder app) } app.UseAuthentication(); + app.UseAuthorization(); } } @@ -242,14 +242,14 @@ public static IServiceCollection AddCustomSwagger(this IServiceCollection servic options.DescribeAllEnumsAsStrings(); options.SwaggerDoc("v1", new OpenApiInfo { - Title = "Ordering HTTP API", + Title = "eShopOnContainers - Ordering HTTP API", Version = "v1", Description = "The Ordering Service HTTP API" }); options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { Type = SecuritySchemeType.OAuth2, - Flows = new OpenApi.Models.OpenApiOAuthFlows() + Flows = new OpenApiOAuthFlows() { Implicit = new OpenApiOAuthFlow() { diff --git a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs index 78f10adb35..456e733976 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs @@ -135,7 +135,6 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) } app.UseCors("CorsPolicy"); - app.UseAuthentication(); app.UseRouting(); app.UseEndpoints(endpoints => { diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs index 4d3bd2c81b..5859e9e12f 100644 --- a/src/Services/Webhooks/Webhooks.API/Startup.cs +++ b/src/Services/Webhooks/Webhooks.API/Startup.cs @@ -82,7 +82,6 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) ConfigureAuth(app); - app.UseAuthorization(); app.UseRouting(); app.UseEndpoints(endpoints => { From 4d8f3cba65886beb24370e25a5e98cdcef2faf90 Mon Sep 17 00:00:00 2001 From: ericuss Date: Mon, 29 Jul 2019 14:05:17 +0200 Subject: [PATCH 031/149] partial checkin --- .../Locations.API/Model/Core/LocationPoint.cs | 24 +++ .../Model/Core/LocationPolygon.cs | 25 +++ .../Location/Locations.API/Model/Locations.cs | 13 +- .../Location/Locations.API/Startup.cs | 6 +- .../Locations.FunctionalTests.csproj | 5 +- .../LocationsScenarios.cs | 155 +++++++++--------- src/_build/dependencies.props | 10 +- 7 files changed, 145 insertions(+), 93 deletions(-) create mode 100644 src/Services/Location/Locations.API/Model/Core/LocationPoint.cs create mode 100644 src/Services/Location/Locations.API/Model/Core/LocationPolygon.cs diff --git a/src/Services/Location/Locations.API/Model/Core/LocationPoint.cs b/src/Services/Location/Locations.API/Model/Core/LocationPoint.cs new file mode 100644 index 0000000000..48b6e32a75 --- /dev/null +++ b/src/Services/Location/Locations.API/Model/Core/LocationPoint.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Locations.API.Model.Core +{ + public class LocationPoint + { + public LocationPoint() + { + } + + public LocationPoint(double longitude, double latitude) + { + this.coordinates.Add(longitude); + this.coordinates.Add(latitude); + } + + public string type { get; private set; } = "Point"; + + public List coordinates { get; private set; } = new List(); + } +} diff --git a/src/Services/Location/Locations.API/Model/Core/LocationPolygon.cs b/src/Services/Location/Locations.API/Model/Core/LocationPolygon.cs new file mode 100644 index 0000000000..18380cc79a --- /dev/null +++ b/src/Services/Location/Locations.API/Model/Core/LocationPolygon.cs @@ -0,0 +1,25 @@ +using MongoDB.Driver.GeoJsonObjectModel; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Locations.API.Model.Core +{ + public class LocationPolygon + { + public LocationPolygon() + { + } + + public LocationPolygon(List coordinatesList) + { + var coordinatesMapped = coordinatesList.Select(x => new List() { x.Longitude, x.Latitude }).ToList(); + this.coordinates.Add(coordinatesMapped); + } + + public string type { get; private set; } = "Polygon"; + + public List>> coordinates { get; private set; } = new List>>(); + } +} diff --git a/src/Services/Location/Locations.API/Model/Locations.cs b/src/Services/Location/Locations.API/Model/Locations.cs index 7c0580fc6e..ae6672345c 100644 --- a/src/Services/Location/Locations.API/Model/Locations.cs +++ b/src/Services/Location/Locations.API/Model/Locations.cs @@ -1,5 +1,6 @@ namespace Microsoft.eShopOnContainers.Services.Locations.API.Model { + using global::Locations.API.Model.Core; using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; using MongoDB.Driver.GeoJsonObjectModel; @@ -17,8 +18,10 @@ public class Locations public string Description { get; set; } public double Latitude { get; set; } public double Longitude { get; set; } - public GeoJsonPoint Location { get; private set; } - public GeoJsonPolygon Polygon { get; private set; } + //public GeoJsonPoint Location { get; private set; } + public LocationPoint Location { get; private set; } + public LocationPolygon Polygon { get; private set; } + //public GeoJsonPolygon Polygon { get; private set; } public void SetLocation(double lon, double lat) => SetPosition(lon, lat); public void SetArea(List coordinatesList) => SetPolygon(coordinatesList); @@ -26,14 +29,12 @@ private void SetPosition(double lon, double lat) { Latitude = lat; Longitude = lon; - Location = new GeoJsonPoint( - new GeoJson2DGeographicCoordinates(lon, lat)); + Location = new LocationPoint(lon, lat); } private void SetPolygon(List coordinatesList) { - Polygon = new GeoJsonPolygon(new GeoJsonPolygonCoordinates( - new GeoJsonLinearRingCoordinates(coordinatesList))); + Polygon = new LocationPolygon(coordinatesList); } } } diff --git a/src/Services/Location/Locations.API/Startup.cs b/src/Services/Location/Locations.API/Startup.cs index ff7c794169..3620da2095 100644 --- a/src/Services/Location/Locations.API/Startup.cs +++ b/src/Services/Location/Locations.API/Startup.cs @@ -154,7 +154,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { //loggerFactory.AddAzureWebAppDiagnostics(); //loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); @@ -167,10 +167,9 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseCors("CorsPolicy"); + app.UseRouting(); ConfigureAuth(app); - app.UseAuthorization(); - app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); @@ -230,6 +229,7 @@ protected virtual void ConfigureAuth(IApplicationBuilder app) } app.UseAuthentication(); + app.UseAuthorization(); } private void RegisterEventBus(IServiceCollection services) diff --git a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj index dd1432b487..788f44ede7 100644 --- a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj +++ b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj @@ -17,8 +17,7 @@ - - + @@ -26,7 +25,7 @@ all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Location/Locations.FunctionalTests/LocationsScenarios.cs b/src/Services/Location/Locations.FunctionalTests/LocationsScenarios.cs index d08f777fd8..6e625a2570 100644 --- a/src/Services/Location/Locations.FunctionalTests/LocationsScenarios.cs +++ b/src/Services/Location/Locations.FunctionalTests/LocationsScenarios.cs @@ -12,37 +12,37 @@ namespace Locations.FunctionalTests public class LocationsScenarios : LocationsScenarioBase { - [Fact] - public async Task Set_new_user_seattle_location_response_ok_status_code() - { - using (var server = CreateServer()) - { - var userId = "4611ce3f-380d-4db5-8d76-87a8689058ed"; - var content = new StringContent(BuildLocationsRequest(-122.315752, 47.604610), UTF8Encoding.UTF8, "application/json"); + //[Fact] + //public async Task Set_new_user_seattle_location_response_ok_status_code() + //{ + // using (var server = CreateServer()) + // { + // var userId = "4611ce3f-380d-4db5-8d76-87a8689058ed"; + // var content = new StringContent(BuildLocationsRequest(-122.315752, 47.604610), UTF8Encoding.UTF8, "application/json"); - // Expected result - var expectedLocation = "SEAT"; + // // Expected result + // var expectedLocation = "SEAT"; - // Act - var response = await server.CreateClient() - .PostAsync(Post.AddNewLocation, content); + // // Act + // var response = await server.CreateClient() + // .PostAsync(Post.AddNewLocation, content); - var userLocationResponse = await server.CreateClient() - .GetAsync(Get.UserLocationBy(userId)); + // var userLocationResponse = await server.CreateClient() + // .GetAsync(Get.UserLocationBy(userId)); - var responseBody = await userLocationResponse.Content.ReadAsStringAsync(); - var userLocation = JsonConvert.DeserializeObject(responseBody); + // var responseBody = await userLocationResponse.Content.ReadAsStringAsync(); + // var userLocation = JsonConvert.DeserializeObject(responseBody); - var locationResponse = await server.CreateClient() - .GetAsync(Get.LocationBy(userLocation.LocationId)); + // var locationResponse = await server.CreateClient() + // .GetAsync(Get.LocationBy(userLocation.LocationId)); - responseBody = await locationResponse.Content.ReadAsStringAsync(); - var location = JsonConvert.DeserializeObject(responseBody); + // responseBody = await locationResponse.Content.ReadAsStringAsync(); + // var location = JsonConvert.DeserializeObject(responseBody); - // Assert - Assert.Equal(expectedLocation, location.Code); - } - } + // // Assert + // Assert.Equal(expectedLocation, location.Code); + // } + //} [Fact] public async Task Set_new_user_readmond_location_response_ok_status_code() @@ -52,53 +52,24 @@ public async Task Set_new_user_readmond_location_response_ok_status_code() var userId = "4611ce3f-380d-4db5-8d76-87a8689058ed"; var content = new StringContent(BuildLocationsRequest(-122.119998, 47.690876), UTF8Encoding.UTF8, "application/json"); + var client = server.CreateClient(); + // Expected result var expectedLocation = "REDM"; // Act - var response = await server.CreateClient() - .PostAsync(Post.AddNewLocation, content); - - var userLocationResponse = await server.CreateClient() - .GetAsync(Get.UserLocationBy(userId)); - - var responseBody = await userLocationResponse.Content.ReadAsStringAsync(); - var userLocation = JsonConvert.DeserializeObject(responseBody); - - var locationResponse = await server.CreateClient() - .GetAsync(Get.LocationBy(userLocation.LocationId)); - - responseBody = await locationResponse.Content.ReadAsStringAsync(); - var location = JsonConvert.DeserializeObject(responseBody); - // Assert - Assert.Equal(expectedLocation, location.Code); - } - } - - [Fact] - public async Task Set_new_user_Washington_location_response_ok_status_code() - { - using (var server = CreateServer()) - { - var userId = "4611ce3f-380d-4db5-8d76-87a8689058ed"; - var content = new StringContent(BuildLocationsRequest(-121.040360, 48.091631), UTF8Encoding.UTF8, "application/json"); - - // Expected result - var expectedLocation = "WHT"; + var response = await client.PostAsync(Post.AddNewLocation, content); - // Act - var response = await server.CreateClient() - .PostAsync(Post.AddNewLocation, content); - - var userLocationResponse = await server.CreateClient() - .GetAsync(Get.UserLocationBy(userId)); + var userLocationResponse = await client.GetAsync(Get.UserLocationBy(userId)); + userLocationResponse.EnsureSuccessStatusCode(); var responseBody = await userLocationResponse.Content.ReadAsStringAsync(); var userLocation = JsonConvert.DeserializeObject(responseBody); - var locationResponse = await server.CreateClient() - .GetAsync(Get.LocationBy(userLocation.LocationId)); + Assert.NotNull(userLocation); + + var locationResponse = await client.GetAsync(Get.LocationBy(userLocation.LocationId)); responseBody = await locationResponse.Content.ReadAsStringAsync(); var location = JsonConvert.DeserializeObject(responseBody); @@ -108,21 +79,53 @@ public async Task Set_new_user_Washington_location_response_ok_status_code() } } - [Fact] - public async Task Get_all_locations_response_ok_status_code() - { - using (var server = CreateServer()) - { - var response = await server.CreateClient() - .GetAsync(Get.Locations); - - var responseBody = await response.Content.ReadAsStringAsync(); - var locations = JsonConvert.DeserializeObject>(responseBody); - - // Assert - Assert.NotEmpty(locations); - } - } + //[Fact] + //public async Task Set_new_user_Washington_location_response_ok_status_code() + //{ + // using (var server = CreateServer()) + // { + // var userId = "4611ce3f-380d-4db5-8d76-87a8689058ed"; + // var content = new StringContent(BuildLocationsRequest(-121.040360, 48.091631), UTF8Encoding.UTF8, "application/json"); + + // // Expected result + // var expectedLocation = "WHT"; + + // // Act + // var response = await server.CreateClient() + // .PostAsync(Post.AddNewLocation, content); + + // var userLocationResponse = await server.CreateClient() + // .GetAsync(Get.UserLocationBy(userId)); + + // var responseBody = await userLocationResponse.Content.ReadAsStringAsync(); + // var userLocation = JsonConvert.DeserializeObject(responseBody); + + // var locationResponse = await server.CreateClient() + // .GetAsync(Get.LocationBy(userLocation.LocationId)); + + // responseBody = await locationResponse.Content.ReadAsStringAsync(); + // var location = JsonConvert.DeserializeObject(responseBody); + + // // Assert + // Assert.Equal(expectedLocation, location.Code); + // } + //} + + //[Fact] + //public async Task Get_all_locations_response_ok_status_code() + //{ + // using (var server = CreateServer()) + // { + // var response = await server.CreateClient() + // .GetAsync(Get.Locations); + + // var responseBody = await response.Content.ReadAsStringAsync(); + // var locations = JsonConvert.DeserializeObject>(responseBody); + + // // Assert + // Assert.NotEmpty(locations); + // } + //} string BuildLocationsRequest(double lon, double lat) { diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 18f81d6b35..7f81abf62a 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -56,7 +56,7 @@ 1.0.0 2.2.0 3.0.0-preview6.19307.2 - 3.0.0-preview6.19307.2 + 3.0.0-preview7.19365.7 3.0.0-preview7.19365.7 3.0.0-preview7.19365.7 3.0.0-preview4-19123-01 @@ -80,10 +80,10 @@ 2.2.0 3.0.0-preview7.19362.4 16.0.1 - 2.5.0 - 2.5.0 - 2.5.0 - 2.5.0 + 2.9.0-beta2 + 2.9.0-beta2 + 2.9.0-beta2 + 2.9.0-beta2 4.10.1 12.0.2 12.0.1 From c94304f26eafe74efc42152b74fd380967f5a54a Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Mon, 29 Jul 2019 14:44:32 +0200 Subject: [PATCH 032/149] #74197 Order Background Service to Service Worker --- eShopOnContainers-ServicesAndWebApps.sln | 51 ----------- .../Tasks/GracePeriodManagerTask.cs | 90 +++++++++++++++++++ .../Ordering/Ordering.API/OrderingSettings.cs | 3 + src/Services/Ordering/Ordering.API/Program.cs | 4 +- .../Ordering/Ordering.API/appsettings.json | 1 + 5 files changed, 97 insertions(+), 52 deletions(-) create mode 100644 src/Services/Ordering/Ordering.API/Infrastructure/Tasks/GracePeriodManagerTask.cs diff --git a/eShopOnContainers-ServicesAndWebApps.sln b/eShopOnContainers-ServicesAndWebApps.sln index 4bf2fa51d9..75cf60baec 100644 --- a/eShopOnContainers-ServicesAndWebApps.sln +++ b/eShopOnContainers-ServicesAndWebApps.sln @@ -102,8 +102,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mobile.Shopping.HttpAggrega EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Web.Shopping.HttpAggregator", "src\ApiGateways\Web.Bff.Shopping\aggregator\Web.Shopping.HttpAggregator.csproj", "{AF0828DB-8BDD-411A-AEEF-B780FBB8D8C1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.BackgroundTasks", "src\Services\Ordering\Ordering.BackgroundTasks\Ordering.BackgroundTasks.csproj", "{7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.SignalrHub", "src\Services\Ordering\Ordering.SignalrHub\Ordering.SignalrHub.csproj", "{E1D2B260-4E7F-4A88-BC13-9910F7C44623}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.UnitTests", "src\Services\Basket\Basket.UnitTests\Basket.UnitTests.csproj", "{9D9CE4E4-1DD0-4961-861F-219731DE06CE}" @@ -1041,54 +1039,6 @@ Global {AF0828DB-8BDD-411A-AEEF-B780FBB8D8C1}.Release|x64.Build.0 = Release|Any CPU {AF0828DB-8BDD-411A-AEEF-B780FBB8D8C1}.Release|x86.ActiveCfg = Release|Any CPU {AF0828DB-8BDD-411A-AEEF-B780FBB8D8C1}.Release|x86.Build.0 = Release|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.AppStore|ARM.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.AppStore|iPhone.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.AppStore|x64.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.AppStore|x64.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.AppStore|x86.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.AppStore|x86.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Debug|ARM.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Debug|ARM.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Debug|iPhone.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Debug|x64.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Debug|x64.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Debug|x86.ActiveCfg = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Debug|x86.Build.0 = Debug|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Release|Any CPU.Build.0 = Release|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Release|ARM.ActiveCfg = Release|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Release|ARM.Build.0 = Release|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Release|iPhone.ActiveCfg = Release|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Release|iPhone.Build.0 = Release|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Release|x64.ActiveCfg = Release|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Release|x64.Build.0 = Release|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Release|x86.ActiveCfg = Release|Any CPU - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931}.Release|x86.Build.0 = Release|Any CPU {E1D2B260-4E7F-4A88-BC13-9910F7C44623}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU {E1D2B260-4E7F-4A88-BC13-9910F7C44623}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU {E1D2B260-4E7F-4A88-BC13-9910F7C44623}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU @@ -1851,7 +1801,6 @@ Global {3F79558C-485D-49E1-BD3E-E12538D3D308} = {EC91ADE9-3D66-4AB2-9FB4-2B585E1F3531} {BEA37D6D-4CF2-4AE8-9575-72388E54FBD0} = {0189E4FB-6E2B-4F2E-9B1D-5473D23FC6DB} {AF0828DB-8BDD-411A-AEEF-B780FBB8D8C1} = {28C0F5C8-4849-4035-80AB-45639424E73F} - {7D63ED4A-3EDA-4BBA-8BBA-F46BD6430931} = {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} {E1D2B260-4E7F-4A88-BC13-9910F7C44623} = {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} {9D9CE4E4-1DD0-4961-861F-219731DE06CE} = {2751AC5C-D148-4D7A-AE8F-149B47C9A82D} {791961C7-3F3E-434E-B2BA-B4D6B5E222B0} = {5FB21302-3973-4992-962A-6F87F5EC99FD} diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/Tasks/GracePeriodManagerTask.cs b/src/Services/Ordering/Ordering.API/Infrastructure/Tasks/GracePeriodManagerTask.cs new file mode 100644 index 0000000000..740d1aa30b --- /dev/null +++ b/src/Services/Ordering/Ordering.API/Infrastructure/Tasks/GracePeriodManagerTask.cs @@ -0,0 +1,90 @@ +using Dapper; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; +using Microsoft.eShopOnContainers.Services.Ordering.API; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Ordering.API.Application.IntegrationEvents.Events; +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using System.Threading; +using System.Threading.Tasks; + +namespace Ordering.API.Infrastructure.Tasks +{ + public class GracePeriodManagerService : BackgroundService + { + private readonly ILogger _logger; + private readonly OrderingSettings _settings; + private readonly IEventBus _eventBus; + + public GracePeriodManagerService(IOptions settings, IEventBus eventBus, ILogger logger) + { + _settings = settings?.Value ?? throw new ArgumentNullException(nameof(settings)); + _eventBus = eventBus ?? throw new ArgumentNullException(nameof(eventBus)); + _logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + protected override async Task ExecuteAsync(CancellationToken stoppingToken) + { + _logger.LogDebug("GracePeriodManagerService is starting."); + + stoppingToken.Register(() => _logger.LogDebug("#1 GracePeriodManagerService background task is stopping.")); + + while (!stoppingToken.IsCancellationRequested) + { + _logger.LogDebug("GracePeriodManagerService background task is doing background work."); + + CheckConfirmedGracePeriodOrders(); + + await Task.Delay(_settings.CheckUpdateTime, stoppingToken); + } + + _logger.LogDebug("GracePeriodManagerService background task is stopping."); + + await Task.CompletedTask; + } + + private void CheckConfirmedGracePeriodOrders() + { + _logger.LogDebug("Checking confirmed grace period orders"); + + var orderIds = GetConfirmedGracePeriodOrders(); + + foreach (var orderId in orderIds) + { + var confirmGracePeriodEvent = new GracePeriodConfirmedIntegrationEvent(orderId); + + _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", confirmGracePeriodEvent.Id, Program.AppName, confirmGracePeriodEvent); + + _eventBus.Publish(confirmGracePeriodEvent); + } + } + + private IEnumerable GetConfirmedGracePeriodOrders() + { + IEnumerable orderIds = new List(); + + using (var conn = new SqlConnection(_settings.ConnectionString)) + { + try + { + conn.Open(); + orderIds = conn.Query( + @"SELECT Id FROM [ordering].[orders] + WHERE DATEDIFF(minute, [OrderDate], GETDATE()) >= @GracePeriodTime + AND [OrderStatusId] = 1", + new { _settings.GracePeriodTime }); + } + catch (SqlException exception) + { + _logger.LogCritical(exception, "FATAL ERROR: Database connections could not be opened: {Message}", exception.Message); + } + + } + + return orderIds; + } + } +} diff --git a/src/Services/Ordering/Ordering.API/OrderingSettings.cs b/src/Services/Ordering/Ordering.API/OrderingSettings.cs index af38823ae7..7459bfd1cf 100644 --- a/src/Services/Ordering/Ordering.API/OrderingSettings.cs +++ b/src/Services/Ordering/Ordering.API/OrderingSettings.cs @@ -3,10 +3,13 @@ public class OrderingSettings { public bool UseCustomizationData { get; set; } + public string ConnectionString { get; set; } public string EventBusConnection { get; set; } + public int GracePeriodTime { get; set; } + public int CheckUpdateTime { get; set; } } } diff --git a/src/Services/Ordering/Ordering.API/Program.cs b/src/Services/Ordering/Ordering.API/Program.cs index a0b7dc40e4..251a9cbf5c 100644 --- a/src/Services/Ordering/Ordering.API/Program.cs +++ b/src/Services/Ordering/Ordering.API/Program.cs @@ -7,6 +7,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; +using Ordering.API.Infrastructure.Tasks; using Serilog; using System; using System.IO; @@ -62,13 +63,14 @@ private static IWebHost BuildWebHost(IConfiguration configuration, string[] args WebHost.CreateDefaultBuilder(args) .CaptureStartupErrors(false) .UseStartup() + .ConfigureServices(service => service.AddHostedService()) .UseApplicationInsights() .UseContentRoot(Directory.GetCurrentDirectory()) .UseConfiguration(configuration) .UseSerilog() .Build(); - private static Serilog.ILogger CreateSerilogLogger(IConfiguration configuration) + private static Serilog.ILogger CreateSerilogLogger(IConfiguration configuration) { var seqServerUrl = configuration["Serilog:SeqServerUrl"]; var logstashUrl = configuration["Serilog:LogstashgUrl"]; diff --git a/src/Services/Ordering/Ordering.API/appsettings.json b/src/Services/Ordering/Ordering.API/appsettings.json index f74c312b18..4ef8f6ac4b 100644 --- a/src/Services/Ordering/Ordering.API/appsettings.json +++ b/src/Services/Ordering/Ordering.API/appsettings.json @@ -16,6 +16,7 @@ }, "AzureServiceBusEnabled": false, "SubscriptionClientName": "Ordering", + "GracePeriodTime": "1", "CheckUpdateTime": "30000", "ApplicationInsights": { "InstrumentationKey": "" From de36e8c09e0f7d9d90a3d56f4d1fb0d81aeefe41 Mon Sep 17 00:00:00 2001 From: ericuss Date: Tue, 30 Jul 2019 10:56:14 +0200 Subject: [PATCH 033/149] Migrate locations.functionaltest to 3.0 --- .../Location/Locations.API/Model/Locations.cs | 6 +- .../Location/Locations.API/Startup.cs | 12 +- .../LocationTestsStartup.cs | 13 +- .../Locations.FunctionalTests.csproj | 2 +- .../LocationsScenarios.cs | 142 +++++++++--------- .../appsettings.json | 3 +- 6 files changed, 97 insertions(+), 81 deletions(-) diff --git a/src/Services/Location/Locations.API/Model/Locations.cs b/src/Services/Location/Locations.API/Model/Locations.cs index ae6672345c..ba3dbe62c1 100644 --- a/src/Services/Location/Locations.API/Model/Locations.cs +++ b/src/Services/Location/Locations.API/Model/Locations.cs @@ -18,10 +18,12 @@ public class Locations public string Description { get; set; } public double Latitude { get; set; } public double Longitude { get; set; } - //public GeoJsonPoint Location { get; private set; } public LocationPoint Location { get; private set; } public LocationPolygon Polygon { get; private set; } - //public GeoJsonPolygon Polygon { get; private set; } + + // Temporal commented in previewVersion7 of netcore and 2.9.0-beta2 of Mongo packages, review in next versions + // public GeoJsonPoint Location { get; private set; } + // public GeoJsonPolygon Polygon { get; private set; } public void SetLocation(double lon, double lat) => SetPosition(lon, lat); public void SetArea(List coordinatesList) => SetPolygon(coordinatesList); diff --git a/src/Services/Location/Locations.API/Startup.cs b/src/Services/Location/Locations.API/Startup.cs index 3620da2095..5deaae52d4 100644 --- a/src/Services/Location/Locations.API/Startup.cs +++ b/src/Services/Location/Locations.API/Startup.cs @@ -1,6 +1,7 @@ using Autofac; using Autofac.Extensions.DependencyInjection; using HealthChecks.UI.Client; +using Locations.API.Controllers; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; @@ -37,17 +38,18 @@ public Startup(IConfiguration configuration) public IConfiguration Configuration { get; } - public IServiceProvider ConfigureServices(IServiceCollection services) + public virtual IServiceProvider ConfigureServices(IServiceCollection services) { RegisterAppInsights(services); services.AddCustomHealthCheck(Configuration); services.AddControllers(options => - { - options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - - }).AddNewtonsoftJson(); + { + options.Filters.Add(typeof(HttpGlobalExceptionFilter)); + }) + .AddApplicationPart(typeof(LocationsController).Assembly) + .AddNewtonsoftJson(); ConfigureAuthService(services); diff --git a/src/Services/Location/Locations.FunctionalTests/LocationTestsStartup.cs b/src/Services/Location/Locations.FunctionalTests/LocationTestsStartup.cs index 21d0814a03..08bf2ffa50 100644 --- a/src/Services/Location/Locations.FunctionalTests/LocationTestsStartup.cs +++ b/src/Services/Location/Locations.FunctionalTests/LocationTestsStartup.cs @@ -1,7 +1,11 @@ -using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Routing; using Microsoft.eShopOnContainers.Services.Locations.API; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using System; using System.Security.Claims; using System.Threading.Tasks; @@ -13,6 +17,13 @@ public LocationsTestsStartup(IConfiguration env) : base(env) { } + public override IServiceProvider ConfigureServices(IServiceCollection services) + { + // Added to avoid the Authorize data annotation in test environment. + // Property "SuppressCheckForUnhandledSecurityMetadata" in appsettings.json + services.Configure(Configuration); + return base.ConfigureServices(services); + } protected override void ConfigureAuth(IApplicationBuilder app) { if (Configuration["isTest"] == bool.TrueString.ToLowerInvariant()) diff --git a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj index 788f44ede7..8b60d00014 100644 --- a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj +++ b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj @@ -2,7 +2,7 @@ $(NetCoreTargetVersion) - + false false diff --git a/src/Services/Location/Locations.FunctionalTests/LocationsScenarios.cs b/src/Services/Location/Locations.FunctionalTests/LocationsScenarios.cs index 6e625a2570..5f8c90dfda 100644 --- a/src/Services/Location/Locations.FunctionalTests/LocationsScenarios.cs +++ b/src/Services/Location/Locations.FunctionalTests/LocationsScenarios.cs @@ -12,37 +12,37 @@ namespace Locations.FunctionalTests public class LocationsScenarios : LocationsScenarioBase { - //[Fact] - //public async Task Set_new_user_seattle_location_response_ok_status_code() - //{ - // using (var server = CreateServer()) - // { - // var userId = "4611ce3f-380d-4db5-8d76-87a8689058ed"; - // var content = new StringContent(BuildLocationsRequest(-122.315752, 47.604610), UTF8Encoding.UTF8, "application/json"); + [Fact] + public async Task Set_new_user_seattle_location_response_ok_status_code() + { + using (var server = CreateServer()) + { + var userId = "4611ce3f-380d-4db5-8d76-87a8689058ed"; + var content = new StringContent(BuildLocationsRequest(-122.315752, 47.604610), UTF8Encoding.UTF8, "application/json"); - // // Expected result - // var expectedLocation = "SEAT"; + // Expected result + var expectedLocation = "SEAT"; - // // Act - // var response = await server.CreateClient() - // .PostAsync(Post.AddNewLocation, content); + // Act + var response = await server.CreateClient() + .PostAsync(Post.AddNewLocation, content); - // var userLocationResponse = await server.CreateClient() - // .GetAsync(Get.UserLocationBy(userId)); + var userLocationResponse = await server.CreateClient() + .GetAsync(Get.UserLocationBy(userId)); - // var responseBody = await userLocationResponse.Content.ReadAsStringAsync(); - // var userLocation = JsonConvert.DeserializeObject(responseBody); + var responseBody = await userLocationResponse.Content.ReadAsStringAsync(); + var userLocation = JsonConvert.DeserializeObject(responseBody); - // var locationResponse = await server.CreateClient() - // .GetAsync(Get.LocationBy(userLocation.LocationId)); + var locationResponse = await server.CreateClient() + .GetAsync(Get.LocationBy(userLocation.LocationId)); - // responseBody = await locationResponse.Content.ReadAsStringAsync(); - // var location = JsonConvert.DeserializeObject(responseBody); + responseBody = await locationResponse.Content.ReadAsStringAsync(); + var location = JsonConvert.DeserializeObject(responseBody); - // // Assert - // Assert.Equal(expectedLocation, location.Code); - // } - //} + // Assert + Assert.Equal(expectedLocation, location.Code); + } + } [Fact] public async Task Set_new_user_readmond_location_response_ok_status_code() @@ -79,53 +79,53 @@ public async Task Set_new_user_readmond_location_response_ok_status_code() } } - //[Fact] - //public async Task Set_new_user_Washington_location_response_ok_status_code() - //{ - // using (var server = CreateServer()) - // { - // var userId = "4611ce3f-380d-4db5-8d76-87a8689058ed"; - // var content = new StringContent(BuildLocationsRequest(-121.040360, 48.091631), UTF8Encoding.UTF8, "application/json"); - - // // Expected result - // var expectedLocation = "WHT"; - - // // Act - // var response = await server.CreateClient() - // .PostAsync(Post.AddNewLocation, content); - - // var userLocationResponse = await server.CreateClient() - // .GetAsync(Get.UserLocationBy(userId)); - - // var responseBody = await userLocationResponse.Content.ReadAsStringAsync(); - // var userLocation = JsonConvert.DeserializeObject(responseBody); - - // var locationResponse = await server.CreateClient() - // .GetAsync(Get.LocationBy(userLocation.LocationId)); - - // responseBody = await locationResponse.Content.ReadAsStringAsync(); - // var location = JsonConvert.DeserializeObject(responseBody); - - // // Assert - // Assert.Equal(expectedLocation, location.Code); - // } - //} - - //[Fact] - //public async Task Get_all_locations_response_ok_status_code() - //{ - // using (var server = CreateServer()) - // { - // var response = await server.CreateClient() - // .GetAsync(Get.Locations); - - // var responseBody = await response.Content.ReadAsStringAsync(); - // var locations = JsonConvert.DeserializeObject>(responseBody); - - // // Assert - // Assert.NotEmpty(locations); - // } - //} + [Fact] + public async Task Set_new_user_Washington_location_response_ok_status_code() + { + using (var server = CreateServer()) + { + var userId = "4611ce3f-380d-4db5-8d76-87a8689058ed"; + var content = new StringContent(BuildLocationsRequest(-121.040360, 48.091631), UTF8Encoding.UTF8, "application/json"); + + // Expected result + var expectedLocation = "WHT"; + + // Act + var response = await server.CreateClient() + .PostAsync(Post.AddNewLocation, content); + + var userLocationResponse = await server.CreateClient() + .GetAsync(Get.UserLocationBy(userId)); + + var responseBody = await userLocationResponse.Content.ReadAsStringAsync(); + var userLocation = JsonConvert.DeserializeObject(responseBody); + + var locationResponse = await server.CreateClient() + .GetAsync(Get.LocationBy(userLocation.LocationId)); + + responseBody = await locationResponse.Content.ReadAsStringAsync(); + var location = JsonConvert.DeserializeObject(responseBody); + + // Assert + Assert.Equal(expectedLocation, location.Code); + } + } + + [Fact] + public async Task Get_all_locations_response_ok_status_code() + { + using (var server = CreateServer()) + { + var response = await server.CreateClient() + .GetAsync(Get.Locations); + + var responseBody = await response.Content.ReadAsStringAsync(); + var locations = JsonConvert.DeserializeObject>(responseBody); + + // Assert + Assert.NotEmpty(locations); + } + } string BuildLocationsRequest(double lon, double lat) { diff --git a/src/Services/Location/Locations.FunctionalTests/appsettings.json b/src/Services/Location/Locations.FunctionalTests/appsettings.json index 398cd54c0b..6880b2ee1d 100644 --- a/src/Services/Location/Locations.FunctionalTests/appsettings.json +++ b/src/Services/Location/Locations.FunctionalTests/appsettings.json @@ -5,5 +5,6 @@ "IdentityUrl": "http://localhost:5105", "isTest": "true", "EventBusConnection": "localhost", - "SubscriptionClientName": "Locations" + "SubscriptionClientName": "Locations", + "SuppressCheckForUnhandledSecurityMetadata":true } From e1b21abe94d77c1ed91552f7674b57b044996f3c Mon Sep 17 00:00:00 2001 From: ericuss Date: Tue, 30 Jul 2019 11:14:16 +0200 Subject: [PATCH 034/149] Remove unused project --- .../Configuration/BackgroundTaskSettings.cs | 13 -- .../Ordering.BackgroundTasks/Dockerfile | 25 --- .../Dockerfile.develop | 18 -- .../GracePeriodConfirmedIntegrationEvent.cs | 12 -- .../Ordering.BackgroundTasks.csproj | 42 ---- .../Ordering.BackgroundTasks/Program.cs | 76 ------- .../Properties/launchSettings.json | 29 --- .../Ordering.BackgroundTasks/Startup.cs | 199 ------------------ .../Tasks/GracePeriodManagerTask.cs | 95 --------- .../appsettings.Development.json | 10 - .../Ordering.BackgroundTasks/appsettings.json | 26 --- .../Ordering.BackgroundTasks/azds.yaml | 56 ----- 12 files changed, 601 deletions(-) delete mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Configuration/BackgroundTaskSettings.cs delete mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile delete mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile.develop delete mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/IntegrationEvents/GracePeriodConfirmedIntegrationEvent.cs delete mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj delete mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Program.cs delete mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Properties/launchSettings.json delete mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs delete mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs delete mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/appsettings.Development.json delete mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/appsettings.json delete mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/azds.yaml diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Configuration/BackgroundTaskSettings.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Configuration/BackgroundTaskSettings.cs deleted file mode 100644 index 2b42f60841..0000000000 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Configuration/BackgroundTaskSettings.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Ordering.BackgroundTasks.Configuration -{ - public class BackgroundTaskSettings - { - public string ConnectionString { get; set; } - - public string EventBusConnection { get; set; } - - public int GracePeriodTime { get; set; } - - public int CheckUpdateTime { get; set; } - } -} diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile deleted file mode 100644 index 820f8d4b1c..0000000000 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base -WORKDIR /app -EXPOSE 80 - -FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build -WORKDIR /src - -COPY scripts scripts/ - -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ - -COPY . . -WORKDIR /src/src/Services/Ordering/Ordering.BackgroundTasks -RUN dotnet publish -c Release -o /app - -FROM build AS publish - -FROM base AS final -WORKDIR /app -COPY --from=publish /app . -ENTRYPOINT ["dotnet", "Ordering.BackgroundTasks.dll"] \ No newline at end of file diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile.develop b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile.develop deleted file mode 100644 index 5f5d002db6..0000000000 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile.develop +++ /dev/null @@ -1,18 +0,0 @@ -FROM microsoft/dotnet:2.2-sdk -ARG BUILD_CONFIGURATION=Debug -ENV ASPNETCORE_ENVIRONMENT=Development -ENV DOTNET_USE_POLLING_FILE_WATCHER=true -EXPOSE 80 - -WORKDIR /src -COPY ["src/BuildingBlocks/EventBus/EventBus/EventBus.csproj", "src/BuildingBlocks/EventBus/EventBus/"] -COPY ["src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "src/BuildingBlocks/EventBus/EventBusRabbitMQ/"] -COPY ["src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "src/BuildingBlocks/EventBus/EventBusServiceBus/"] -COPY ["src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj", "src/Services/Ordering/Ordering.BackgroundTasks/"] - -RUN dotnet restore src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj -COPY . . -WORKDIR /src/src/Services/Ordering/Ordering.BackgroundTasks -RUN dotnet build --no-restore -c $BUILD_CONFIGURATION - -ENTRYPOINT ["dotnet", "run", "--no-build", "--no-launch-profile", "-c", "$BUILD_CONFIGURATION", "--"] \ No newline at end of file diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/IntegrationEvents/GracePeriodConfirmedIntegrationEvent.cs b/src/Services/Ordering/Ordering.BackgroundTasks/IntegrationEvents/GracePeriodConfirmedIntegrationEvent.cs deleted file mode 100644 index df008ad906..0000000000 --- a/src/Services/Ordering/Ordering.BackgroundTasks/IntegrationEvents/GracePeriodConfirmedIntegrationEvent.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; - -namespace Ordering.BackgroundTasks.IntegrationEvents -{ - public class GracePeriodConfirmedIntegrationEvent : IntegrationEvent - { - public int OrderId { get; } - - public GracePeriodConfirmedIntegrationEvent(int orderId) => - OrderId = orderId; - } -} diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj deleted file mode 100644 index 3cca3adb77..0000000000 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj +++ /dev/null @@ -1,42 +0,0 @@ - - - - $(NetCoreTargetVersion) - $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; - ..\..\..\..\docker-compose.dcproj - false - true - $(LangVersion) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs deleted file mode 100644 index 7a429742ed..0000000000 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs +++ /dev/null @@ -1,76 +0,0 @@ -using Microsoft.AspNetCore; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Logging; -using Serilog; -using System; -using System.IO; - -namespace Ordering.BackgroundTasks -{ - public class Program - { - public static readonly string Namespace = typeof(Program).Namespace; - public static readonly string AppName = Namespace; - - public static int Main(string[] args) - { - var configuration = GetConfiguration(); - - Log.Logger = CreateSerilogLogger(configuration); - - try - { - Log.Information("Configuring web host ({ApplicationContext})...", AppName); - var host = BuildWebHost(configuration, args); - - Log.Information("Starting web host ({ApplicationContext})...", AppName); - host.Run(); - - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, "Program terminated unexpectedly ({ApplicationContext})!", AppName); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } - - private static IWebHost BuildWebHost(IConfiguration configuration, string[] args) => - WebHost.CreateDefaultBuilder(args) - .CaptureStartupErrors(false) - .UseStartup() - .UseConfiguration(configuration) - .UseSerilog() - .Build(); - - private static Serilog.ILogger CreateSerilogLogger(IConfiguration configuration) - { - var seqServerUrl = configuration["Serilog:SeqServerUrl"]; - var logstashUrl = configuration["Serilog:LogstashgUrl"]; - return new LoggerConfiguration() - .MinimumLevel.Verbose() - .Enrich.WithProperty("ApplicationContext", AppName) - .Enrich.FromLogContext() - .WriteTo.Console() - .WriteTo.Seq(string.IsNullOrWhiteSpace(seqServerUrl) ? "http://seq" : seqServerUrl) - .WriteTo.Http(string.IsNullOrWhiteSpace(logstashUrl) ? "http://logstash:8080" : logstashUrl) - .ReadFrom.Configuration(configuration) - .CreateLogger(); - } - - private static IConfiguration GetConfiguration() - { - var builder = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) - .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) - .AddEnvironmentVariables(); - - return builder.Build(); - } - } -} diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Properties/launchSettings.json b/src/Services/Ordering/Ordering.BackgroundTasks/Properties/launchSettings.json deleted file mode 100644 index 6d60a7d282..0000000000 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Properties/launchSettings.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:5161/", - "sslPort": 0 - } - }, - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "launchUrl": "api/values", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "Ordering.BackgroundTasks": { - "commandName": "Project", - "launchBrowser": true, - "launchUrl": "api/values", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "applicationUrl": "http://localhost:5162/" - } - } -} diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs deleted file mode 100644 index 6035beaeb8..0000000000 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs +++ /dev/null @@ -1,199 +0,0 @@ -using Autofac; -using Autofac.Extensions.DependencyInjection; -using HealthChecks.UI.Client; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Diagnostics.HealthChecks; -using Microsoft.Azure.ServiceBus; -using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; -using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; -using Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ; -using Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Diagnostics.HealthChecks; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using Ordering.BackgroundTasks.Configuration; -using Ordering.BackgroundTasks.Tasks; -using RabbitMQ.Client; -using System; - -namespace Ordering.BackgroundTasks -{ - public class Startup - { - public Startup(IConfiguration configuration) - { - Configuration = configuration; - } - - public IConfiguration Configuration { get; } - - // This method gets called by the runtime. Use this method to add services to the container. - public IServiceProvider ConfigureServices(IServiceCollection services) - { - //add health check for this service - services.AddCustomHealthCheck(Configuration); - - //configure settings - - services.Configure(Configuration); - services.AddOptions(); - - //configure background task - - services.AddSingleton(); - - //configure event bus related services - - if (Configuration.GetValue("AzureServiceBusEnabled")) - { - services.AddSingleton(sp => - { - var logger = sp.GetRequiredService>(); - - var serviceBusConnectionString = Configuration["EventBusConnection"]; - var serviceBusConnection = new ServiceBusConnectionStringBuilder(serviceBusConnectionString); - - return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger); - }); - } - else - { - services.AddSingleton(sp => - { - var logger = sp.GetRequiredService>(); - - - var factory = new ConnectionFactory() - { - HostName = Configuration["EventBusConnection"], - DispatchConsumersAsync = true - }; - - if (!string.IsNullOrEmpty(Configuration["EventBusUserName"])) - { - factory.UserName = Configuration["EventBusUserName"]; - } - - if (!string.IsNullOrEmpty(Configuration["EventBusPassword"])) - { - factory.Password = Configuration["EventBusPassword"]; - } - - var retryCount = 5; - if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"])) - { - retryCount = int.Parse(Configuration["EventBusRetryCount"]); - } - - return new DefaultRabbitMQPersistentConnection(factory, logger, retryCount); - }); - } - - RegisterEventBus(services); - - //create autofac based service provider - var container = new ContainerBuilder(); - container.Populate(services); - - - return new AutofacServiceProvider(container.Build()); - } - - - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app) - { - app.UseRouting(); - app.UseEndpoints(endpoints => - { - endpoints.MapHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - endpoints.MapHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - }); - } - - - private void RegisterEventBus(IServiceCollection services) - { - var subscriptionClientName = Configuration["SubscriptionClientName"]; - - if (Configuration.GetValue("AzureServiceBusEnabled")) - { - services.AddSingleton(sp => - { - var serviceBusPersisterConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); - var logger = sp.GetRequiredService>(); - var eventBusSubcriptionsManager = sp.GetRequiredService(); - - return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); - }); - } - else - { - services.AddSingleton(sp => - { - var rabbitMQPersistentConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); - var logger = sp.GetRequiredService>(); - var eventBusSubcriptionsManager = sp.GetRequiredService(); - - var retryCount = 5; - if (!string.IsNullOrEmpty(Configuration["EventBusRetryCount"])) - { - retryCount = int.Parse(Configuration["EventBusRetryCount"]); - } - - return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); - }); - } - - services.AddSingleton(); - } - } - - public static class CustomExtensionMethods - { - public static IServiceCollection AddCustomHealthCheck(this IServiceCollection services, IConfiguration configuration) - { - var hcBuilder = services.AddHealthChecks(); - - hcBuilder.AddCheck("self", () => HealthCheckResult.Healthy()); - - hcBuilder - .AddSqlServer( - configuration["ConnectionString"], - name: "OrderingTaskDB-check", - tags: new string[] { "orderingtaskdb" }); - - if (configuration.GetValue("AzureServiceBusEnabled")) - { - hcBuilder - .AddAzureServiceBusTopic( - configuration["EventBusConnection"], - topicName: "eshop_event_bus", - name: "orderingtask-servicebus-check", - tags: new string[] { "servicebus" }); - } - else - { - hcBuilder - .AddRabbitMQ( - $"amqp://{configuration["EventBusConnection"]}", - name: "orderingtask-rabbitmqbus-check", - tags: new string[] { "rabbitmqbus" }); - } - - return services; - } - } -} diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs deleted file mode 100644 index 328fb95c44..0000000000 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs +++ /dev/null @@ -1,95 +0,0 @@ -using Dapper; -using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; -using Ordering.BackgroundTasks.Configuration; -using Ordering.BackgroundTasks.IntegrationEvents; -using System; -using System.Collections.Generic; -using System.Data.SqlClient; -using System.Threading; -using System.Threading.Tasks; - -namespace Ordering.BackgroundTasks.Tasks -{ - public class GracePeriodManagerService - : BackgroundService - { - private readonly ILogger _logger; - private readonly BackgroundTaskSettings _settings; - private readonly IEventBus _eventBus; - - public GracePeriodManagerService( - IOptions settings, - IEventBus eventBus, - ILogger logger) - { - _settings = settings?.Value ?? throw new ArgumentNullException(nameof(settings)); - _eventBus = eventBus ?? throw new ArgumentNullException(nameof(eventBus)); - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - - } - - protected override async Task ExecuteAsync(CancellationToken stoppingToken) - { - _logger.LogDebug("GracePeriodManagerService is starting."); - - stoppingToken.Register(() => _logger.LogDebug("#1 GracePeriodManagerService background task is stopping.")); - - while (!stoppingToken.IsCancellationRequested) - { - _logger.LogDebug("GracePeriodManagerService background task is doing background work."); - - CheckConfirmedGracePeriodOrders(); - - await Task.Delay(_settings.CheckUpdateTime, stoppingToken); - } - - _logger.LogDebug("GracePeriodManagerService background task is stopping."); - - await Task.CompletedTask; - } - - private void CheckConfirmedGracePeriodOrders() - { - _logger.LogDebug("Checking confirmed grace period orders"); - - var orderIds = GetConfirmedGracePeriodOrders(); - - foreach (var orderId in orderIds) - { - var confirmGracePeriodEvent = new GracePeriodConfirmedIntegrationEvent(orderId); - - _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", confirmGracePeriodEvent.Id, Program.AppName, confirmGracePeriodEvent); - - _eventBus.Publish(confirmGracePeriodEvent); - } - } - - private IEnumerable GetConfirmedGracePeriodOrders() - { - IEnumerable orderIds = new List(); - - using (var conn = new SqlConnection(_settings.ConnectionString)) - { - try - { - conn.Open(); - orderIds = conn.Query( - @"SELECT Id FROM [ordering].[orders] - WHERE DATEDIFF(minute, [OrderDate], GETDATE()) >= @GracePeriodTime - AND [OrderStatusId] = 1", - new { GracePeriodTime = _settings.GracePeriodTime }); - } - catch (SqlException exception) - { - _logger.LogCritical(exception, "FATAL ERROR: Database connections could not be opened: {Message}", exception.Message); - } - - } - - return orderIds; - } - } -} diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/appsettings.Development.json b/src/Services/Ordering/Ordering.BackgroundTasks/appsettings.Development.json deleted file mode 100644 index fa8ce71a97..0000000000 --- a/src/Services/Ordering/Ordering.BackgroundTasks/appsettings.Development.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Logging": { - "IncludeScopes": false, - "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" - } - } -} diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/appsettings.json b/src/Services/Ordering/Ordering.BackgroundTasks/appsettings.json deleted file mode 100644 index 51250be9dc..0000000000 --- a/src/Services/Ordering/Ordering.BackgroundTasks/appsettings.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "ConnectionString": "Server=tcp:127.0.0.1,5433;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word;", - "Serilog": { - "SeqServerUrl": null, - "LogstashgUrl": null, - "MinimumLevel": { - "Default": "Information", - "Override": { - "Microsoft": "Warning", - "Microsoft.eShopOnContainers": "Information", - "System": "Warning" - } - } - }, - "SubscriptionClientName": "BackgroundTasks", - "GracePeriodTime": "1", - "CheckUpdateTime": "1000", - "ApplicationInsights": { - "InstrumentationKey": "" - }, - "AzureServiceBusEnabled": false, - "EventBusRetryCount": 5, - "EventBusConnection": "", - "EventBusUserName": "", - "EventBusPassword": "" -} \ No newline at end of file diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/azds.yaml b/src/Services/Ordering/Ordering.BackgroundTasks/azds.yaml deleted file mode 100644 index e92eca09f3..0000000000 --- a/src/Services/Ordering/Ordering.BackgroundTasks/azds.yaml +++ /dev/null @@ -1,56 +0,0 @@ -kind: helm-release -apiVersion: 1.1 -build: - context: ..\..\..\.. - dockerfile: Dockerfile -install: - chart: ../../../../k8s/helm/ordering-backgroundtasks - set: - replicaCount: 1 - image: - tag: $(tag) - pullPolicy: Never - ingress: - annotations: - kubernetes.io/ingress.class: traefik-azds - hosts: - - $(spacePrefix)eshop$(hostSuffix) - inf: - k8s: - dns: $(spacePrefix)eshop$(hostSuffix) - values: - - values.dev.yaml? - - secrets.dev.yaml? - - inf.yaml - - app.yaml -configurations: - develop: - build: - useGitIgnore: true - dockerfile: Dockerfile.develop - args: - BUILD_CONFIGURATION: ${BUILD_CONFIGURATION:-Debug} - container: - sync: - - '**/Pages/**' - - '**/Views/**' - - '**/wwwroot/**' - - '!**/*.{sln,csproj}' - command: - - dotnet - - run - - --no-restore - - --no-build - - --no-launch-profile - - -c - - ${BUILD_CONFIGURATION:-Debug} - iterate: - processesToKill: - - dotnet - - vsdbg - buildCommands: - - - dotnet - - build - - --no-restore - - -c - - ${BUILD_CONFIGURATION:-Debug} From 17dd9cebb1fce9930c6a63aee50b3be4b474c763 Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 31 Jul 2019 09:12:12 +0200 Subject: [PATCH 035/149] remove all references of basket background --- build/acr-build/queue-all.ps1 | 1 - .../multiarch-manifests/create-manifests.ps1 | 2 +- docker-compose-windows.prod.yml | 11 --- docker-compose.override.windows.yml | 5 - docker-compose.override.yml | 23 ----- docker-compose.prod.yml | 20 ---- docker-compose.yml | 10 +- eShopOnContainers.sln | 2 - k8s/build-push-images.ps1 | 2 +- k8s/deploy.ps1 | 2 +- k8s/deployments.yaml | 64 ------------- k8s/helm/app.yaml | 1 - k8s/helm/deploy-all-istio.ps1 | 2 +- k8s/helm/deploy-all.ps1 | 2 +- k8s/helm/deploy-all.sh | 2 +- k8s/helm/istio/doc.md | 1 - k8s/helm/ordering-backgroundtasks/.helmignore | 21 ----- k8s/helm/ordering-backgroundtasks/Chart.yaml | 5 - .../templates/NOTES.txt | 3 - .../templates/_helpers.tpl | 32 ------- .../templates/_names.tpl | 51 ---------- .../templates/configmap.yaml | 21 ----- .../templates/deployment.yaml | 92 ------------------- .../templates/service.yaml | 19 ---- k8s/helm/ordering-backgroundtasks/values.yaml | 70 -------------- src/csproj-files.txt | 1 - src/prepare-devspaces.ps1 | 3 - 27 files changed, 7 insertions(+), 461 deletions(-) delete mode 100644 k8s/helm/ordering-backgroundtasks/.helmignore delete mode 100644 k8s/helm/ordering-backgroundtasks/Chart.yaml delete mode 100644 k8s/helm/ordering-backgroundtasks/templates/NOTES.txt delete mode 100644 k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl delete mode 100644 k8s/helm/ordering-backgroundtasks/templates/_names.tpl delete mode 100644 k8s/helm/ordering-backgroundtasks/templates/configmap.yaml delete mode 100644 k8s/helm/ordering-backgroundtasks/templates/deployment.yaml delete mode 100644 k8s/helm/ordering-backgroundtasks/templates/service.yaml delete mode 100644 k8s/helm/ordering-backgroundtasks/values.yaml diff --git a/build/acr-build/queue-all.ps1 b/build/acr-build/queue-all.ps1 index aacffea95e..60a39d92cc 100644 --- a/build/acr-build/queue-all.ps1 +++ b/build/acr-build/queue-all.ps1 @@ -13,7 +13,6 @@ $services = @( @{ Name="eshopcatalog"; Image="eshop/catalog.api"; File="src/Services/Catalog/Catalog.API/Dockerfile" }, @{ Name="eshopidentity"; Image="eshop/identity.api"; File="src/Services/Identity/Identity.API/Dockerfile" }, @{ Name="eshopordering"; Image="eshop/ordering.api"; File="src/Services/Ordering/Ordering.API/Dockerfile" }, - @{ Name="eshoporderingbg"; Image="eshop/ordering.backgroundtasks"; File="src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile" }, @{ Name="eshopmarketing"; Image="eshop/marketing.api"; File="src/Services/Marketing/Marketing.API/Dockerfile" }, @{ Name="eshopwebspa"; Image="eshop/webspa"; File="src/Web/WebSPA/Dockerfile" }, @{ Name="eshopwebmvc"; Image="eshop/webmvc"; File="src/Web/WebMVC/Dockerfile" }, diff --git a/build/multiarch-manifests/create-manifests.ps1 b/build/multiarch-manifests/create-manifests.ps1 index cc7f051942..0bc6a4c7ca 100644 --- a/build/multiarch-manifests/create-manifests.ps1 +++ b/build/multiarch-manifests/create-manifests.ps1 @@ -12,7 +12,7 @@ Write-Host "Tags used are linux-master, win-master, linux-dev, win-dev, linux-la Write-Host "Multiarch images tags will be master, dev, latest" -ForegroundColor Yellow -$services = "identity.api", "basket.api", "catalog.api", "ordering.api", "ordering.backgroundtasks", "marketing.api", "payment.api", "locations.api", "webhooks.api", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub", "webstatus", "webspa", "webmvc", "webhooks.client" +$services = "identity.api", "basket.api", "catalog.api", "ordering.api", "marketing.api", "payment.api", "locations.api", "webhooks.api", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub", "webstatus", "webspa", "webmvc", "webhooks.client" foreach ($svc in $services) { Write-Host "Creating manifest for $svc and tags :latest, :master, and :dev" diff --git a/docker-compose-windows.prod.yml b/docker-compose-windows.prod.yml index ead977f292..638c98d692 100644 --- a/docker-compose-windows.prod.yml +++ b/docker-compose-windows.prod.yml @@ -69,17 +69,6 @@ services: ports: - "5102:80" - ordering.backgroundtasks: - environment: - - ASPNETCORE_ENVIRONMENT=Production - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - UseCustomizationData=True - - AzureServiceBusEnabled=False - ports: - - "5111:80" - webspa: environment: - ASPNETCORE_ENVIRONMENT=Production diff --git a/docker-compose.override.windows.yml b/docker-compose.override.windows.yml index dcaac7c457..0f1e66efe4 100644 --- a/docker-compose.override.windows.yml +++ b/docker-compose.override.windows.yml @@ -37,11 +37,6 @@ services: - EventBusUserName=admin - EventBusPassword=password - ordering.backgroundtasks: - environment: - - EventBusUserName=admin - - EventBusPassword=password - payment.api: environment: - EventBusUserName=admin diff --git a/docker-compose.override.yml b/docker-compose.override.yml index e4ee766509..bd04fa9976 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -115,26 +115,6 @@ services: ports: - "5102:80" - - ordering.backgroundtasks: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - UseCustomizationData=True - - AzureServiceBusEnabled=False - - CheckUpdateTime=30000 - - GracePeriodTime=1 - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - UseLoadTest=${USE_LOADTEST:-False} - - Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose - ports: - - "5111:80" - marketing.api: environment: - ASPNETCORE_ENVIRONMENT=Development @@ -343,8 +323,6 @@ services: - HealthChecks-UI__HealthChecks__7__Uri=http://webmarketingapigw/hc - HealthChecks-UI__HealthChecks__8__Name=Ordering HTTP Check - HealthChecks-UI__HealthChecks__8__Uri=http://ordering.api/hc - - HealthChecks-UI__HealthChecks__9__Name=Ordering HTTP Background Check - - HealthChecks-UI__HealthChecks__9__Uri=http://ordering.backgroundtasks/hc - HealthChecks-UI__HealthChecks__10__Name=Basket HTTP Check - HealthChecks-UI__HealthChecks__10__Uri=http://basket.api/hc - HealthChecks-UI__HealthChecks__11__Name=Catalog HTTP Check @@ -359,7 +337,6 @@ services: - HealthChecks-UI__HealthChecks__15__Uri=http://payment.api/hc - HealthChecks-UI__HealthChecks__16__Name=Ordering SignalRHub HTTP Check - HealthChecks-UI__HealthChecks__16__Uri=http://ordering.signalrhub/hc - - OrderingBackgroundTasksUrl=http://ordering.backgroundtasks/hc - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} ports: diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 4bf4655655..e1825a8c43 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -91,25 +91,6 @@ services: ports: - "80" # The API Gateway redirects and access through the internal port (80). - - ordering.backgroundtasks: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - UseCustomizationData=True - - AzureServiceBusEnabled=False - - CheckUpdateTime=30000 - - GracePeriodTime=1 - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - UseLoadTest=${USE_LOADTEST:-False} - ports: - - "5111:80" - marketing.api: environment: - ASPNETCORE_ENVIRONMENT=Development @@ -179,7 +160,6 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:80 - CatalogUrl=http://catalog.api/hc - OrderingUrl=http://ordering.api/hc - - OrderingBackgroundTasksUrl=http://ordering.backgroundtasks/hc - BasketUrl=http://basket.api/hc - IdentityUrl=http://identity.api/hc - LocationsUrl=http://locations.api/hc diff --git a/docker-compose.yml b/docker-compose.yml index 243fbf2c68..ccc888bf22 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -52,15 +52,7 @@ services: depends_on: - sql.data - rabbitmq - - ordering.backgroundtasks: - image: ${REGISTRY:-eshop}/ordering.backgroundtasks:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile - depends_on: - - sql.data - - rabbitmq + - identity.api marketing.api: image: ${REGISTRY:-eshop}/marketing.api:${PLATFORM:-linux}-${TAG:-latest} diff --git a/eShopOnContainers.sln b/eShopOnContainers.sln index c3e63925dd..2323318540 100644 --- a/eShopOnContainers.sln +++ b/eShopOnContainers.sln @@ -99,8 +99,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunne EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.Windows", "src\Mobile\eShopOnContainers\eShopOnContainers.TestRunner.Windows\eShopOnContainers.TestRunner.Windows.csproj", "{A7337243-33B8-463A-87AD-944B75EFD820}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.BackgroundTasks", "src\Services\Ordering\Ordering.BackgroundTasks\Ordering.BackgroundTasks.csproj", "{16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.FunctionalTests", "src\Services\Basket\Basket.FunctionalTests\Basket.FunctionalTests.csproj", "{9F00E62F-E180-4A9C-8794-98A72AFAC2DB}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.UnitTests", "src\Services\Basket\Basket.UnitTests\Basket.UnitTests.csproj", "{63417272-1E6A-406A-AD11-C738558D89C0}" diff --git a/k8s/build-push-images.ps1 b/k8s/build-push-images.ps1 index e2c8e06b61..769e74abc2 100644 --- a/k8s/build-push-images.ps1 +++ b/k8s/build-push-images.ps1 @@ -57,7 +57,7 @@ if (-not [string]::IsNullOrEmpty($dockerUser)) { # Push images to Docker registry if ($pushImages) { Write-Host "Pushing images to $registry/$dockerOrg..." -ForegroundColor Yellow - $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "ordering.backgroundtasks", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") + $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") foreach ($service in $services) { $imageFqdn = if ($useDockerHub) {"$dockerOrg/${service}"} else {"$registry/$dockerOrg/${service}"} diff --git a/k8s/deploy.ps1 b/k8s/deploy.ps1 index abeb12aed8..81af1bec7e 100644 --- a/k8s/deploy.ps1 +++ b/k8s/deploy.ps1 @@ -68,7 +68,7 @@ if ($buildImages) { if ($pushImages) { Write-Host "Pushing images to $registry/$dockerOrg..." -ForegroundColor Yellow - $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "ordering.backgroundtasks", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") + $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") foreach ($service in $services) { $imageFqdn = if ($useDockerHub) {"$dockerOrg/${service}"} else {"$registry/$dockerOrg/${service}"} diff --git a/k8s/deployments.yaml b/k8s/deployments.yaml index f362c319c6..46d139d1c8 100644 --- a/k8s/deployments.yaml +++ b/k8s/deployments.yaml @@ -265,65 +265,6 @@ spec: --- apiVersion: extensions/v1beta1 kind: Deployment -metadata: - name: ordering-backgroundtasks -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: ordering-backgroundtasks - spec: - containers: - - name: ordering-backgroundtasks - image: eshop/ordering.backgroundtasks - imagePullPolicy: Always - env: - - name: ConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: ordering__ConnectionString - - name: EventBusConnection - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EventBusConnection - - name: AzureServiceBusEnabled - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__UseAzureServiceBus - - name: CheckUpdateTime - valueFrom: - configMapKeyRef: - name: externalcfg - key: GracePeriodManager__CheckUpdateTime - - name: GracePeriodTime - valueFrom: - configMapKeyRef: - name: externalcfg - key: GracePeriodManager__GracePeriodTime - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: UseLoadTest - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EnableLoadTest - - name: OrchestratorType - value: 'K8S' - ports: - - containerPort: 80 - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment metadata: name: ordering-signalrhub spec: @@ -702,11 +643,6 @@ spec: configMapKeyRef: name: internalurls key: ordering__hc - - name: OrderingBackgroundTasksUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: ordering-background__hc - name: LocationsUrl valueFrom: configMapKeyRef: diff --git a/k8s/helm/app.yaml b/k8s/helm/app.yaml index 91e829b272..390844a6e2 100644 --- a/k8s/helm/app.yaml +++ b/k8s/helm/app.yaml @@ -28,7 +28,6 @@ app: # app global settings basket: basket # service name for basket api catalog: catalog # service name for catalog api ordering: ordering # service name for ordering api - orderingbackgroundtasks: orderingbackgroundtasks # service name for orderingbackgroundtasks orderingsignalrhub: ordering-signalrhub # service name for orderingsignalrhub identity: identity # service name for identity api mvc: webmvc # service name for web mvc diff --git a/k8s/helm/deploy-all-istio.ps1 b/k8s/helm/deploy-all-istio.ps1 index 5e05c6dbbd..9e32704b10 100644 --- a/k8s/helm/deploy-all-istio.ps1 +++ b/k8s/helm/deploy-all-istio.ps1 @@ -80,7 +80,7 @@ if (-not [string]::IsNullOrEmpty($registry)) { Write-Host "Begin eShopOnContainers installation using Helm" -ForegroundColor Green $infras = ("sql-data", "nosql-data", "rabbitmq", "keystore-data", "basket-data") -$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-backgroundtasks","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") +$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") if ($deployInfrastructure) { foreach ($infra in $infras) { diff --git a/k8s/helm/deploy-all.ps1 b/k8s/helm/deploy-all.ps1 index 3cf6936bce..21bb2f1a09 100644 --- a/k8s/helm/deploy-all.ps1 +++ b/k8s/helm/deploy-all.ps1 @@ -62,7 +62,7 @@ if (-not [string]::IsNullOrEmpty($registry)) { Write-Host "Begin eShopOnContainers installation using Helm" -ForegroundColor Green $infras = ("sql-data", "nosql-data", "rabbitmq", "keystore-data", "basket-data") -$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-backgroundtasks","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") +$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") if ($deployInfrastructure) { foreach ($infra in $infras) { diff --git a/k8s/helm/deploy-all.sh b/k8s/helm/deploy-all.sh index 705b172f5d..04891799bb 100755 --- a/k8s/helm/deploy-all.sh +++ b/k8s/helm/deploy-all.sh @@ -185,7 +185,7 @@ fi echo "#################### Begin $app_name installation using Helm ####################" infras=(sql-data nosql-data rabbitmq keystore-data basket-data) -charts=(eshop-common apigwmm apigwms apigwwm apigwws basket-api catalog-api identity-api locations-api marketing-api mobileshoppingagg ordering-api ordering-backgroundtasks ordering-signalrhub payment-api webmvc webshoppingagg webspa webstatus webhooks-api webhooks-web) +charts=(eshop-common apigwmm apigwms apigwwm apigwws basket-api catalog-api identity-api locations-api marketing-api mobileshoppingagg ordering-api ordering-signalrhub payment-api webmvc webshoppingagg webspa webstatus webhooks-api webhooks-web) if [[ !$skip_infrastructure ]]; then for infra in "${infras[@]}" diff --git a/k8s/helm/istio/doc.md b/k8s/helm/istio/doc.md index b8c0a02573..f60b714f18 100644 --- a/k8s/helm/istio/doc.md +++ b/k8s/helm/istio/doc.md @@ -258,7 +258,6 @@ fec1e3499416 a3f21ec4bd11 "/entrypoint.sh /ngi…" 76485867f032 eshop/payment.api "dotnet Payment.API.…" 2 hours ago Up 2 hours k8s_payment-api_eshop-payment-api-75d5f9bdf6-6zx2v_default_4a3cdab4-e67f-11e8-b4b6-00155d016146_1 c2c4640ed610 eshop/marketing.api "dotnet Marketing.AP…" 2 hours ago Up 2 hours k8s_marketing-api_eshop-marketing-api-6b8c5989fd-jpxqv_default_45780626-e67f-11e8-b4b6-00155d016146_1 85301d538574 eshop/ordering.signalrhub "dotnet Ordering.Sig…" 2 hours ago Up 2 hours k8s_ordering-signalrhub_eshop-ordering-signalrhub-58cf5ff6-cnlm8_default_4932c344-e67f-11e8-b4b6-00155d016146_1 -7a408a98000e eshop/ordering.backgroundtasks "dotnet Ordering.Bac…" 2 hours ago Up 2 hours k8s_ordering-backgroundtasks_eshop-ordering-backgroundtasks-cc8f6d4d8-ztfk7_default_47f9cf10-e67f-11e8-b4b6-00155d016146_1 12c64b3a13e0 eshop/basket.api "dotnet Basket.API.d…" 2 hours ago Up 2 hours k8s_basket-api_eshop-basket-api-658546684d-6hlvd_default_4262d022-e67f-11e8-b4b6-00155d016146_1 133fccfeeff3 eshop/webstatus "dotnet WebStatus.dll" 2 hours ago Up 2 hours k8s_webstatus_eshop-webstatus-7f46479dc4-bqnq7_default_4dc13eb2-e67f-11e8-b4b6-00155d016146_0 00c6e4c52135 eshop/webspa "dotnet WebSPA.dll" 2 hours ago Up 2 hours k8s_webspa_eshop-webspa-64cb8df9cb-dcbwg_default_4cd47376-e67f-11e8-b4b6-00155d016146_0 diff --git a/k8s/helm/ordering-backgroundtasks/.helmignore b/k8s/helm/ordering-backgroundtasks/.helmignore deleted file mode 100644 index f0c1319444..0000000000 --- a/k8s/helm/ordering-backgroundtasks/.helmignore +++ /dev/null @@ -1,21 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj diff --git a/k8s/helm/ordering-backgroundtasks/Chart.yaml b/k8s/helm/ordering-backgroundtasks/Chart.yaml deleted file mode 100644 index 6ad4f47e6b..0000000000 --- a/k8s/helm/ordering-backgroundtasks/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: "1.0" -description: A Helm chart for Kubernetes -name: ordering-backgroundtasks -version: 0.1.0 diff --git a/k8s/helm/ordering-backgroundtasks/templates/NOTES.txt b/k8s/helm/ordering-backgroundtasks/templates/NOTES.txt deleted file mode 100644 index 54e1b49ea5..0000000000 --- a/k8s/helm/ordering-backgroundtasks/templates/NOTES.txt +++ /dev/null @@ -1,3 +0,0 @@ -eShop Ordering Background Tasks installed. ------------------------------------------- - diff --git a/k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl b/k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl deleted file mode 100644 index e61b78285d..0000000000 --- a/k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "ordering-backgroundtasks.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "ordering-backgroundtasks.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "ordering-backgroundtasks.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} diff --git a/k8s/helm/ordering-backgroundtasks/templates/_names.tpl b/k8s/helm/ordering-backgroundtasks/templates/_names.tpl deleted file mode 100644 index 39ee485ef3..0000000000 --- a/k8s/helm/ordering-backgroundtasks/templates/_names.tpl +++ /dev/null @@ -1,51 +0,0 @@ -{{- define "suffix-name" -}} -{{- if .Values.app.name -}} -{{- .Values.app.name -}} -{{- else -}} -{{- .Release.Name -}} -{{- end -}} -{{- end -}} - -{{- define "sql-name" -}} -{{- if .Values.inf.sql.host -}} -{{- .Values.inf.sql.host -}} -{{- else -}} -{{- printf "%s" "sql-data" -}} -{{- end -}} -{{- end -}} - -{{- define "mongo-name" -}} -{{- if .Values.inf.mongo.host -}} -{{- .Values.inf.mongo.host -}} -{{- else -}} -{{- printf "%s" "nosql-data" -}} -{{- end -}} -{{- end -}} - -{{- define "url-of" -}} -{{- $name := first .}} -{{- $ctx := last .}} -{{- if eq $name "" -}} -{{- $ctx.Values.inf.k8s.dns -}} -{{- else -}} -{{- printf "%s/%s" $ctx.Values.inf.k8s.dns $name -}} {{/*Value is just / */}} -{{- end -}} -{{- end -}} - - -{{- define "pathBase" -}} -{{- if .Values.inf.k8s.suffix -}} -{{- $suffix := include "suffix-name" . -}} -{{- printf "%s-%s" .Values.pathBase $suffix -}} -{{- else -}} -{{- .Values.pathBase -}} -{{- end -}} -{{- end -}} - -{{- define "fqdn-image" -}} -{{- if .Values.inf.registry -}} -{{- printf "%s/%s" .Values.inf.registry.server .Values.image.repository -}} -{{- else -}} -{{- .Values.image.repository -}} -{{- end -}} -{{- end -}} \ No newline at end of file diff --git a/k8s/helm/ordering-backgroundtasks/templates/configmap.yaml b/k8s/helm/ordering-backgroundtasks/templates/configmap.yaml deleted file mode 100644 index 7ed4a0e8e2..0000000000 --- a/k8s/helm/ordering-backgroundtasks/templates/configmap.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- $name := include "ordering-backgroundtasks.fullname" . -}} -{{- $sqlsrv := include "sql-name" . -}} -{{- $cfgname := printf "cfg-%s" $name | trunc 63 }} - -apiVersion: v1 -kind: ConfigMap -metadata: - name: "{{ $cfgname }}" - labels: - app: {{ template "ordering-backgroundtasks.name" . }} - chart: {{ template "ordering-backgroundtasks.chart" .}} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -data: - ordering__ConnectionString: Server={{ $sqlsrv }};Initial Catalog={{ .Values.inf.sql.ordering.db }};User Id={{ .Values.inf.sql.common.user }};Password={{ .Values.inf.sql.common.pwd }}; - ordering__EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" - all__EventBusConnection: {{ .Values.inf.eventbus.constr }} - all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}" - all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" - graceperiodmanager__CheckUpdateTime: "{{ .Values.cfg.checkUpdateTime }}" - graceperiodmanager__GracePeriodTime: "{{ .Values.cfg.gracePeriodTime }}" \ No newline at end of file diff --git a/k8s/helm/ordering-backgroundtasks/templates/deployment.yaml b/k8s/helm/ordering-backgroundtasks/templates/deployment.yaml deleted file mode 100644 index d93c7f764c..0000000000 --- a/k8s/helm/ordering-backgroundtasks/templates/deployment.yaml +++ /dev/null @@ -1,92 +0,0 @@ -{{- $name := include "ordering-backgroundtasks.fullname" . -}} -{{- $cfgname := printf "cfg-%s" $name | trunc 63 }} - -apiVersion: apps/v1beta2 -kind: Deployment -metadata: - name: {{ template "ordering-backgroundtasks.fullname" . }} - labels: - app: {{ template "ordering-backgroundtasks.name" . }} - chart: {{ template "ordering-backgroundtasks.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - replicas: {{ .Values.replicaCount }} - selector: - matchLabels: - app: {{ template "ordering-backgroundtasks.name" . }} - release: {{ .Release.Name }} - template: - metadata: - labels: - app: {{ template "ordering-backgroundtasks.name" . }} - release: {{ .Release.Name }} - spec: - {{ if .Values.inf.registry -}} - imagePullSecrets: - - name: {{ .Values.inf.registry.secretName }} - {{- end }} - containers: - - name: {{ .Chart.Name }} - {{ if .Values.probes -}} - {{- if .Values.probes.liveness -}} - livenessProbe: - httpGet: - port: {{ .Values.probes.liveness.port }} - path: {{ .Values.probes.liveness.path }} - initialDelaySeconds: {{ .Values.probes.liveness.initialDelaySeconds }} - periodSeconds: {{ .Values.probes.liveness.periodSeconds }} - {{- end -}} - {{- end -}} - {{- if .Values.probes -}} - {{- if .Values.probes.readiness }} - readinessProbe: - httpGet: - port: {{ .Values.probes.readiness.port }} - path: {{ .Values.probes.readiness.path }} - initialDelaySeconds: {{ .Values.probes.readiness.initialDelaySeconds }} - periodSeconds: {{ .Values.probes.readiness.periodSeconds }} - timeoutSeconds: {{ .Values.probes.readiness.timeoutSeconds }} - {{- end -}} - {{- end }} - image: "{{ template "fqdn-image" . }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - env: - - name: PATH_BASE - value: {{ include "pathBase" . }} - - name: k8sname - value: {{ .Values.clusterName }} - {{- if .Values.env.values -}} - {{- range .Values.env.values }} - - name: {{ .name }} - value: {{ .value | quote }} - {{- end -}} - {{- end -}} - {{- if .Values.env.configmap -}} - {{- range .Values.env.configmap }} - - name: {{ .name }} - valueFrom: - configMapKeyRef: - name: {{ $cfgname }} - key: {{ .key }} - {{- end -}} - {{- end }} - ports: - - name: http - containerPort: 80 - protocol: TCP - resources: -{{ toYaml .Values.resources | indent 12 }} - {{- with .Values.nodeSelector }} - nodeSelector: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} - {{- end }} - diff --git a/k8s/helm/ordering-backgroundtasks/templates/service.yaml b/k8s/helm/ordering-backgroundtasks/templates/service.yaml deleted file mode 100644 index d8fcba0368..0000000000 --- a/k8s/helm/ordering-backgroundtasks/templates/service.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ .Values.app.svc.orderingbackgroundtasks }} - labels: - app: {{ template "ordering-backgroundtasks.name" . }} - chart: {{ template "ordering-backgroundtasks.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - type: {{ .Values.service.type }} - ports: - - port: {{ .Values.service.port }} - targetPort: http - protocol: TCP - name: http - selector: - app: {{ template "ordering-backgroundtasks.name" . }} - release: {{ .Release.Name }} diff --git a/k8s/helm/ordering-backgroundtasks/values.yaml b/k8s/helm/ordering-backgroundtasks/values.yaml deleted file mode 100644 index d065f03451..0000000000 --- a/k8s/helm/ordering-backgroundtasks/values.yaml +++ /dev/null @@ -1,70 +0,0 @@ -replicaCount: 1 -clusterName: eshop-aks -pathBase: /ordering-backgroundtasks - -image: - repository: eshop/ordering.backgroundtasks - tag: latest - pullPolicy: IfNotPresent - -service: - type: ClusterIP - port: 80 - -ingress: - enabled: false - annotations: {} - hosts: - - chart-example.local - tls: [] - -cfg: - checkUpdateTime: "15000" - gracePeriodTime: "1" - -resources: {} - - -nodeSelector: {} - -tolerations: [] - -affinity: {} - -# env defines the environment variables that will be declared in the pod -env: - urls: - # configmap declares variables which value is taken from the config map defined in template configmap.yaml (name is name of var and key the key in configmap). - configmap: - - name: ConnectionString - key: ordering__ConnectionString - - name: ApplicationInsights__InstrumentationKey - key: all__InstrumentationKey - - name: EventBusConnection - key: all__EventBusConnection - - name: AzureServiceBusEnabled - key: all__UseAzureServiceBus - - name: UseLoadTest - key: ordering__EnableLoadTest - - name: CheckUpdateTime - key: graceperiodmanager__CheckUpdateTime - - name: GracePeriodTime - key: graceperiodmanager__GracePeriodTime - # values define environment variables with a fixed value (no configmap involved) (name is name of var, and value is its value) - values: - - name: ASPNETCORE_ENVIRONMENT - value: Development - - name: OrchestratorType - value: 'K8S' -probes: - liveness: - path: /liveness - initialDelaySeconds: 10 - periodSeconds: 15 - port: 80 - readiness: - path: /hc - timeoutSeconds: 5 - initialDelaySeconds: 90 - periodSeconds: 60 - port: 80 diff --git a/src/csproj-files.txt b/src/csproj-files.txt index 6dc3532d94..96420d96e7 100644 --- a/src/csproj-files.txt +++ b/src/csproj-files.txt @@ -20,7 +20,6 @@ COPY src/Services/Location/Locations.FunctionalTests/*.csproj /src/src/Services/ COPY src/Services/Marketing/Marketing.API/*.csproj /src/src/Services/Marketing/Marketing.API/ COPY src/Services/Marketing/Marketing.FunctionalTests/*.csproj /src/src/Services/Marketing/Marketing.FunctionalTests/ COPY src/Services/Ordering/Ordering.API/*.csproj /src/src/Services/Ordering/Ordering.API/ -COPY src/Services/Ordering/Ordering.BackgroundTasks/*.csproj /src/src/Services/Ordering/Ordering.BackgroundTasks/ COPY src/Services/Ordering/Ordering.Domain/*.csproj /src/src/Services/Ordering/Ordering.Domain/ COPY src/Services/Ordering/Ordering.FunctionalTests/*.csproj /src/src/Services/Ordering/Ordering.FunctionalTests/ COPY src/Services/Ordering/Ordering.Infrastructure/*.csproj /src/src/Services/Ordering/Ordering.Infrastructure/ diff --git a/src/prepare-devspaces.ps1 b/src/prepare-devspaces.ps1 index 5b692e9081..5e1b72d4ed 100644 --- a/src/prepare-devspaces.ps1 +++ b/src/prepare-devspaces.ps1 @@ -52,9 +52,6 @@ Copy-Item "..\k8s\helm\inf.yaml" -Destination ".\Services\Ordering\Ordering.API" Copy-Item "..\k8s\helm\app.yaml" -Destination ".\Services\Ordering\Ordering.SignalrHub" -Force Copy-Item "..\k8s\helm\inf.yaml" -Destination ".\Services\Ordering\Ordering.SignalrHub" -Force -Copy-Item "..\k8s\helm\app.yaml" -Destination ".\Services\Ordering\Ordering.BackgroundTasks" -Force -Copy-Item "..\k8s\helm\inf.yaml" -Destination ".\Services\Ordering\Ordering.BackgroundTasks" -Force - Write-Host "Copying app.yaml and inf.yaml to Payment API" -ForegroundColor Yellow Copy-Item "..\k8s\helm\app.yaml" -Destination ".\Services\Payment\Payment.API" -Force Copy-Item "..\k8s\helm\inf.yaml" -Destination ".\Services\Payment\Payment.API" -Force From 445c43221bdccfba93fc043dd02e9db9baf903fd Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 31 Jul 2019 09:12:46 +0200 Subject: [PATCH 036/149] fix basket api --- .../AuthorizeCheckOperationFilter.cs | 36 +++++++++ src/Services/Basket/Basket.API/Startup.cs | 81 ++++++++++--------- 2 files changed, 79 insertions(+), 38 deletions(-) create mode 100644 src/Services/Basket/Basket.API/Infrastructure/Middlewares/AuthorizeCheckOperationFilter.cs diff --git a/src/Services/Basket/Basket.API/Infrastructure/Middlewares/AuthorizeCheckOperationFilter.cs b/src/Services/Basket/Basket.API/Infrastructure/Middlewares/AuthorizeCheckOperationFilter.cs new file mode 100644 index 0000000000..4a1c24aa64 --- /dev/null +++ b/src/Services/Basket/Basket.API/Infrastructure/Middlewares/AuthorizeCheckOperationFilter.cs @@ -0,0 +1,36 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.OpenApi.Models; +using Swashbuckle.AspNetCore.SwaggerGen; +using System.Collections.Generic; +using System.Linq; + +namespace Basket.API.Infrastructure.Filters +{ + public class AuthorizeCheckOperationFilter : IOperationFilter + { + public void Apply(OpenApiOperation operation, OperationFilterContext context) + { + // Check for authorize attribute + var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() || + context.MethodInfo.GetCustomAttributes(true).OfType().Any(); + + if (!hasAuthorize) return; + + operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" }); + operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" }); + + var oAuthScheme = new OpenApiSecurityScheme + { + Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } + }; + + operation.Security = new List + { + new OpenApiSecurityRequirement + { + [ oAuthScheme ] = new [] { "basketapi" } + } + }; + } + } +} \ No newline at end of file diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index 3620b0b00d..098428ad92 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -55,6 +55,37 @@ public IServiceProvider ConfigureServices(IServiceCollection services) }).AddNewtonsoftJson(); + services.AddSwaggerGen(options => + { + options.DescribeAllEnumsAsStrings(); + options.SwaggerDoc("v1", new OpenApiInfo + { + Title = "eShopOnContainers - Basket HTTP API", + Version = "v1", + Description = "The Basket Service HTTP API" + }); + + options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme + { + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows() + { + Implicit = new OpenApiOAuthFlow() + { + AuthorizationUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/token"), + Scopes = new Dictionary() + { + { "basket", "Basket API" } + } + } + } + }); + + options.OperationFilter(); + }); + + ConfigureAuthService(services); services.AddCustomHealthCheck(Configuration); @@ -124,33 +155,6 @@ public IServiceProvider ConfigureServices(IServiceCollection services) RegisterEventBus(services); - services.AddSwaggerGen(options => - { - options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new OpenApiInfo - { - Title = "eShopOnContainers - Basket HTTP API", - Version = "v1", - Description = "The Basket Service HTTP API" - }); - - options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme - { - Type = SecuritySchemeType.OAuth2, - Flows = new OpenApiOAuthFlows() - { - Implicit = new OpenApiOAuthFlow() - { - AuthorizationUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), - TokenUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/token"), - Scopes = new Dictionary() - { - { "basket", "Basket API" } - } - } - } - }); - }); services.AddCors(options => { @@ -185,20 +189,12 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF app.UsePathBase(pathBase); } + app.UseRouting(); ConfigureAuth(app); app.UseStaticFiles(); - app.UseSwagger() - .UseSwaggerUI(setup => - { - setup.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Basket.API V1"); - setup.OAuthClientId("basketswaggerui"); - setup.OAuthAppName("Basket Swagger UI"); - }); - app.UseCors("CorsPolicy"); - app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); @@ -213,6 +209,15 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF Predicate = r => r.Name.Contains("self") }); }); + + app.UseSwagger() + .UseSwaggerUI(setup => + { + setup.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Basket.API V1"); + setup.OAuthClientId("basketswaggerui"); + setup.OAuthAppName("Basket Swagger UI"); + }); + ConfigureEventBus(app); } @@ -226,7 +231,7 @@ private void RegisterAppInsights(IServiceCollection services) private void ConfigureAuthService(IServiceCollection services) { // prevent from mapping "sub" claim to nameidentifier. - JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); + JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub"); var identityUrl = Configuration.GetValue("IdentityUrl"); @@ -250,8 +255,8 @@ protected virtual void ConfigureAuth(IApplicationBuilder app) app.UseMiddleware(); } - app.UseAuthorization(); app.UseAuthentication(); + app.UseAuthorization(); } private void RegisterEventBus(IServiceCollection services) From 6e69b36a778dfed312f938ed5c48791441d45c92 Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 31 Jul 2019 09:13:04 +0200 Subject: [PATCH 037/149] migrate functional tests of ordering api --- .../Commands/CancelOrderCommand.cs | 3 +++ .../Ordering/Ordering.API/Ordering.API.csproj | 1 + src/Services/Ordering/Ordering.API/Startup.cs | 23 +++++++++---------- .../Ordering.FunctionalTests.csproj | 3 +-- .../OrderingTestStartup.cs | 12 +++++++++- .../Ordering.FunctionalTests/appsettings.json | 3 ++- src/_build/dependencies.props | 1 + 7 files changed, 30 insertions(+), 16 deletions(-) diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommand.cs b/src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommand.cs index 0672807f33..c2a1c2be54 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommand.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommand.cs @@ -12,7 +12,10 @@ public class CancelOrderCommand : IRequest [DataMember] public int OrderNumber { get; private set; } + public CancelOrderCommand() + { + } public CancelOrderCommand(int orderNumber) { OrderNumber = orderNumber; diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index 4bd20f8a3e..1b3c36daa4 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -30,6 +30,7 @@ + diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index e8640489ca..fca490f285 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -22,6 +22,7 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus; using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF; using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Services; + using Microsoft.eShopOnContainers.Services.Ordering.API.Controllers; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; @@ -44,7 +45,7 @@ public Startup(IConfiguration configuration) public IConfiguration Configuration { get; } - public IServiceProvider ConfigureServices(IServiceCollection services) + public virtual IServiceProvider ConfigureServices(IServiceCollection services) { services.AddApplicationInsights(Configuration) .AddCustomMvc() @@ -81,9 +82,9 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) app.UseCors("CorsPolicy"); + app.UseRouting(); ConfigureAuth(app); - app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); @@ -149,16 +150,14 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services) { // Add framework services. services.AddControllers(options => - { - options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - }); - //services.AddMvc(options => - // { - // options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - // }) - // .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) - // .AddControllersAsServices(); //Injecting Controllers themselves thru DI - // //For further info see: http://docs.autofac.org/en/latest/integration/aspnetcore.html#controllers-as-services + { + options.Filters.Add(typeof(HttpGlobalExceptionFilter)); + }) + // Added for functional tests + .AddApplicationPart(typeof(OrdersController).Assembly) + .AddNewtonsoftJson() + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) + ; services.AddCors(options => { diff --git a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj index 5acad11ca5..17845a3755 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj +++ b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj @@ -17,8 +17,7 @@ - - + diff --git a/src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs b/src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs index d68dd7c3ac..9d1975cb7c 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs +++ b/src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs @@ -1,6 +1,9 @@ -using Microsoft.AspNetCore.Builder; +using System; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Routing; using Microsoft.eShopOnContainers.Services.Ordering.API; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; namespace Ordering.FunctionalTests { @@ -10,6 +13,13 @@ public OrderingTestsStartup(IConfiguration env) : base(env) { } + public override IServiceProvider ConfigureServices(IServiceCollection services) + { + // Added to avoid the Authorize data annotation in test environment. + // Property "SuppressCheckForUnhandledSecurityMetadata" in appsettings.json + services.Configure(Configuration); + return base.ConfigureServices(services); + } protected override void ConfigureAuth(IApplicationBuilder app) { if (Configuration["isTest"] == bool.TrueString.ToLowerInvariant()) diff --git a/src/Services/Ordering/Ordering.FunctionalTests/appsettings.json b/src/Services/Ordering/Ordering.FunctionalTests/appsettings.json index 70f1af3c08..07bb1638a4 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/appsettings.json +++ b/src/Services/Ordering/Ordering.FunctionalTests/appsettings.json @@ -6,5 +6,6 @@ "EventBusConnection": "localhost", "CheckUpdateTime": "30000", "GracePeriodTime": "1", - "SubscriptionClientName": "Ordering" + "SubscriptionClientName": "Ordering", + "SuppressCheckForUnhandledSecurityMetadata":true } diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 7f81abf62a..b83d987cca 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -86,6 +86,7 @@ 2.9.0-beta2 4.10.1 12.0.2 + 3.0.0-preview7.19365.7 12.0.1 6.0.1 3.0.0-preview3.4 From 76cb5c5e795a69ca003044ebfcddfddc73e34dfa Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 31 Jul 2019 09:13:14 +0200 Subject: [PATCH 038/149] add comment --- src/Services/Location/Locations.API/Startup.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Services/Location/Locations.API/Startup.cs b/src/Services/Location/Locations.API/Startup.cs index 5deaae52d4..4f79b8977f 100644 --- a/src/Services/Location/Locations.API/Startup.cs +++ b/src/Services/Location/Locations.API/Startup.cs @@ -48,6 +48,7 @@ public virtual IServiceProvider ConfigureServices(IServiceCollection services) { options.Filters.Add(typeof(HttpGlobalExceptionFilter)); }) + // Added for functional tests .AddApplicationPart(typeof(LocationsController).Assembly) .AddNewtonsoftJson(); From 267a2f5e4805170ca62bf1acd1fa863bb6f699d6 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Wed, 31 Jul 2019 12:05:11 +0200 Subject: [PATCH 039/149] fix deserialize error --- src/Services/Basket/Basket.API/Model/CustomerBasket.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Services/Basket/Basket.API/Model/CustomerBasket.cs b/src/Services/Basket/Basket.API/Model/CustomerBasket.cs index 3dd034f6c5..b075f3150d 100644 --- a/src/Services/Basket/Basket.API/Model/CustomerBasket.cs +++ b/src/Services/Basket/Basket.API/Model/CustomerBasket.cs @@ -4,8 +4,14 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.Model { public class CustomerBasket { - public string BuyerId { get; set; } - public List Items { get; set; } + public string BuyerId { get; set; } + + public List Items { get; set; } + + public CustomerBasket() + { + + } public CustomerBasket(string customerId) { From 8fbc266fb9bf204b9fc9757a135fe41608ae354b Mon Sep 17 00:00:00 2001 From: ericuss Date: Thu, 1 Aug 2019 09:49:08 +0200 Subject: [PATCH 040/149] Migrated --- src/Services/Basket/Basket.API/Startup.cs | 13 ++++++++----- .../Base/BasketTestStartup.cs | 13 ++++++++++++- .../Basket.FunctionalTests.csproj | 3 +-- .../Basket/Basket.FunctionalTests/appsettings.json | 3 ++- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index 098428ad92..2533f31e50 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -15,6 +15,7 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; using Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ; using Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus; +using Microsoft.eShopOnContainers.Services.Basket.API.Controllers; using Microsoft.eShopOnContainers.Services.Basket.API.Infrastructure.Repositories; using Microsoft.eShopOnContainers.Services.Basket.API.IntegrationEvents.EventHandling; using Microsoft.eShopOnContainers.Services.Basket.API.IntegrationEvents.Events; @@ -44,16 +45,18 @@ public Startup(IConfiguration configuration) public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. - public IServiceProvider ConfigureServices(IServiceCollection services) + public virtual IServiceProvider ConfigureServices(IServiceCollection services) { RegisterAppInsights(services); services.AddControllers(options => - { - options.Filters.Add(typeof(HttpGlobalExceptionFilter)); - options.Filters.Add(typeof(ValidateModelStateFilter)); + { + options.Filters.Add(typeof(HttpGlobalExceptionFilter)); + options.Filters.Add(typeof(ValidateModelStateFilter)); - }).AddNewtonsoftJson(); + }) // Added for functional tests + .AddApplicationPart(typeof(BasketController).Assembly) + .AddNewtonsoftJson(); services.AddSwaggerGen(options => { diff --git a/src/Services/Basket/Basket.FunctionalTests/Base/BasketTestStartup.cs b/src/Services/Basket/Basket.FunctionalTests/Base/BasketTestStartup.cs index 4d77f6dc52..cb8ec86418 100644 --- a/src/Services/Basket/Basket.FunctionalTests/Base/BasketTestStartup.cs +++ b/src/Services/Basket/Basket.FunctionalTests/Base/BasketTestStartup.cs @@ -1,6 +1,9 @@ -using Microsoft.AspNetCore.Builder; +using System; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Routing; using Microsoft.eShopOnContainers.Services.Basket.API; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; namespace Basket.FunctionalTests.Base { @@ -10,6 +13,14 @@ public BasketTestsStartup(IConfiguration env) : base(env) { } + public override IServiceProvider ConfigureServices(IServiceCollection services) + { + // Added to avoid the Authorize data annotation in test environment. + // Property "SuppressCheckForUnhandledSecurityMetadata" in appsettings.json + services.Configure(Configuration); + return base.ConfigureServices(services); + } + protected override void ConfigureAuth(IApplicationBuilder app) { if (Configuration["isTest"] == bool.TrueString.ToLowerInvariant()) diff --git a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj index 168176aaf8..269a133f23 100644 --- a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj +++ b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj @@ -16,8 +16,7 @@ - - + diff --git a/src/Services/Basket/Basket.FunctionalTests/appsettings.json b/src/Services/Basket/Basket.FunctionalTests/appsettings.json index 5e8dbc02e8..3f882d1bc3 100644 --- a/src/Services/Basket/Basket.FunctionalTests/appsettings.json +++ b/src/Services/Basket/Basket.FunctionalTests/appsettings.json @@ -11,5 +11,6 @@ "ConnectionString": "127.0.0.1", "isTest": "true", "EventBusConnection": "localhost", - "SubscriptionClientName": "Basket" + "SubscriptionClientName": "Basket", + "SuppressCheckForUnhandledSecurityMetadata":true } From 92eef22187bb39ff5ab71e4809065085917042f6 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Thu, 1 Aug 2019 09:50:45 +0200 Subject: [PATCH 041/149] add nuget to ocelot --- src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj | 1 + src/ApiGateways/ApiGw-Base/Startup.cs | 1 + .../aggregator/Models/BasketData.cs | 11 ++++++---- .../aggregator/Models/CatalogItem.cs | 9 +------- .../Mobile.Bff.Shopping/aggregator/Startup.cs | 22 +++++-------------- .../aggregator/Models/BasketData.cs | 11 ++++++---- .../aggregator/Models/CatalogItem.cs | 9 +------- .../Web.Bff.Shopping/aggregator/Startup.cs | 1 + src/Web/WebMVC/Startup.cs | 4 ++-- src/_build/dependencies.props | 1 + 10 files changed, 27 insertions(+), 43 deletions(-) diff --git a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj index c7855f18ec..eb2eacb0a5 100644 --- a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj +++ b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj @@ -10,6 +10,7 @@ + diff --git a/src/ApiGateways/ApiGw-Base/Startup.cs b/src/ApiGateways/ApiGw-Base/Startup.cs index f4b7eaff71..8d52851b49 100644 --- a/src/ApiGateways/ApiGw-Base/Startup.cs +++ b/src/ApiGateways/ApiGw-Base/Startup.cs @@ -92,6 +92,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env) app.UseRouting(); app.UseEndpoints(endpoints => { + endpoints.MapControllers(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/BasketData.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/BasketData.cs index 1b9348c448..302f6bd32b 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/BasketData.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/BasketData.cs @@ -1,15 +1,18 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; +using System.Collections.Generic; namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models { public class BasketData { public string BuyerId { get; set; } + public List Items { get; set; } + public BasketData() + { + + } + public BasketData(string buyerId) { BuyerId = buyerId; diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/CatalogItem.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/CatalogItem.cs index 25f766719f..603c70bd7b 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/CatalogItem.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/CatalogItem.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models +namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models { public class CatalogItem { @@ -13,8 +8,6 @@ public class CatalogItem public decimal Price { get; set; } - public string PictureUri { get; set; } - } } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index 0c690bbcce..986973f933 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -5,7 +5,6 @@ using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Config; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Filters.Basket.API.Infrastructure.Filters; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Infrastructure; @@ -46,7 +45,7 @@ public void ConfigureServices(IServiceCollection services) .AddUrlGroup(new Uri(Configuration["PaymentUrlHC"]), name: "paymentapi-check", tags: new string[] { "paymentapi" }) .AddUrlGroup(new Uri(Configuration["LocationUrlHC"]), name: "locationapi-check", tags: new string[] { "locationapi" }); - services.AddCustomMvc(Configuration) + services.AddCustomRouting(Configuration) .AddCustomAuthentication(Configuration) .AddDevspaces() .AddHttpServices(); @@ -77,12 +76,13 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseHsts(); } - app.UseAuthentication(); app.UseHttpsRedirection(); app.UseRouting(); + app.UseAuthentication(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); + endpoints.MapControllers(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -108,14 +108,11 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF public static class ServiceCollectionExtensions { - public static IServiceCollection AddCustomMvc(this IServiceCollection services, IConfiguration configuration) + public static IServiceCollection AddCustomRouting(this IServiceCollection services, IConfiguration configuration) { services.AddOptions(); services.Configure(configuration.GetSection("urls")); - - services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); - + services.AddControllers().AddNewtonsoftJson(); services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); @@ -174,15 +171,6 @@ public static IServiceCollection AddCustomAuthentication(this IServiceCollection options.Authority = identityUrl; options.RequireHttpsMetadata = false; options.Audience = "mobileshoppingagg"; - options.Events = new JwtBearerEvents() - { - OnAuthenticationFailed = async ctx => - { - }, - OnTokenValidated = async ctx => - { - } - }; }); return services; diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Models/BasketData.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Models/BasketData.cs index 01831a5c96..d29afb5c62 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Models/BasketData.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Models/BasketData.cs @@ -1,15 +1,18 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; +using System.Collections.Generic; namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Models { public class BasketData { public string BuyerId { get; set; } + public List Items { get; set; } + public BasketData() + { + + } + public BasketData(string buyerId) { BuyerId = buyerId; diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Models/CatalogItem.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Models/CatalogItem.cs index c6085f9348..43e8e1cd1a 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Models/CatalogItem.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Models/CatalogItem.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Models +namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Models { public class CatalogItem { @@ -13,8 +8,6 @@ public class CatalogItem public decimal Price { get; set; } - public string PictureUri { get; set; } - } } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index 9edbf2815f..0b7790e362 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -82,6 +82,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); + endpoints.MapControllers(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, diff --git a/src/Web/WebMVC/Startup.cs b/src/Web/WebMVC/Startup.cs index b250c365c6..014dca9f64 100644 --- a/src/Web/WebMVC/Startup.cs +++ b/src/Web/WebMVC/Startup.cs @@ -81,16 +81,16 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseMiddleware(); } - app.UseAuthentication(); - WebContextSeed.Seed(app, env, loggerFactory); app.UseHttpsRedirection(); app.UseRouting(); + app.UseAuthentication(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute("default", "{controller=Catalog}/{action=Index}/{id?}"); endpoints.MapControllerRoute("defaultError", "{controller=Error}/{action=Error}"); + endpoints.MapControllers(); endpoints.MapHealthChecks("/liveness", new HealthCheckOptions { Predicate = r => r.Name.Contains("self") diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index b83d987cca..4de3340c64 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -40,6 +40,7 @@ 5.2.7 15.9.20 1.0.172 + 3.0.0-preview4-19123-01 1.0.2105168 3.0.0-preview6-19319-03 5.1.0 From cb942598c8f593a5d9dd18be4ef0bf8d0028dc8a Mon Sep 17 00:00:00 2001 From: ericuss Date: Thu, 1 Aug 2019 11:04:54 +0200 Subject: [PATCH 042/149] Migrate catalog functional tests --- .../Extensions/WebHostExtensions.cs | 80 +++++++++++++++++++ src/Services/Catalog/Catalog.API/Program.cs | 1 - src/Services/Catalog/Catalog.API/Startup.cs | 3 +- .../Catalog.FunctionalTests.csproj | 2 +- .../CatalogScenarioBase.cs | 9 ++- 5 files changed, 90 insertions(+), 5 deletions(-) create mode 100644 src/Services/Catalog/Catalog.API/Extensions/WebHostExtensions.cs diff --git a/src/Services/Catalog/Catalog.API/Extensions/WebHostExtensions.cs b/src/Services/Catalog/Catalog.API/Extensions/WebHostExtensions.cs new file mode 100644 index 0000000000..b7a982b2e5 --- /dev/null +++ b/src/Services/Catalog/Catalog.API/Extensions/WebHostExtensions.cs @@ -0,0 +1,80 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Polly; +using System.Data.SqlClient; +using Microsoft.AspNetCore.Hosting; + +namespace Catalog.API.Extensions +{ + public static class WebHostExtensions + { + public static bool IsInKubernetes(this IWebHost host) + { + var cfg = host.Services.GetService(); + var orchestratorType = cfg.GetValue("OrchestratorType"); + return orchestratorType?.ToUpper() == "K8S"; + } + + public static IWebHost MigrateDbContext(this IWebHost host, Action seeder) where TContext : DbContext + { + var underK8s = host.IsInKubernetes(); + + using (var scope = host.Services.CreateScope()) + { + var services = scope.ServiceProvider; + + var logger = services.GetRequiredService>(); + + var context = services.GetService(); + + try + { + logger.LogInformation("Migrating database associated with context {DbContextName}", typeof(TContext).Name); + + if (underK8s) + { + InvokeSeeder(seeder, context, services); + } + else + { + var retry = Policy.Handle() + .WaitAndRetry(new TimeSpan[] + { + TimeSpan.FromSeconds(3), + TimeSpan.FromSeconds(5), + TimeSpan.FromSeconds(8), + }); + + //if the sql server container is not created on run docker compose this + //migration can't fail for network related exception. The retry options for DbContext only + //apply to transient exceptions + // Note that this is NOT applied when running some orchestrators (let the orchestrator to recreate the failing service) + retry.Execute(() => InvokeSeeder(seeder, context, services)); + } + + logger.LogInformation("Migrated database associated with context {DbContextName}", typeof(TContext).Name); + } + catch (Exception ex) + { + logger.LogError(ex, "An error occurred while migrating the database used on context {DbContextName}", typeof(TContext).Name); + if (underK8s) + { + throw; // Rethrow under k8s because we rely on k8s to re-run the pod + } + } + } + + return host; + } + + private static void InvokeSeeder(Action seeder, TContext context, IServiceProvider services) + where TContext : DbContext + { + context.Database.Migrate(); + seeder(context, services); + } + } +} diff --git a/src/Services/Catalog/Catalog.API/Program.cs b/src/Services/Catalog/Catalog.API/Program.cs index 39f3643d87..d24f976f98 100644 --- a/src/Services/Catalog/Catalog.API/Program.cs +++ b/src/Services/Catalog/Catalog.API/Program.cs @@ -68,7 +68,6 @@ public static int Main(string[] args) private static IHostBuilder CreateHostBuilder(IConfiguration configuration, string[] args) => Host.CreateDefaultBuilder(args) .ConfigureServices(services => services.AddAutofac()) - .UseServiceProviderFactory(new AutofacServiceProviderFactory()) .ConfigureWebHostDefaults(builder => { builder.CaptureStartupErrors(false) diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 9dcf81f013..64441f9ea5 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -44,7 +44,7 @@ public Startup(IConfiguration configuration) public IConfiguration Configuration { get; } - public void ConfigureServices(IServiceCollection services) + public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddAppInsight(Configuration) .AddGrpc().Services @@ -59,6 +59,7 @@ public void ConfigureServices(IServiceCollection services) var container = new ContainerBuilder(); container.Populate(services); + return new AutofacServiceProvider(container.Build()); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) diff --git a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj index a679d5d35b..9db9a3c377 100644 --- a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj +++ b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj @@ -33,7 +33,7 @@ - + diff --git a/src/Services/Catalog/Catalog.FunctionalTests/CatalogScenarioBase.cs b/src/Services/Catalog/Catalog.FunctionalTests/CatalogScenarioBase.cs index 46bdb07d18..6a8cbd72f7 100644 --- a/src/Services/Catalog/Catalog.FunctionalTests/CatalogScenarioBase.cs +++ b/src/Services/Catalog/Catalog.FunctionalTests/CatalogScenarioBase.cs @@ -1,3 +1,5 @@ +using Autofac.Extensions.DependencyInjection; +using Catalog.API.Extensions; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.TestHost; using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF; @@ -5,6 +7,7 @@ using Microsoft.eShopOnContainers.Services.Catalog.API.Infrastructure; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using System.IO; @@ -25,14 +28,16 @@ public TestServer CreateServer() { cb.AddJsonFile("appsettings.json", optional: false) .AddEnvironmentVariables(); - }).UseStartup(); + }) + .UseStartup(); + var testServer = new TestServer(hostBuilder); testServer.Host .MigrateDbContext((context, services) => { - var env = services.GetService(); + var env = services.GetService(); var settings = services.GetService>(); var logger = services.GetService>(); From 1c88396c99f12836eb47f3d993434f1ff784fca7 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Fri, 2 Aug 2019 12:26:13 +0200 Subject: [PATCH 043/149] return ocelote to 2.2 for incompatibility of 3.0 --- src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj | 19 +++++++++--------- src/ApiGateways/ApiGw-Base/Startup.cs | 20 ++++++++----------- .../Mobile.Bff.Shopping/aggregator/Startup.cs | 3 ++- .../Web.Bff.Shopping/aggregator/Startup.cs | 3 ++- 4 files changed, 21 insertions(+), 24 deletions(-) diff --git a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj index eb2eacb0a5..442fa36a3e 100644 --- a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj +++ b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj @@ -1,19 +1,18 @@  - $(NetCoreTargetVersion) + netcoreapp2.2 $(LangVersion) - - - - - - - - - + + + + + + + + diff --git a/src/ApiGateways/ApiGw-Base/Startup.cs b/src/ApiGateways/ApiGw-Base/Startup.cs index 8d52851b49..be845edcaa 100644 --- a/src/ApiGateways/ApiGw-Base/Startup.cs +++ b/src/ApiGateways/ApiGw-Base/Startup.cs @@ -89,19 +89,15 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env) app.UseDeveloperExceptionPage(); } - app.UseRouting(); - app.UseEndpoints(endpoints => + app.UseHealthChecks("/hc", new HealthCheckOptions() { - endpoints.MapControllers(); - endpoints.MapHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - endpoints.MapHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + + app.UseHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") }); app.UseCors("CorsPolicy"); diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index 986973f933..602477ddeb 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -50,7 +50,7 @@ public void ConfigureServices(IServiceCollection services) .AddDevspaces() .AddHttpServices(); - services.AddControllers(); + services.AddControllers().AddNewtonsoftJson(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -79,6 +79,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthentication(); + app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index 0b7790e362..257334aa35 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -51,7 +51,7 @@ public void ConfigureServices(IServiceCollection services) .AddDevspaces() .AddApplicationServices(); - services.AddControllers(); + services.AddControllers().AddNewtonsoftJson(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -77,6 +77,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF } app.UseAuthentication(); + app.UseAuthorization(); app.UseHttpsRedirection(); app.UseRouting(); app.UseEndpoints(endpoints => From 7fba79b048f7381ed3a776107869fd791444966f Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Fri, 2 Aug 2019 14:20:25 +0200 Subject: [PATCH 044/149] change ihost for iwebhost --- src/Services/Catalog/Catalog.API/Program.cs | 48 ++++++++++----------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/src/Services/Catalog/Catalog.API/Program.cs b/src/Services/Catalog/Catalog.API/Program.cs index d24f976f98..d28ee5a547 100644 --- a/src/Services/Catalog/Catalog.API/Program.cs +++ b/src/Services/Catalog/Catalog.API/Program.cs @@ -33,7 +33,7 @@ public static int Main(string[] args) try { Log.Information("Configuring web host ({ApplicationContext})...", AppName); - var host = CreateHostBuilder(configuration, args).Build(); + var host = CreateHostBuilder(configuration, args); Log.Information("Applying migrations ({ApplicationContext})...", AppName); host.MigrateDbContext((context, services) => @@ -64,33 +64,29 @@ public static int Main(string[] args) } } - - private static IHostBuilder CreateHostBuilder(IConfiguration configuration, string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureServices(services => services.AddAutofac()) - .ConfigureWebHostDefaults(builder => + private static IWebHost CreateHostBuilder(IConfiguration configuration, string[] args) => + WebHost.CreateDefaultBuilder(args) + .UseConfiguration(configuration) + .CaptureStartupErrors(false) + .ConfigureKestrel(options => { - builder.CaptureStartupErrors(false) - .UseConfiguration(configuration) - .ConfigureKestrel(options => + var ports = GetDefinedPorts(configuration); + options.Listen(IPAddress.Any, ports.httpPort, listenOptions => + { + listenOptions.Protocols = HttpProtocols.Http1AndHttp2; + }); + options.Listen(IPAddress.Any, ports.grpcPort, listenOptions => { - var ports = GetDefinedPorts(configuration); - options.Listen(IPAddress.Any, ports.httpPort, listenOptions => - { - listenOptions.Protocols = HttpProtocols.Http1AndHttp2; - }); - options.Listen(IPAddress.Any, ports.grpcPort, listenOptions => - { - listenOptions.Protocols = HttpProtocols.Http2; - }); - - }) - .UseStartup() - .UseApplicationInsights() - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseWebRoot("Pics") - .UseSerilog(); - }); + listenOptions.Protocols = HttpProtocols.Http2; + }); + + }) + .UseStartup() + .UseApplicationInsights() + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseWebRoot("Pics") + .UseSerilog() + .Build(); private static Serilog.ILogger CreateSerilogLogger(IConfiguration configuration) { From aedd0e38e9fc9ffdde6feadb6e7752d4105ecb32 Mon Sep 17 00:00:00 2001 From: ericuss Date: Mon, 5 Aug 2019 10:20:20 +0200 Subject: [PATCH 045/149] partial checkin --- .../WebHostExtensions.cs | 9 ++- .../Infrastructure/MarketingContext.cs | 15 +++- .../Marketing/Marketing.API/Startup.cs | 78 +++++++++++-------- .../Marketing.FunctionalTests.csproj | 3 +- .../MarketingTestStartup.cs | 13 +++- .../appsettings.json | 3 +- 6 files changed, 81 insertions(+), 40 deletions(-) diff --git a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs index 17f030e024..e6e1e22a11 100644 --- a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs +++ b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs @@ -39,8 +39,15 @@ public static IWebHost MigrateDbContext(this IWebHost webHost, Action< } else { + var retries = 10; var retry = Policy.Handle() - .WaitAndRetry(10, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))); + .WaitAndRetry( + retryCount: retries, + sleepDurationProvider: retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), + onRetry: (exception, timeSpan, retry, ctx) => + { + logger.LogWarning(exception, "[{prefix}] Exception {ExceptionType} with message {Message} detected on attempt {retry} of {retries}", nameof(TContext), exception.GetType().Name, exception.Message, retry, retries); + }); //if the sql server container is not created on run docker compose this //migration can't fail for network related exception. The retry options for DbContext only diff --git a/src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs b/src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs index dae9b5bb47..c4a803212c 100644 --- a/src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs +++ b/src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs @@ -1,9 +1,12 @@ namespace Microsoft.eShopOnContainers.Services.Marketing.API.Infrastructure { + using System; + using System.IO; using EntityConfigurations; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; using Microsoft.eShopOnContainers.Services.Marketing.API.Model; + using Microsoft.Extensions.Configuration; public class MarketingContext : DbContext { @@ -27,9 +30,17 @@ public class MarketingContextDesignFactory : IDesignTimeDbContextFactory() - .UseSqlServer("Server=.;Initial Catalog=Microsoft.eShopOnContainers.Services.MarketingDb;Integrated Security=true"); - + .UseSqlServer(connectionString); + // .UseSqlServer("Server=.;Initial Catalog=Microsoft.eShopOnContainers.Services.MarketingDb;Integrated Security=true"); return new MarketingContext(optionsBuilder.Options); } } diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs index c3ae02e23f..ff6fdd43af 100644 --- a/src/Services/Marketing/Marketing.API/Startup.cs +++ b/src/Services/Marketing/Marketing.API/Startup.cs @@ -23,7 +23,9 @@ using Marketing.API.IntegrationEvents.Handlers; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Diagnostics.HealthChecks; + using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore.Diagnostics; + using Microsoft.eShopOnContainers.Services.Marketing.API.Controllers; using Microsoft.eShopOnContainers.Services.Marketing.API.Infrastructure.Middlewares; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.OpenApi.Models; @@ -44,13 +46,18 @@ public Startup(IConfiguration configuration) // This method gets called by the runtime. Use this method to add services to the container. - public IServiceProvider ConfigureServices(IServiceCollection services) + public virtual IServiceProvider ConfigureServices(IServiceCollection services) { RegisterAppInsights(services); // Add framework services. services.AddCustomHealthCheck(Configuration); - services.AddControllers().AddNewtonsoftJson(); + services + .AddControllers() + // Added for functional tests + .AddApplicationPart(typeof(LocationsController).Assembly) + .AddNewtonsoftJson() + .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); services.Configure(Configuration); ConfigureAuthService(services); @@ -117,36 +124,8 @@ public IServiceProvider ConfigureServices(IServiceCollection services) } // Add framework services. - services.AddSwaggerGen(options => - { - options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new OpenApiInfo - { - Title = "eShopOnContainers - Marketing HTTP API", - Version = "v1", - Description = "The Marketing Service HTTP API" - }); - - options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme - { - Type = SecuritySchemeType.OAuth2, - Flows = new OpenApiOAuthFlows() - { - Implicit = new OpenApiOAuthFlow() - { - AuthorizationUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), - TokenUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/token"), - Scopes = new Dictionary() - { - { "marketing", "Marketing API" } - } - } - } - }); - - options.OperationFilter(); - }); + AddCustomSwagger(services); services.AddCors(options => { options.AddPolicy("CorsPolicy", @@ -186,10 +165,10 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF } app.UseCors("CorsPolicy"); + app.UseRouting(); ConfigureAuth(app); - app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapDefaultControllerRoute(); @@ -216,6 +195,39 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF ConfigureEventBus(app); } + private void AddCustomSwagger(IServiceCollection services) + { + services.AddSwaggerGen(options => + { + options.DescribeAllEnumsAsStrings(); + options.SwaggerDoc("v1", new OpenApiInfo + { + Title = "eShopOnContainers - Marketing HTTP API", + Version = "v1", + Description = "The Marketing Service HTTP API" + }); + + options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme + { + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows() + { + Implicit = new OpenApiOAuthFlow() + { + AuthorizationUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{Configuration.GetValue("IdentityUrlExternal")}/connect/token"), + Scopes = new Dictionary() + { + { "marketing", "Marketing API" } + } + } + } + }); + + options.OperationFilter(); + }); + } + private void RegisterAppInsights(IServiceCollection services) { services.AddApplicationInsightsTelemetry(Configuration); @@ -225,7 +237,7 @@ private void RegisterAppInsights(IServiceCollection services) private void ConfigureAuthService(IServiceCollection services) { // prevent from mapping "sub" claim to nameidentifier. - JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); + JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub"); services.AddAuthentication(options => { diff --git a/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj b/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj index eddf06086c..41deec5d4d 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj +++ b/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj @@ -17,8 +17,7 @@ - - + diff --git a/src/Services/Marketing/Marketing.FunctionalTests/MarketingTestStartup.cs b/src/Services/Marketing/Marketing.FunctionalTests/MarketingTestStartup.cs index e227deff6d..87d0fb9919 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/MarketingTestStartup.cs +++ b/src/Services/Marketing/Marketing.FunctionalTests/MarketingTestStartup.cs @@ -1,6 +1,9 @@ -using Microsoft.AspNetCore.Builder; +using System; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Routing; using Microsoft.eShopOnContainers.Services.Marketing.API; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; namespace Marketing.FunctionalTests { @@ -10,6 +13,14 @@ public MarketingTestsStartup(IConfiguration env) : base(env) { } + public override IServiceProvider ConfigureServices(IServiceCollection services) + { + // Added to avoid the Authorize data annotation in test environment. + // Property "SuppressCheckForUnhandledSecurityMetadata" in appsettings.json + services.Configure(Configuration); + return base.ConfigureServices(services); + } + protected override void ConfigureAuth(IApplicationBuilder app) { if (Configuration["isTest"] == bool.TrueString.ToLowerInvariant()) diff --git a/src/Services/Marketing/Marketing.FunctionalTests/appsettings.json b/src/Services/Marketing/Marketing.FunctionalTests/appsettings.json index 4a57bb0f58..11a1e090d3 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/appsettings.json +++ b/src/Services/Marketing/Marketing.FunctionalTests/appsettings.json @@ -6,5 +6,6 @@ "isTest": "true", "EventBusConnection": "localhost", "PicBaseUrl": "http://localhost:5110/api/v1/campaigns/[0]/pic/", - "SubscriptionClientName": "Marketing" + "SubscriptionClientName": "Marketing", + "SuppressCheckForUnhandledSecurityMetadata":true } From 44af7aa8d267c9c59d87c278c8a518c44a50d9f3 Mon Sep 17 00:00:00 2001 From: ericuss Date: Mon, 5 Aug 2019 14:21:58 +0200 Subject: [PATCH 046/149] Partial checkin --- .../WebHostExtensions.cs | 62 +++++++++++++++++++ .../Infrastructure/MarketingContext.cs | 1 + .../CampaignScenarios.cs | 4 +- .../MarketingScenarioBase.cs | 34 +++++++++- 4 files changed, 97 insertions(+), 4 deletions(-) diff --git a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs index e6e1e22a11..2b7f661da9 100644 --- a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs +++ b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs @@ -60,6 +60,7 @@ public static IWebHost MigrateDbContext(this IWebHost webHost, Action< } catch (Exception ex) { + Console.WriteLine(ex.Message.ToString() + "An error occurred while migrating the database used on context {DbContextName}" + typeof(TContext).Name); logger.LogError(ex, "An error occurred while migrating the database used on context {DbContextName}", typeof(TContext).Name); if (underK8s) { @@ -71,11 +72,72 @@ public static IWebHost MigrateDbContext(this IWebHost webHost, Action< return webHost; } + + public static IWebHost RemoveDbContext(this IWebHost webHost) where TContext : DbContext + { + var underK8s = webHost.IsInKubernetes(); + + using (var scope = webHost.Services.CreateScope()) + { + var services = scope.ServiceProvider; + var logger = services.GetRequiredService>(); + var context = services.GetService(); + + try + { + logger.LogInformation("Deleting the database associated with context {DbContextName}" + typeof(TContext).Name); + + if (underK8s) + { + InvokeRemover(context); + } + else + { + var retries = 10; + var retry = Policy.Handle() + .WaitAndRetry( + retryCount: retries, + sleepDurationProvider: retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), + onRetry: (exception, timeSpan, retry, ctx) => + { + Console.WriteLine(" --RETRYING Exception " + exception.Message.ToString()); + logger.LogWarning(exception, "[{prefix}] Exception {ExceptionType} with message {Message} detected on attempt {retry} of {retries}", nameof(TContext), exception.GetType().Name, exception.Message, retry, retries); + }); + + //if the sql server container is not created on run docker compose this + //migration can't fail for network related exception. The retry options for DbContext only + //apply to transient exceptions + // Note that this is NOT applied when running some orchestrators (let the orchestrator to recreate the failing service) + retry.Execute(() => InvokeRemover(context)); + } + + Console.WriteLine("Deleted database associated with context {DbContextName}", typeof(TContext).Name); + logger.LogInformation("Deleted database associated with context {DbContextName}", typeof(TContext).Name); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message.ToString() + "An error occurred while deleting the database used on context {DbContextName}" + typeof(TContext).Name); + logger.LogError(ex, "An error occurred while deleting the database used on context {DbContextName}", typeof(TContext).Name); + if (underK8s) + { + throw; // Rethrow under k8s because we rely on k8s to re-run the pod + } + } + } + + return webHost; + } + private static void InvokeSeeder(Action seeder, TContext context, IServiceProvider services) where TContext : DbContext { context.Database.Migrate(); seeder(context, services); } + private static void InvokeRemover(TContext context) + where TContext : DbContext + { + context.Database.EnsureDeleted(); + } } } diff --git a/src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs b/src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs index c4a803212c..064a1c3e51 100644 --- a/src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs +++ b/src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs @@ -38,6 +38,7 @@ public MarketingContext CreateDbContext(string[] args) var connectionString = configuration["ConnectionString"]; Console.WriteLine(" -- Connection string"); Console.WriteLine(connectionString); + var optionsBuilder = new DbContextOptionsBuilder() .UseSqlServer(connectionString); // .UseSqlServer("Server=.;Initial Catalog=Microsoft.eShopOnContainers.Services.MarketingDb;Integrated Security=true"); diff --git a/src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs b/src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs index abeb4a5040..f2643e9989 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs +++ b/src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs @@ -75,7 +75,7 @@ public async Task Delete_delete_campaign_and_response_not_content_status_code() var campaignResponse = await server.CreateClient() .PostAsync(Post.AddNewCampaign, content); - if (int.TryParse(campaignResponse.Headers.Location.Segments[4], out int id)) + if (int.TryParse(campaignResponse.Headers.Location.Segments[3], out int id)) { var response = await server.CreateClient() .DeleteAsync(Delete.CampaignBy(id)); @@ -99,7 +99,7 @@ public async Task Put_update_campaign_and_response_not_content_status_code() var campaignResponse = await server.CreateClient() .PostAsync(Post.AddNewCampaign, content); - if (int.TryParse(campaignResponse.Headers.Location.Segments[4], out int id)) + if (int.TryParse(campaignResponse.Headers.Location.Segments[3], out int id)) { fakeCampaignDto.Description = "FakeCampaignUpdatedDescription"; content = new StringContent(JsonConvert.SerializeObject(fakeCampaignDto), Encoding.UTF8, "application/json"); diff --git a/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs b/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs index 274db5f69b..fdee81ce3e 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs +++ b/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs @@ -1,11 +1,16 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.TestHost; +using Microsoft.eShopOnContainers.Services.Marketing.API; using Microsoft.eShopOnContainers.Services.Marketing.API.Infrastructure; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using System; using System.IO; using System.Reflection; +using System.Threading; +using System.Threading.Tasks; namespace Marketing.FunctionalTests { @@ -15,29 +20,54 @@ public class MarketingScenarioBase public TestServer CreateServer() { + + Console.WriteLine(" Creating test server"); var path = Assembly.GetAssembly(typeof(MarketingScenarioBase)) .Location; + Console.WriteLine(" Creating builder"); + var hostBuilder = new WebHostBuilder() .UseContentRoot(Path.GetDirectoryName(path)) .ConfigureAppConfiguration(cb => { - cb.AddJsonFile("appsettings.json", optional: false) + var h = cb.AddJsonFile("appsettings.json", optional: false) .AddEnvironmentVariables(); - }).UseStartup(); + }) + .CaptureStartupErrors(true) + .UseStartup(); + Console.WriteLine(" Created builder"); + var testServer = new TestServer(hostBuilder); + using (var scope = testServer.Services.CreateScope()) + { + var services = scope.ServiceProvider; + + var logger = services.GetRequiredService>(); + var settings = services.GetRequiredService>(); + logger.LogError("connectionString " + settings.Value.ConnectionString); + Console.WriteLine("connectionString " + settings.Value.ConnectionString); + } + testServer.Host + .RemoveDbContext() .MigrateDbContext((context, services) => { var logger = services.GetService>(); + logger.LogError("Migrating MarketingContextSeed"); new MarketingContextSeed() .SeedAsync(context, logger) .Wait(); }); + Console.WriteLine(" Thread to sleep"); + + Thread.Sleep(5000); + Console.WriteLine(" Thread after"); + return testServer; } From c52484859f724d0748ef23bbf49924869dfaf655 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Mon, 5 Aug 2019 15:03:57 +0200 Subject: [PATCH 047/149] change bff to 2.2 and fix mvc routing --- src/ApiGateways/ApiGw-Base/Dockerfile | 5 +- .../Mobile.Bff.Shopping/aggregator/Dockerfile | 4 +- .../Filters/AuthorizeCheckOperationFilter.cs | 19 ++-- .../Mobile.Shopping.HttpAggregator.csproj | 34 ++++++- .../Mobile.Bff.Shopping/aggregator/Startup.cs | 95 ++++++++++--------- .../Web.Bff.Shopping/aggregator/Dockerfile | 4 +- .../Filters/AuthorizeCheckOperationFilter.cs | 19 ++-- .../Web.Bff.Shopping/aggregator/Startup.cs | 60 +++++------- .../Web.Shopping.HttpAggregator.csproj | 33 ++++++- .../Devspaces.Support.csproj | 2 +- .../WebMVC/Controllers/AccountController.cs | 5 +- .../WebMVC/Controllers/CampaignsController.cs | 2 +- src/Web/WebMVC/Controllers/CartController.cs | 2 +- src/Web/WebMVC/Controllers/OrderController.cs | 2 +- .../Controllers/OrderManagementController.cs | 2 +- src/Web/WebMVC/Startup.cs | 34 ++++--- 16 files changed, 185 insertions(+), 137 deletions(-) diff --git a/src/ApiGateways/ApiGw-Base/Dockerfile b/src/ApiGateways/ApiGw-Base/Dockerfile index 0d66ada6b7..7a5bb928cf 100644 --- a/src/ApiGateways/ApiGw-Base/Dockerfile +++ b/src/ApiGateways/ApiGw-Base/Dockerfile @@ -1,10 +1,9 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build +FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build WORKDIR /src - COPY scripts scripts/ COPY src/ApiGateways/*/*.csproj /src/csproj-files/ diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile index 3d89c9b272..9b03eccbda 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build +FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs index 3b8298bfe0..21997360bd 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs @@ -1,7 +1,7 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Filters { using Microsoft.AspNetCore.Authorization; - using Microsoft.OpenApi.Models; + using Swashbuckle.AspNetCore.Swagger; using Swashbuckle.AspNetCore.SwaggerGen; using System.Collections.Generic; using System.Linq; @@ -10,7 +10,7 @@ namespace Basket.API.Infrastructure.Filters { public class AuthorizeCheckOperationFilter : IOperationFilter { - public void Apply(OpenApiOperation operation, OperationFilterContext context) + public void Apply(Operation operation, OperationFilterContext context) { // Check for authorize attribute var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() || @@ -18,19 +18,14 @@ public void Apply(OpenApiOperation operation, OperationFilterContext context) if (!hasAuthorize) return; - operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" }); - operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" }); + operation.Responses.TryAdd("401", new Response { Description = "Unauthorized" }); + operation.Responses.TryAdd("403", new Response { Description = "Forbidden" }); - var oAuthScheme = new OpenApiSecurityScheme + operation.Security = new List>> { - Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } - }; - - operation.Security = new List - { - new OpenApiSecurityRequirement + new Dictionary> { - [ oAuthScheme ] = new [] { "Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator" } + { "oauth2", new [] { "Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator" } } } }; } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj index fdf05ab762..57efd4a9fa 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj @@ -1,4 +1,4 @@ - + + + + + netcoreapp2.2 + Mobile.Shopping.HttpAggregator + Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator + ..\..\..\docker-compose.dcproj + $(LangVersion) + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index 602477ddeb..c60cb787a9 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Config; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Filters.Basket.API.Infrastructure.Filters; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Infrastructure; @@ -13,9 +14,9 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; -using Microsoft.OpenApi.Models; using Polly; using Polly.Extensions.Http; +using Swashbuckle.AspNetCore.Swagger; using System; using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; @@ -45,12 +46,10 @@ public void ConfigureServices(IServiceCollection services) .AddUrlGroup(new Uri(Configuration["PaymentUrlHC"]), name: "paymentapi-check", tags: new string[] { "paymentapi" }) .AddUrlGroup(new Uri(Configuration["LocationUrlHC"]), name: "locationapi-check", tags: new string[] { "locationapi" }); - services.AddCustomRouting(Configuration) + services.AddCustomMvc(Configuration) .AddCustomAuthentication(Configuration) .AddDevspaces() .AddHttpServices(); - - services.AddControllers().AddNewtonsoftJson(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -64,6 +63,17 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UsePathBase(pathBase); } + app.UseHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + + app.UseHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + app.UseCors("CorsPolicy"); if (env.IsDevelopment()) @@ -76,68 +86,52 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseHsts(); } - app.UseHttpsRedirection(); - app.UseRouting(); app.UseAuthentication(); - app.UseAuthorization(); - app.UseEndpoints(endpoints => - { - endpoints.MapDefaultControllerRoute(); - endpoints.MapControllers(); - endpoints.MapHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - endpoints.MapHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - }); + app.UseHttpsRedirection(); + app.UseMvc(); app.UseSwagger().UseSwaggerUI(c => - { - c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Purchase BFF V1"); - - c.OAuthClientId("Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregatorwaggerui"); - c.OAuthClientSecret(string.Empty); - c.OAuthRealm(string.Empty); - c.OAuthAppName("Purchase BFF Swagger UI"); - }); + { + c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Purchase BFF V1"); + + c.OAuthClientId("Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregatorwaggerui"); + c.OAuthClientSecret(string.Empty); + c.OAuthRealm(string.Empty); + c.OAuthAppName("Purchase BFF Swagger UI"); + }); } } public static class ServiceCollectionExtensions { - public static IServiceCollection AddCustomRouting(this IServiceCollection services, IConfiguration configuration) + public static IServiceCollection AddCustomMvc(this IServiceCollection services, IConfiguration configuration) { services.AddOptions(); services.Configure(configuration.GetSection("urls")); - services.AddControllers().AddNewtonsoftJson(); + + services.AddMvc() + .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); + services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new OpenApiInfo + options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info { - Title = "eShopOnContainers - Shopping Aggregator for Mobile Clients", + Title = "Shopping Aggregator for Mobile Clients", Version = "v1", - Description = "Shopping Aggregator for Mobile Clients" + Description = "Shopping Aggregator for Mobile Clients", + TermsOfService = "Terms Of Service" }); - options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme + options.AddSecurityDefinition("oauth2", new OAuth2Scheme { - Type = SecuritySchemeType.OAuth2, - Flows = new OpenApiOAuthFlows() + Type = "oauth2", + Flow = "implicit", + AuthorizationUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize", + TokenUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/token", + Scopes = new Dictionary() { - Implicit = new OpenApiOAuthFlow() - { - AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), - TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), - Scopes = new Dictionary() - { - { "marketing", "Marketing API" } - } - } + { "mobileshoppingagg", "Shopping Aggregator for Mobile Clients" } } }); @@ -172,6 +166,15 @@ public static IServiceCollection AddCustomAuthentication(this IServiceCollection options.Authority = identityUrl; options.RequireHttpsMetadata = false; options.Audience = "mobileshoppingagg"; + options.Events = new JwtBearerEvents() + { + OnAuthenticationFailed = async ctx => + { + }, + OnTokenValidated = async ctx => + { + } + }; }); return services; diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile index 2a3b551a24..fbce2f0ab3 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build +FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs index 45c1911046..e93ec157cc 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs @@ -1,7 +1,7 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Filters { using Microsoft.AspNetCore.Authorization; - using Microsoft.OpenApi.Models; + using Swashbuckle.AspNetCore.Swagger; using Swashbuckle.AspNetCore.SwaggerGen; using System.Collections.Generic; using System.Linq; @@ -10,7 +10,7 @@ namespace Basket.API.Infrastructure.Filters { public class AuthorizeCheckOperationFilter : IOperationFilter { - public void Apply(OpenApiOperation operation, OperationFilterContext context) + public void Apply(Operation operation, OperationFilterContext context) { // Check for authorize attribute var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() || @@ -18,19 +18,14 @@ public void Apply(OpenApiOperation operation, OperationFilterContext context) if (!hasAuthorize) return; - operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" }); - operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" }); + operation.Responses.TryAdd("401", new Response { Description = "Unauthorized" }); + operation.Responses.TryAdd("403", new Response { Description = "Forbidden" }); - var oAuthScheme = new OpenApiSecurityScheme + operation.Security = new List>> { - Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } - }; - - operation.Security = new List - { - new OpenApiSecurityRequirement + new Dictionary> { - [ oAuthScheme ] = new [] { "Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator" } + { "oauth2", new [] { "Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator" } } } }; } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index 257334aa35..9b144db485 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -14,9 +14,9 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; -using Microsoft.OpenApi.Models; using Polly; using Polly.Extensions.Http; +using Swashbuckle.AspNetCore.Swagger; using System; using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; @@ -50,8 +50,6 @@ public void ConfigureServices(IServiceCollection services) .AddCustomAuthentication(Configuration) .AddDevspaces() .AddApplicationServices(); - - services.AddControllers().AddNewtonsoftJson(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -64,6 +62,17 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UsePathBase(pathBase); } + app.UseHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + + app.UseHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + app.UseCors("CorsPolicy"); if (env.IsDevelopment()) @@ -77,23 +86,8 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF } app.UseAuthentication(); - app.UseAuthorization(); app.UseHttpsRedirection(); - app.UseRouting(); - app.UseEndpoints(endpoints => - { - endpoints.MapDefaultControllerRoute(); - endpoints.MapControllers(); - endpoints.MapHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - endpoints.MapHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - }); + app.UseMvc(); app.UseSwagger() .UseSwaggerUI(c => @@ -142,32 +136,28 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, services.Configure(configuration.GetSection("urls")); services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); + .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new OpenApiInfo + options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info { - Title = "eShopOnContainers - Shopping Aggregator for Web Clients", + Title = "Shopping Aggregator for Web Clients", Version = "v1", - Description = "Shopping Aggregator for Web Clients" + Description = "Shopping Aggregator for Web Clients", + TermsOfService = "Terms Of Service" }); - options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme + options.AddSecurityDefinition("oauth2", new OAuth2Scheme { - Type = SecuritySchemeType.OAuth2, - Flows = new OpenApiOAuthFlows() + Type = "oauth2", + Flow = "implicit", + AuthorizationUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize", + TokenUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/token", + Scopes = new Dictionary() { - Implicit = new OpenApiOAuthFlow() - { - AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), - TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), - Scopes = new Dictionary() - { - { "webshoppingagg", "Shopping Aggregator for Web Clients" } - } - } + { "webshoppingagg", "Shopping Aggregator for Web Clients" } } }); diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj index a3eaa1ae63..ef610d5721 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj @@ -1,4 +1,4 @@ - + + + + + netcoreapp2.2 + Web.Shopping.HttpAggregator + Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator + ..\..\..\docker-compose.dcproj + $(LangVersion) + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj b/src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj index 05fc111a4e..47c724f394 100644 --- a/src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj +++ b/src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj @@ -1,7 +1,7 @@  - $(NetStandardTargetVersion) + netstandard2.0 diff --git a/src/Web/WebMVC/Controllers/AccountController.cs b/src/Web/WebMVC/Controllers/AccountController.cs index de10770f5d..8b82498ba0 100644 --- a/src/Web/WebMVC/Controllers/AccountController.cs +++ b/src/Web/WebMVC/Controllers/AccountController.cs @@ -10,7 +10,7 @@ namespace Microsoft.eShopOnContainers.WebMVC.Controllers { - [Authorize] + [Authorize(AuthenticationSchemes = "OpenIdConnect")] public class AccountController : Controller { private readonly ILogger _logger; @@ -20,8 +20,7 @@ public AccountController(ILogger logger) _logger = logger ?? throw new ArgumentNullException(nameof(logger)); } - [Authorize] - public async Task SignIn(string returnUrl) + [Authorize(AuthenticationSchemes = "OpenIdConnect")] public async Task SignIn(string returnUrl) { var user = User as ClaimsPrincipal; var token = await HttpContext.GetTokenAsync("access_token"); diff --git a/src/Web/WebMVC/Controllers/CampaignsController.cs b/src/Web/WebMVC/Controllers/CampaignsController.cs index d26e60f946..cf210318ba 100644 --- a/src/Web/WebMVC/Controllers/CampaignsController.cs +++ b/src/Web/WebMVC/Controllers/CampaignsController.cs @@ -12,7 +12,7 @@ namespace Microsoft.eShopOnContainers.WebMVC.Controllers using ViewModels; using ViewModels.Pagination; - [Authorize] + [Authorize(AuthenticationSchemes = "OpenIdConnect")] public class CampaignsController : Controller { private readonly ICampaignService _campaignService; diff --git a/src/Web/WebMVC/Controllers/CartController.cs b/src/Web/WebMVC/Controllers/CartController.cs index 30ac77e8be..6887c8d413 100644 --- a/src/Web/WebMVC/Controllers/CartController.cs +++ b/src/Web/WebMVC/Controllers/CartController.cs @@ -9,7 +9,7 @@ namespace Microsoft.eShopOnContainers.WebMVC.Controllers { - [Authorize] + [Authorize(AuthenticationSchemes = "OpenIdConnect")] public class CartController : Controller { private readonly IBasketService _basketSvc; diff --git a/src/Web/WebMVC/Controllers/OrderController.cs b/src/Web/WebMVC/Controllers/OrderController.cs index cb5234e3cb..6249492dac 100644 --- a/src/Web/WebMVC/Controllers/OrderController.cs +++ b/src/Web/WebMVC/Controllers/OrderController.cs @@ -7,7 +7,7 @@ namespace Microsoft.eShopOnContainers.WebMVC.Controllers { - [Authorize] + [Authorize(AuthenticationSchemes = "OpenIdConnect")] public class OrderController : Controller { private IOrderingService _orderSvc; diff --git a/src/Web/WebMVC/Controllers/OrderManagementController.cs b/src/Web/WebMVC/Controllers/OrderManagementController.cs index 7d61b02217..a488dc4ae9 100644 --- a/src/Web/WebMVC/Controllers/OrderManagementController.cs +++ b/src/Web/WebMVC/Controllers/OrderManagementController.cs @@ -10,7 +10,7 @@ namespace WebMVC.Controllers { - [Authorize] + [Authorize(AuthenticationSchemes = "OpenIdConnect")] public class OrderManagementController : Controller { private IOrderingService _orderSvc; diff --git a/src/Web/WebMVC/Startup.cs b/src/Web/WebMVC/Startup.cs index 014dca9f64..321e885484 100644 --- a/src/Web/WebMVC/Startup.cs +++ b/src/Web/WebMVC/Startup.cs @@ -38,21 +38,24 @@ public Startup(IConfiguration configuration) // This method gets called by the runtime. Use this method to add services to the IoC container. public void ConfigureServices(IServiceCollection services) { - services.AddAppInsight(Configuration) - .AddHealthChecks(Configuration) - .AddCustomMvc(Configuration) - .AddDevspaces() - .AddHttpClientServices(Configuration) - //.AddHttpClientLogging(Configuration) //Opt-in HttpClientLogging config - .AddCustomAuthentication(Configuration); - + services.AddControllersWithViews() + .Services + .AddAppInsight(Configuration) + .AddHealthChecks(Configuration) + .AddCustomMvc(Configuration) + .AddDevspaces() + .AddHttpClientServices(Configuration); + //.AddHttpClientLogging(Configuration) //Opt-in HttpClientLogging config + services.AddControllers(); + + services.AddCustomAuthentication(Configuration); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { - JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); + JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub"); //loggerFactory.AddAzureWebAppDiagnostics(); //loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); @@ -67,14 +70,15 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF } var pathBase = Configuration["PATH_BASE"]; + if (!string.IsNullOrEmpty(pathBase)) { loggerFactory.CreateLogger().LogDebug("Using PATH BASE '{PathBase}'", pathBase); app.UsePathBase(pathBase); } - app.UseSession(); app.UseStaticFiles(); + app.UseSession(); if (Configuration.GetValue("UseLoadTest")) { @@ -85,7 +89,10 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseHttpsRedirection(); app.UseRouting(); + app.UseAuthentication(); + app.UseAuthorization(); + app.UseEndpoints(endpoints => { endpoints.MapControllerRoute("default", "{controller=Catalog}/{action=Index}/{id?}"); @@ -130,11 +137,8 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, { services.AddOptions(); services.Configure(configuration); - - services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); - services.AddSession(); + services.AddDistributedMemoryCache(); if (configuration.GetValue("IsClusterEnv") == bool.TrueString) { @@ -144,6 +148,7 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, }) .PersistKeysToRedis(ConnectionMultiplexer.Connect(configuration["DPConnectionString"]), "DataProtection-Keys"); } + return services; } @@ -258,7 +263,6 @@ static IAsyncPolicy GetRetryPolicy() .HandleTransientHttpError() .OrResult(msg => msg.StatusCode == System.Net.HttpStatusCode.NotFound) .WaitAndRetryAsync(6, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))); - } static IAsyncPolicy GetCircuitBreakerPolicy() { From 48bc95f88c576342f6ebe267c6684bc0dbaeac02 Mon Sep 17 00:00:00 2001 From: ericuss Date: Mon, 5 Aug 2019 16:17:18 +0200 Subject: [PATCH 048/149] Fix functional tests of Marketing --- .../WebHostExtensions.cs | 64 ------------------- .../Infrastructure/MarketingContext.cs | 5 +- .../CampaignScenarios.cs | 1 + .../MarketingScenarioBase.cs | 22 ------- .../UserLocationRoleScenarios.cs | 1 + 5 files changed, 3 insertions(+), 90 deletions(-) diff --git a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs index 2b7f661da9..6316ae59d5 100644 --- a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs +++ b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs @@ -24,9 +24,7 @@ public static IWebHost MigrateDbContext(this IWebHost webHost, Action< using (var scope = webHost.Services.CreateScope()) { var services = scope.ServiceProvider; - var logger = services.GetRequiredService>(); - var context = services.GetService(); try @@ -60,7 +58,6 @@ public static IWebHost MigrateDbContext(this IWebHost webHost, Action< } catch (Exception ex) { - Console.WriteLine(ex.Message.ToString() + "An error occurred while migrating the database used on context {DbContextName}" + typeof(TContext).Name); logger.LogError(ex, "An error occurred while migrating the database used on context {DbContextName}", typeof(TContext).Name); if (underK8s) { @@ -72,72 +69,11 @@ public static IWebHost MigrateDbContext(this IWebHost webHost, Action< return webHost; } - - public static IWebHost RemoveDbContext(this IWebHost webHost) where TContext : DbContext - { - var underK8s = webHost.IsInKubernetes(); - - using (var scope = webHost.Services.CreateScope()) - { - var services = scope.ServiceProvider; - var logger = services.GetRequiredService>(); - var context = services.GetService(); - - try - { - logger.LogInformation("Deleting the database associated with context {DbContextName}" + typeof(TContext).Name); - - if (underK8s) - { - InvokeRemover(context); - } - else - { - var retries = 10; - var retry = Policy.Handle() - .WaitAndRetry( - retryCount: retries, - sleepDurationProvider: retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), - onRetry: (exception, timeSpan, retry, ctx) => - { - Console.WriteLine(" --RETRYING Exception " + exception.Message.ToString()); - logger.LogWarning(exception, "[{prefix}] Exception {ExceptionType} with message {Message} detected on attempt {retry} of {retries}", nameof(TContext), exception.GetType().Name, exception.Message, retry, retries); - }); - - //if the sql server container is not created on run docker compose this - //migration can't fail for network related exception. The retry options for DbContext only - //apply to transient exceptions - // Note that this is NOT applied when running some orchestrators (let the orchestrator to recreate the failing service) - retry.Execute(() => InvokeRemover(context)); - } - - Console.WriteLine("Deleted database associated with context {DbContextName}", typeof(TContext).Name); - logger.LogInformation("Deleted database associated with context {DbContextName}", typeof(TContext).Name); - } - catch (Exception ex) - { - Console.WriteLine(ex.Message.ToString() + "An error occurred while deleting the database used on context {DbContextName}" + typeof(TContext).Name); - logger.LogError(ex, "An error occurred while deleting the database used on context {DbContextName}", typeof(TContext).Name); - if (underK8s) - { - throw; // Rethrow under k8s because we rely on k8s to re-run the pod - } - } - } - - return webHost; - } - private static void InvokeSeeder(Action seeder, TContext context, IServiceProvider services) where TContext : DbContext { context.Database.Migrate(); seeder(context, services); } - private static void InvokeRemover(TContext context) - where TContext : DbContext - { - context.Database.EnsureDeleted(); - } } } diff --git a/src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs b/src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs index 064a1c3e51..e06106b5ed 100644 --- a/src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs +++ b/src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs @@ -35,13 +35,10 @@ public MarketingContext CreateDbContext(string[] args) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddEnvironmentVariables() .Build(); - var connectionString = configuration["ConnectionString"]; - Console.WriteLine(" -- Connection string"); - Console.WriteLine(connectionString); + var connectionString = configuration["ConnectionString"]; var optionsBuilder = new DbContextOptionsBuilder() .UseSqlServer(connectionString); - // .UseSqlServer("Server=.;Initial Catalog=Microsoft.eShopOnContainers.Services.MarketingDb;Integrated Security=true"); return new MarketingContext(optionsBuilder.Options); } } diff --git a/src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs b/src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs index f2643e9989..3742b80c63 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs +++ b/src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs @@ -9,6 +9,7 @@ namespace Marketing.FunctionalTests { + [Collection("Sequential")] public class CampaignScenarios : CampaignScenarioBase { diff --git a/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs b/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs index fdee81ce3e..7ddf991a40 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs +++ b/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs @@ -20,13 +20,9 @@ public class MarketingScenarioBase public TestServer CreateServer() { - - Console.WriteLine(" Creating test server"); var path = Assembly.GetAssembly(typeof(MarketingScenarioBase)) .Location; - Console.WriteLine(" Creating builder"); - var hostBuilder = new WebHostBuilder() .UseContentRoot(Path.GetDirectoryName(path)) .ConfigureAppConfiguration(cb => @@ -37,22 +33,9 @@ public TestServer CreateServer() .CaptureStartupErrors(true) .UseStartup(); - Console.WriteLine(" Created builder"); - var testServer = new TestServer(hostBuilder); - using (var scope = testServer.Services.CreateScope()) - { - var services = scope.ServiceProvider; - - var logger = services.GetRequiredService>(); - var settings = services.GetRequiredService>(); - logger.LogError("connectionString " + settings.Value.ConnectionString); - Console.WriteLine("connectionString " + settings.Value.ConnectionString); - } - testServer.Host - .RemoveDbContext() .MigrateDbContext((context, services) => { var logger = services.GetService>(); @@ -63,11 +46,6 @@ public TestServer CreateServer() .Wait(); }); - Console.WriteLine(" Thread to sleep"); - - Thread.Sleep(5000); - Console.WriteLine(" Thread after"); - return testServer; } diff --git a/src/Services/Marketing/Marketing.FunctionalTests/UserLocationRoleScenarios.cs b/src/Services/Marketing/Marketing.FunctionalTests/UserLocationRoleScenarios.cs index b8ee38e17c..fe76923e05 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/UserLocationRoleScenarios.cs +++ b/src/Services/Marketing/Marketing.FunctionalTests/UserLocationRoleScenarios.cs @@ -8,6 +8,7 @@ namespace Marketing.FunctionalTests { + [Collection("Sequential")] public class UserLocationRoleScenarios : UserLocationRoleScenariosBase { From 17faebfa30476a8ef3020f2efe76474a82e8d26c Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Tue, 6 Aug 2019 08:51:17 +0200 Subject: [PATCH 049/149] remove mvc routing spa --- .../CampaignScenarios.cs | 1 + .../MarketingScenarioBase.cs | 18 ++---------------- .../UserLocationRoleScenarios.cs | 1 + src/Web/WebSPA/Startup.cs | 16 ++++------------ 4 files changed, 8 insertions(+), 28 deletions(-) diff --git a/src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs b/src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs index f2643e9989..3742b80c63 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs +++ b/src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs @@ -9,6 +9,7 @@ namespace Marketing.FunctionalTests { + [Collection("Sequential")] public class CampaignScenarios : CampaignScenarioBase { diff --git a/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs b/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs index fdee81ce3e..2ae78237c2 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs +++ b/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs @@ -20,13 +20,9 @@ public class MarketingScenarioBase public TestServer CreateServer() { - - Console.WriteLine(" Creating test server"); var path = Assembly.GetAssembly(typeof(MarketingScenarioBase)) .Location; - Console.WriteLine(" Creating builder"); - var hostBuilder = new WebHostBuilder() .UseContentRoot(Path.GetDirectoryName(path)) .ConfigureAppConfiguration(cb => @@ -36,38 +32,28 @@ public TestServer CreateServer() }) .CaptureStartupErrors(true) .UseStartup(); - - Console.WriteLine(" Created builder"); var testServer = new TestServer(hostBuilder); - using (var scope = testServer.Services.CreateScope()) + using (var scope = testServer.Services.CreateScope()) { var services = scope.ServiceProvider; var logger = services.GetRequiredService>(); var settings = services.GetRequiredService>(); logger.LogError("connectionString " + settings.Value.ConnectionString); - Console.WriteLine("connectionString " + settings.Value.ConnectionString); } testServer.Host - .RemoveDbContext() .MigrateDbContext((context, services) => { var logger = services.GetService>(); - logger.LogError("Migrating MarketingContextSeed"); + logger.LogError("Migrating MarketingContextSeed"); new MarketingContextSeed() .SeedAsync(context, logger) .Wait(); - }); - Console.WriteLine(" Thread to sleep"); - - Thread.Sleep(5000); - Console.WriteLine(" Thread after"); - return testServer; } diff --git a/src/Services/Marketing/Marketing.FunctionalTests/UserLocationRoleScenarios.cs b/src/Services/Marketing/Marketing.FunctionalTests/UserLocationRoleScenarios.cs index b8ee38e17c..fe76923e05 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/UserLocationRoleScenarios.cs +++ b/src/Services/Marketing/Marketing.FunctionalTests/UserLocationRoleScenarios.cs @@ -8,6 +8,7 @@ namespace Marketing.FunctionalTests { + [Collection("Sequential")] public class UserLocationRoleScenarios : UserLocationRoleScenariosBase { diff --git a/src/Web/WebSPA/Startup.cs b/src/Web/WebSPA/Startup.cs index 431ea5fbb2..7e6c374f7b 100644 --- a/src/Web/WebSPA/Startup.cs +++ b/src/Web/WebSPA/Startup.cs @@ -5,7 +5,6 @@ using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; @@ -26,12 +25,8 @@ public Startup(IConfiguration configuration) public IConfiguration Configuration { get; } - private IHostingEnvironment _hostingEnv; - - public Startup(IHostingEnvironment env) + public Startup() { - _hostingEnv = env; - var localPath = new Uri(Configuration["ASPNETCORE_URLS"])?.LocalPath ?? "/"; Configuration["BaseUrl"] = localPath; } @@ -48,8 +43,6 @@ public void ConfigureServices(IServiceCollection services) .AddUrlGroup(new Uri(Configuration["MarketingUrlHC"]), name: "marketingapigw-check", tags: new string[] { "marketingapigw" }) .AddUrlGroup(new Uri(Configuration["IdentityUrlHC"]), name: "identityapi-check", tags: new string[] { "identityapi" }); - services.AddControllers(); - services.Configure(Configuration); if (Configuration.GetValue("IsClusterEnv") == bool.TrueString) @@ -62,16 +55,13 @@ public void ConfigureServices(IServiceCollection services) } services.AddAntiforgery(options => options.HeaderName = "X-XSRF-TOKEN"); - - services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) + services.AddControllers() .AddJsonOptions(options => { options.JsonSerializerOptions.PropertyNameCaseInsensitive = true; }); } - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IAntiforgery antiforgery) { @@ -102,6 +92,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF WebContextSeed.Seed(app, env, loggerFactory); var pathBase = Configuration["PATH_BASE"]; + if (!string.IsNullOrEmpty(pathBase)) { loggerFactory.CreateLogger().LogDebug("Using PATH BASE '{pathBase}'", pathBase); @@ -127,6 +118,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseRouting(); app.UseEndpoints(endpoints => { + endpoints.MapControllers(); endpoints.MapHealthChecks("/liveness", new HealthCheckOptions { Predicate = r => r.Name.Contains("self") From 56f3a6b82e1305b5b701fc6675651dcf899253cb Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Tue, 6 Aug 2019 16:10:39 +0200 Subject: [PATCH 050/149] move background task --- eShopOnContainers-ServicesAndWebApps.sln | 51 +++++++ .../Controllers/BasketController.cs | 33 ++-- .../IntegrationEventLogEntry.cs | 10 +- .../Services/IntegrationEventLogService.cs | 11 +- src/Services/Catalog/Catalog.API/Startup.cs | 2 +- .../Behaviors/TransactionBehaviour.cs | 2 + src/Services/Ordering/Ordering.API/Program.cs | 2 - src/Services/Ordering/Ordering.API/Startup.cs | 2 +- .../BackgroundTaskSettings.cs | 15 ++ .../Ordering.BackgroundTasks/Dockerfile | 18 +++ .../GracePeriodConfirmedIntegrationEvent.cs | 12 ++ .../Extensions/CustomExtensionMethods.cs | 141 ++++++++++++++++++ .../Ordering.BackgroundTasks.csproj | 33 ++++ .../Ordering.BackgroundTasks/Program.cs | 40 +++++ .../Properties/launchSettings.json | 13 ++ .../Tasks/GracePeriodManagerTask.cs | 11 +- .../appsettings.Development.json | 9 ++ .../Ordering.BackgroundTasks/appsettings.json | 26 ++++ src/Services/Webhooks/Webhooks.API/Startup.cs | 2 +- src/Web/WebSPA/Startup.cs | 1 + src/_build/dependencies.props | 2 + 21 files changed, 407 insertions(+), 29 deletions(-) create mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/BackgroundTaskSettings.cs create mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile create mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Events/GracePeriodConfirmedIntegrationEvent.cs create mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs create mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj create mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Program.cs create mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Properties/launchSettings.json rename src/Services/Ordering/{Ordering.API/Infrastructure => Ordering.BackgroundTasks}/Tasks/GracePeriodManagerTask.cs (87%) create mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/appsettings.Development.json create mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/appsettings.json diff --git a/eShopOnContainers-ServicesAndWebApps.sln b/eShopOnContainers-ServicesAndWebApps.sln index 75cf60baec..52f49f96c0 100644 --- a/eShopOnContainers-ServicesAndWebApps.sln +++ b/eShopOnContainers-ServicesAndWebApps.sln @@ -161,6 +161,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "config", "config", "{3ABEEE src\ApiGateways\Envoy\config\envoy.yaml = src\ApiGateways\Envoy\config\envoy.yaml EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ordering.BackgroundTasks", "src\Services\Ordering\Ordering.BackgroundTasks\Ordering.BackgroundTasks.csproj", "{D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Ad-Hoc|Any CPU = Ad-Hoc|Any CPU @@ -1759,6 +1761,54 @@ Global {56C2EF0B-6BF2-41D9-BE07-6E6D08D06B35}.Release|x64.Build.0 = Release|Any CPU {56C2EF0B-6BF2-41D9-BE07-6E6D08D06B35}.Release|x86.ActiveCfg = Release|Any CPU {56C2EF0B-6BF2-41D9-BE07-6E6D08D06B35}.Release|x86.Build.0 = Release|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.AppStore|ARM.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.AppStore|iPhone.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.AppStore|x64.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.AppStore|x64.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.AppStore|x86.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.AppStore|x86.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Debug|ARM.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Debug|iPhone.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Debug|x64.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Debug|x64.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Debug|x86.ActiveCfg = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Debug|x86.Build.0 = Debug|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Release|Any CPU.Build.0 = Release|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Release|ARM.ActiveCfg = Release|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Release|ARM.Build.0 = Release|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Release|iPhone.ActiveCfg = Release|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Release|iPhone.Build.0 = Release|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Release|x64.ActiveCfg = Release|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Release|x64.Build.0 = Release|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Release|x86.ActiveCfg = Release|Any CPU + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1826,6 +1876,7 @@ Global {56C2EF0B-6BF2-41D9-BE07-6E6D08D06B35} = {68F5041D-51F2-4630-94B6-B49789F5E51A} {882A8F3A-C61F-4C44-86DD-A5A258714BF2} = {77849D35-37D4-4802-81DC-9477B2775A40} {3ABEEE8C-35E0-4185-9825-C44326151F5B} = {882A8F3A-C61F-4C44-86DD-A5A258714BF2} + {D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191} = {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {25728519-5F0F-4973-8A64-0A81EB4EA8D9} diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs index 00cf506a4a..851368af16 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs @@ -117,18 +117,27 @@ public async Task AddBasketItemAsync([FromBody] AddBasketItemReque // Step 2: Get current basket status var currentBasket = (await _basket.GetByIdAsync(data.BasketId)) ?? new BasketData(data.BasketId); - // Step 3: Merge current status with new product - currentBasket.Items.Add(new BasketDataItem() - { - UnitPrice = item.Price, - PictureUrl = item.PictureUri, - ProductId = item.Id.ToString(), - ProductName = item.Name, - Quantity = data.Quantity, - Id = Guid.NewGuid().ToString() - }); - - // Step 4: Update basket + // Step 3: Search if exist product into basket + var product = currentBasket.Items.SingleOrDefault(i => i.ProductId == item.Id.ToString()); + + if(product != null){ + // Step 4: Update quantity for product + product.Quantity += data.Quantity; + } + else{ + // Step 4: Merge current status with new product + currentBasket.Items.Add(new BasketDataItem() + { + UnitPrice = item.Price, + PictureUrl = item.PictureUri, + ProductId = item.Id.ToString(), + ProductName = item.Name, + Quantity = data.Quantity, + Id = Guid.NewGuid().ToString() + }); + } + + // Step 5: Update basket await _basket.UpdateAsync(currentBasket); return Ok(); diff --git a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEntry.cs b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEntry.cs index dc65fa5258..ec532d6dac 100644 --- a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEntry.cs +++ b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEntry.cs @@ -6,13 +6,15 @@ using System.Linq; using System.ComponentModel.DataAnnotations.Schema; using System.Reflection; +using Microsoft.Extensions.Logging; +using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Services; namespace Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF { public class IntegrationEventLogEntry { private IntegrationEventLogEntry() { } - public IntegrationEventLogEntry(IntegrationEvent @event, Guid transactionId) + public IntegrationEventLogEntry(IntegrationEvent @event, Guid transactionId, ILogger logger) { EventId = @event.Id; CreationTime = @event.CreationDate; @@ -21,8 +23,8 @@ public IntegrationEventLogEntry(IntegrationEvent @event, Guid transactionId) State = EventStateEnum.NotPublished; TimesSent = 0; TransactionId = transactionId.ToString(); - } + } public Guid EventId { get; private set; } public string EventTypeName { get; private set; } [NotMapped] @@ -35,8 +37,10 @@ public IntegrationEventLogEntry(IntegrationEvent @event, Guid transactionId) public string Content { get; private set; } public string TransactionId { get; private set; } - public IntegrationEventLogEntry DeserializeJsonContent(Type type) + public IntegrationEventLogEntry DeserializeJsonContent(Type type, ILogger logger) { + logger.LogInformation("----- DeserializeJsonContent {Content} {Type}", Content, type); + IntegrationEvent = JsonConvert.DeserializeObject(Content, type) as IntegrationEvent; return this; } diff --git a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs index 758055e69e..b8e9eab9ac 100644 --- a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs +++ b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs @@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore.Storage; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; +using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System; using System.Collections; @@ -17,11 +18,13 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Servi public class IntegrationEventLogService : IIntegrationEventLogService { private readonly IntegrationEventLogContext _integrationEventLogContext; + private readonly ILogger _logger; private readonly DbConnection _dbConnection; private readonly List _eventTypes; - public IntegrationEventLogService(DbConnection dbConnection) + public IntegrationEventLogService(DbConnection dbConnection, ILogger logger) { + _logger =logger; _dbConnection = dbConnection ?? throw new ArgumentNullException(nameof(dbConnection)); _integrationEventLogContext = new IntegrationEventLogContext( new DbContextOptionsBuilder() @@ -37,12 +40,14 @@ public IntegrationEventLogService(DbConnection dbConnection) public async Task> RetrieveEventLogsPendingToPublishAsync(Guid transactionId) { + _logger.LogInformation("----- RetrieveEventLogsPendingToPublishAsync {TransactionId}", transactionId); + var tid = transactionId.ToString(); return await _integrationEventLogContext.IntegrationEventLogs .Where(e => e.TransactionId == tid && e.State == EventStateEnum.NotPublished) .OrderBy(o => o.CreationTime) - .Select(e => e.DeserializeJsonContent(_eventTypes.Find(t=> t.Name == e.EventTypeShortName))) + .Select(e => e.DeserializeJsonContent(_eventTypes.Find(t=> t.Name == e.EventTypeShortName), _logger)) .ToListAsync(); } @@ -50,7 +55,7 @@ public Task SaveEventAsync(IntegrationEvent @event, IDbContextTransaction transa { if (transaction == null) throw new ArgumentNullException(nameof(transaction)); - var eventLogEntry = new IntegrationEventLogEntry(@event, transaction.TransactionId); + var eventLogEntry = new IntegrationEventLogEntry(@event, transaction.TransactionId, _logger); _integrationEventLogContext.Database.UseTransaction(transaction.GetDbTransaction()); _integrationEventLogContext.IntegrationEventLogs.Add(eventLogEntry); diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 64441f9ea5..451d5d5cf0 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -277,7 +277,7 @@ public static IServiceCollection AddSwagger(this IServiceCollection services, IC public static IServiceCollection AddIntegrationServices(this IServiceCollection services, IConfiguration configuration) { services.AddTransient>( - sp => (DbConnection c) => new IntegrationEventLogService(c)); + sp => (DbConnection c) => new IntegrationEventLogService(c, sp.GetService>())); services.AddTransient(); diff --git a/src/Services/Ordering/Ordering.API/Application/Behaviors/TransactionBehaviour.cs b/src/Services/Ordering/Ordering.API/Application/Behaviors/TransactionBehaviour.cs index be32daeeec..0320cbd97d 100644 --- a/src/Services/Ordering/Ordering.API/Application/Behaviors/TransactionBehaviour.cs +++ b/src/Services/Ordering/Ordering.API/Application/Behaviors/TransactionBehaviour.cs @@ -56,6 +56,8 @@ await strategy.ExecuteAsync(async () => await _dbContext.CommitTransactionAsync(transaction); transactionId = transaction.TransactionId; + + _logger.LogInformation("----- End transaction {TransactionId} for {CommandName}", transaction.TransactionId, typeName); } await _orderingIntegrationEventService.PublishEventsThroughEventBusAsync(transactionId); diff --git a/src/Services/Ordering/Ordering.API/Program.cs b/src/Services/Ordering/Ordering.API/Program.cs index 251a9cbf5c..50f53360cc 100644 --- a/src/Services/Ordering/Ordering.API/Program.cs +++ b/src/Services/Ordering/Ordering.API/Program.cs @@ -7,7 +7,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Ordering.API.Infrastructure.Tasks; using Serilog; using System; using System.IO; @@ -63,7 +62,6 @@ private static IWebHost BuildWebHost(IConfiguration configuration, string[] args WebHost.CreateDefaultBuilder(args) .CaptureStartupErrors(false) .UseStartup() - .ConfigureServices(service => service.AddHostedService()) .UseApplicationInsights() .UseContentRoot(Directory.GetCurrentDirectory()) .UseConfiguration(configuration) diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index fca490f285..572c833205 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -273,7 +273,7 @@ public static IServiceCollection AddCustomIntegrations(this IServiceCollection s services.AddSingleton(); services.AddTransient(); services.AddTransient>( - sp => (DbConnection c) => new IntegrationEventLogService(c)); + sp => (DbConnection c) => new IntegrationEventLogService(c, sp.GetService>())); services.AddTransient(); diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/BackgroundTaskSettings.cs b/src/Services/Ordering/Ordering.BackgroundTasks/BackgroundTaskSettings.cs new file mode 100644 index 0000000000..5171e77240 --- /dev/null +++ b/src/Services/Ordering/Ordering.BackgroundTasks/BackgroundTaskSettings.cs @@ -0,0 +1,15 @@ +namespace Ordering.BackgroundTasks +{ + public class BackgroundTaskSettings + { + public string ConnectionString { get; set; } + + public string EventBusConnection { get; set; } + + public int GracePeriodTime { get; set; } + + public int CheckUpdateTime { get; set; } + + public string SubscriptionClientName { get; set; } + } +} diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile new file mode 100644 index 0000000000..25f55a79c4 --- /dev/null +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile @@ -0,0 +1,18 @@ +FROM mcr.microsoft.com/dotnet/core/runtime:3.0-buster-slim AS base +WORKDIR /app + +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build +WORKDIR /src +COPY ["src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj", "src/Services/Ordering/Ordering.BackgroundTasks/"] +RUN dotnet restore "src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY . . +WORKDIR "/src/src/Services/Ordering/Ordering.BackgroundTasks" +RUN dotnet build "Ordering.BackgroundTasks.csproj" -c Release -o /app + +FROM build AS publish +RUN dotnet publish "Ordering.BackgroundTasks.csproj" -c Release -o /app + +FROM base AS final +WORKDIR /app +COPY --from=publish /app . +ENTRYPOINT ["dotnet", "Ordering.BackgroundTasks.dll"] \ No newline at end of file diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Events/GracePeriodConfirmedIntegrationEvent.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Events/GracePeriodConfirmedIntegrationEvent.cs new file mode 100644 index 0000000000..8fe92df76f --- /dev/null +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Events/GracePeriodConfirmedIntegrationEvent.cs @@ -0,0 +1,12 @@ +namespace Ordering.BackgroundTasks.Events +{ + using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; + + public class GracePeriodConfirmedIntegrationEvent : IntegrationEvent + { + public int OrderId { get; } + + public GracePeriodConfirmedIntegrationEvent(int orderId) => + OrderId = orderId; + } +} diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs new file mode 100644 index 0000000000..81d5472f48 --- /dev/null +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs @@ -0,0 +1,141 @@ +using Autofac; +using Microsoft.Azure.ServiceBus; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.Extensions.Logging; +using RabbitMQ.Client; +using Serilog; + +namespace Ordering.BackgroundTasks.Extensions +{ + public static class CustomExtensionMethods + { + public static IServiceCollection AddCustomHealthCheck(this IServiceCollection services, IConfiguration configuration) + { + var hcBuilder = services.AddHealthChecks(); + + hcBuilder.AddCheck("self", () => HealthCheckResult.Healthy()); + + hcBuilder.AddSqlServer( + configuration["ConnectionString"], + name: "OrderingTaskDB-check", + tags: new string[] { "orderingtaskdb" }); + + if (configuration.GetValue("AzureServiceBusEnabled")) + { + hcBuilder.AddAzureServiceBusTopic( + configuration["EventBusConnection"], + topicName: "eshop_event_bus", + name: "orderingtask-servicebus-check", + tags: new string[] { "servicebus" }); + } + else + { + hcBuilder.AddRabbitMQ( + $"amqp://{configuration["EventBusConnection"]}", + name: "orderingtask-rabbitmqbus-check", + tags: new string[] { "rabbitmqbus" }); + } + + return services; + } + + public static IServiceCollection AddEventBus(this IServiceCollection services, IConfiguration configuration) + { + var subscriptionClientName = configuration["SubscriptionClientName"]; + + if (configuration.GetValue("AzureServiceBusEnabled")) + { + services.AddSingleton(sp => + { + var logger = sp.GetRequiredService>(); + + var serviceBusConnectionString = configuration["EventBusConnection"]; + var serviceBusConnection = new ServiceBusConnectionStringBuilder(serviceBusConnectionString); + + return new DefaultServiceBusPersisterConnection(serviceBusConnection, logger); + }); + + services.AddSingleton(sp => + { + var serviceBusPersisterConnection = sp.GetRequiredService(); + var iLifetimeScope = sp.GetRequiredService(); + var logger = sp.GetRequiredService>(); + var eventBusSubcriptionsManager = sp.GetRequiredService(); + + return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); + }); + } + else + { + services.AddSingleton(sp => + { + var logger = sp.GetRequiredService>(); + + var factory = new ConnectionFactory() + { + HostName = configuration["EventBusConnection"], + DispatchConsumersAsync = true + }; + + if (!string.IsNullOrEmpty(configuration["EventBusUserName"])) + { + factory.UserName = configuration["EventBusUserName"]; + } + + if (!string.IsNullOrEmpty(configuration["EventBusPassword"])) + { + factory.Password = configuration["EventBusPassword"]; + } + + var retryCount = 5; + if (!string.IsNullOrEmpty(configuration["EventBusRetryCount"])) + { + retryCount = int.Parse(configuration["EventBusRetryCount"]); + } + + return new DefaultRabbitMQPersistentConnection(factory, logger, retryCount); + }); + + services.AddSingleton(sp => + { + var rabbitMQPersistentConnection = sp.GetRequiredService(); + var iLifetimeScope = sp.GetRequiredService(); + var logger = sp.GetRequiredService>(); + var eventBusSubcriptionsManager = sp.GetRequiredService(); + + var retryCount = 5; + + if (!string.IsNullOrEmpty(configuration["EventBusRetryCount"])) + { + retryCount = int.Parse(configuration["EventBusRetryCount"]); + } + + return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); + }); + } + + services.AddSingleton(); + + return services; + } + + public static ILoggingBuilder UseSerilog(this ILoggingBuilder builder, IConfiguration configuration) + { + Log.Logger = new LoggerConfiguration() + .MinimumLevel.Verbose() + .Enrich.WithProperty("ApplicationContext", "BackgroundTasks") + .Enrich.FromLogContext() + .WriteTo.Console() + .ReadFrom.Configuration(configuration) + .CreateLogger(); + + return builder; + } + } +} diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj new file mode 100644 index 0000000000..94e44bd3eb --- /dev/null +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj @@ -0,0 +1,33 @@ + + + + $(NetCoreTargetVersion) + dotnet-Ordering.BackgroundTasks-9D3E1DD6-405B-447F-8AAB-1708B36D260E + Linux + $(LangVersion) + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs new file mode 100644 index 0000000000..ca42a4ebb8 --- /dev/null +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs @@ -0,0 +1,40 @@ +using Autofac.Extensions.DependencyInjection; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Ordering.BackgroundTasks.Extensions; +using Ordering.BackgroundTasks.Tasks; +using Serilog; +using System.IO; + +namespace Ordering.BackgroundTasks +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureAppConfiguration((hostContext, builder) => + { + builder.SetBasePath(Directory.GetCurrentDirectory()); + builder.AddJsonFile("appsettings.json", optional: true); + builder.AddJsonFile($"appsettings.{hostContext.HostingEnvironment.EnvironmentName}.json", optional: true); + builder.AddEnvironmentVariables(); + builder.AddCommandLine(args); + }) + .ConfigureLogging((host, builder) => builder.UseSerilog(host.Configuration).AddSerilog()) + .ConfigureServices((host, services) => + { + services.AddCustomHealthCheck(host.Configuration); + services.Configure(host.Configuration); + services.AddOptions(); + services.AddHostedService(); + services.AddEventBus(host.Configuration); + services.AddAutofac(container => container.Populate(services)); + }); + } +} diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Properties/launchSettings.json b/src/Services/Ordering/Ordering.BackgroundTasks/Properties/launchSettings.json new file mode 100644 index 0000000000..e2d987f505 --- /dev/null +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Properties/launchSettings.json @@ -0,0 +1,13 @@ +{ + "profiles": { + "Ordering.BackgroundTasks": { + "commandName": "Project", + "environmentVariables": { + "DOTNET_ENVIRONMENT": "Development" + } + }, + "Docker": { + "commandName": "Docker" + } + } +} \ No newline at end of file diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/Tasks/GracePeriodManagerTask.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs similarity index 87% rename from src/Services/Ordering/Ordering.API/Infrastructure/Tasks/GracePeriodManagerTask.cs rename to src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs index 740d1aa30b..9d4c83c576 100644 --- a/src/Services/Ordering/Ordering.API/Infrastructure/Tasks/GracePeriodManagerTask.cs +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs @@ -1,25 +1,24 @@ using Dapper; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; -using Microsoft.eShopOnContainers.Services.Ordering.API; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Ordering.API.Application.IntegrationEvents.Events; +using Ordering.BackgroundTasks.Events; using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Threading; using System.Threading.Tasks; -namespace Ordering.API.Infrastructure.Tasks +namespace Ordering.BackgroundTasks.Tasks { public class GracePeriodManagerService : BackgroundService { private readonly ILogger _logger; - private readonly OrderingSettings _settings; + private readonly BackgroundTaskSettings _settings; private readonly IEventBus _eventBus; - public GracePeriodManagerService(IOptions settings, IEventBus eventBus, ILogger logger) + public GracePeriodManagerService(IOptions settings, IEventBus eventBus, ILogger logger) { _settings = settings?.Value ?? throw new ArgumentNullException(nameof(settings)); _eventBus = eventBus ?? throw new ArgumentNullException(nameof(eventBus)); @@ -56,7 +55,7 @@ private void CheckConfirmedGracePeriodOrders() { var confirmGracePeriodEvent = new GracePeriodConfirmedIntegrationEvent(orderId); - _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", confirmGracePeriodEvent.Id, Program.AppName, confirmGracePeriodEvent); + _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", confirmGracePeriodEvent.Id, _settings.SubscriptionClientName, confirmGracePeriodEvent); _eventBus.Publish(confirmGracePeriodEvent); } diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/appsettings.Development.json b/src/Services/Ordering/Ordering.BackgroundTasks/appsettings.Development.json new file mode 100644 index 0000000000..e203e9407e --- /dev/null +++ b/src/Services/Ordering/Ordering.BackgroundTasks/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Debug", + "System": "Information", + "Microsoft": "Information" + } + } +} diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/appsettings.json b/src/Services/Ordering/Ordering.BackgroundTasks/appsettings.json new file mode 100644 index 0000000000..88e5d68588 --- /dev/null +++ b/src/Services/Ordering/Ordering.BackgroundTasks/appsettings.json @@ -0,0 +1,26 @@ +{ + "ConnectionString": "Server=tcp:127.0.0.1,5433;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word;", + "Serilog": { + "SeqServerUrl": null, + "LogstashgUrl": null, + "MinimumLevel": { + "Default": "Information", + "Override": { + "Microsoft": "Warning", + "Microsoft.eShopOnContainers": "Information", + "System": "Warning" + } + } + }, + "SubscriptionClientName": "BackgroundTasks", + "GracePeriodTime": "1", + "CheckUpdateTime": "1000", + "ApplicationInsights": { + "InstrumentationKey": "" + }, + "AzureServiceBusEnabled": false, + "EventBusRetryCount": 5, + "EventBusConnection": "", + "EventBusUserName": "", + "EventBusPassword": "" +} \ No newline at end of file diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs index 5859e9e12f..1d454a7ab9 100644 --- a/src/Services/Webhooks/Webhooks.API/Startup.cs +++ b/src/Services/Webhooks/Webhooks.API/Startup.cs @@ -291,7 +291,7 @@ public static IServiceCollection AddHttpClientServices(this IServiceCollection s public static IServiceCollection AddIntegrationServices(this IServiceCollection services, IConfiguration configuration) { services.AddTransient>( - sp => (DbConnection c) => new IntegrationEventLogService(c)); + sp => (DbConnection c) => new IntegrationEventLogService(c, sp.GetService>())); if (configuration.GetValue("AzureServiceBusEnabled")) { diff --git a/src/Web/WebSPA/Startup.cs b/src/Web/WebSPA/Startup.cs index 7e6c374f7b..6ea83baa53 100644 --- a/src/Web/WebSPA/Startup.cs +++ b/src/Web/WebSPA/Startup.cs @@ -118,6 +118,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseRouting(); app.UseEndpoints(endpoints => { + endpoints.MapDefaultControllerRoute(); endpoints.MapControllers(); endpoints.MapHealthChecks("/liveness", new HealthCheckOptions { diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 4de3340c64..dceb4edd2a 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -20,6 +20,8 @@ 3.9.0-rc1 1.22.0 + 3.0.0-preview7.19362.4 + 1.7.9 2.2.0 2.2.0 2.2.0 From 7ea094b13660c36a555201feafb076431e406c62 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Tue, 6 Aug 2019 19:27:41 +0200 Subject: [PATCH 051/149] restore background config --- build/acr-build/queue-all.ps1 | 1 - .../multiarch-manifests/create-manifests.ps1 | 2 +- docker-compose-windows.prod.yml | 11 --- docker-compose.override.windows.yml | 5 - docker-compose.override.yml | 23 ----- docker-compose.prod.yml | 20 ---- docker-compose.yml | 10 +- k8s/build-push-images.ps1 | 2 +- k8s/deploy.ps1 | 2 +- k8s/deployments.yaml | 64 ------------- k8s/helm/app.yaml | 1 - k8s/helm/deploy-all-istio.ps1 | 2 +- k8s/helm/deploy-all.ps1 | 2 +- k8s/helm/deploy-all.sh | 2 +- k8s/helm/istio/doc.md | 1 - k8s/helm/ordering-backgroundtasks/.helmignore | 21 ----- k8s/helm/ordering-backgroundtasks/Chart.yaml | 5 - .../templates/NOTES.txt | 3 - .../templates/_helpers.tpl | 32 ------- .../templates/_names.tpl | 51 ---------- .../templates/configmap.yaml | 21 ----- .../templates/deployment.yaml | 92 ------------------- .../templates/service.yaml | 19 ---- k8s/helm/ordering-backgroundtasks/values.yaml | 70 -------------- 24 files changed, 7 insertions(+), 455 deletions(-) delete mode 100644 k8s/helm/ordering-backgroundtasks/.helmignore delete mode 100644 k8s/helm/ordering-backgroundtasks/Chart.yaml delete mode 100644 k8s/helm/ordering-backgroundtasks/templates/NOTES.txt delete mode 100644 k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl delete mode 100644 k8s/helm/ordering-backgroundtasks/templates/_names.tpl delete mode 100644 k8s/helm/ordering-backgroundtasks/templates/configmap.yaml delete mode 100644 k8s/helm/ordering-backgroundtasks/templates/deployment.yaml delete mode 100644 k8s/helm/ordering-backgroundtasks/templates/service.yaml delete mode 100644 k8s/helm/ordering-backgroundtasks/values.yaml diff --git a/build/acr-build/queue-all.ps1 b/build/acr-build/queue-all.ps1 index aacffea95e..60a39d92cc 100644 --- a/build/acr-build/queue-all.ps1 +++ b/build/acr-build/queue-all.ps1 @@ -13,7 +13,6 @@ $services = @( @{ Name="eshopcatalog"; Image="eshop/catalog.api"; File="src/Services/Catalog/Catalog.API/Dockerfile" }, @{ Name="eshopidentity"; Image="eshop/identity.api"; File="src/Services/Identity/Identity.API/Dockerfile" }, @{ Name="eshopordering"; Image="eshop/ordering.api"; File="src/Services/Ordering/Ordering.API/Dockerfile" }, - @{ Name="eshoporderingbg"; Image="eshop/ordering.backgroundtasks"; File="src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile" }, @{ Name="eshopmarketing"; Image="eshop/marketing.api"; File="src/Services/Marketing/Marketing.API/Dockerfile" }, @{ Name="eshopwebspa"; Image="eshop/webspa"; File="src/Web/WebSPA/Dockerfile" }, @{ Name="eshopwebmvc"; Image="eshop/webmvc"; File="src/Web/WebMVC/Dockerfile" }, diff --git a/build/multiarch-manifests/create-manifests.ps1 b/build/multiarch-manifests/create-manifests.ps1 index cc7f051942..0bc6a4c7ca 100644 --- a/build/multiarch-manifests/create-manifests.ps1 +++ b/build/multiarch-manifests/create-manifests.ps1 @@ -12,7 +12,7 @@ Write-Host "Tags used are linux-master, win-master, linux-dev, win-dev, linux-la Write-Host "Multiarch images tags will be master, dev, latest" -ForegroundColor Yellow -$services = "identity.api", "basket.api", "catalog.api", "ordering.api", "ordering.backgroundtasks", "marketing.api", "payment.api", "locations.api", "webhooks.api", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub", "webstatus", "webspa", "webmvc", "webhooks.client" +$services = "identity.api", "basket.api", "catalog.api", "ordering.api", "marketing.api", "payment.api", "locations.api", "webhooks.api", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub", "webstatus", "webspa", "webmvc", "webhooks.client" foreach ($svc in $services) { Write-Host "Creating manifest for $svc and tags :latest, :master, and :dev" diff --git a/docker-compose-windows.prod.yml b/docker-compose-windows.prod.yml index ead977f292..638c98d692 100644 --- a/docker-compose-windows.prod.yml +++ b/docker-compose-windows.prod.yml @@ -69,17 +69,6 @@ services: ports: - "5102:80" - ordering.backgroundtasks: - environment: - - ASPNETCORE_ENVIRONMENT=Production - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - UseCustomizationData=True - - AzureServiceBusEnabled=False - ports: - - "5111:80" - webspa: environment: - ASPNETCORE_ENVIRONMENT=Production diff --git a/docker-compose.override.windows.yml b/docker-compose.override.windows.yml index dcaac7c457..0f1e66efe4 100644 --- a/docker-compose.override.windows.yml +++ b/docker-compose.override.windows.yml @@ -37,11 +37,6 @@ services: - EventBusUserName=admin - EventBusPassword=password - ordering.backgroundtasks: - environment: - - EventBusUserName=admin - - EventBusPassword=password - payment.api: environment: - EventBusUserName=admin diff --git a/docker-compose.override.yml b/docker-compose.override.yml index e4ee766509..bd04fa9976 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -115,26 +115,6 @@ services: ports: - "5102:80" - - ordering.backgroundtasks: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - UseCustomizationData=True - - AzureServiceBusEnabled=False - - CheckUpdateTime=30000 - - GracePeriodTime=1 - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - UseLoadTest=${USE_LOADTEST:-False} - - Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose - ports: - - "5111:80" - marketing.api: environment: - ASPNETCORE_ENVIRONMENT=Development @@ -343,8 +323,6 @@ services: - HealthChecks-UI__HealthChecks__7__Uri=http://webmarketingapigw/hc - HealthChecks-UI__HealthChecks__8__Name=Ordering HTTP Check - HealthChecks-UI__HealthChecks__8__Uri=http://ordering.api/hc - - HealthChecks-UI__HealthChecks__9__Name=Ordering HTTP Background Check - - HealthChecks-UI__HealthChecks__9__Uri=http://ordering.backgroundtasks/hc - HealthChecks-UI__HealthChecks__10__Name=Basket HTTP Check - HealthChecks-UI__HealthChecks__10__Uri=http://basket.api/hc - HealthChecks-UI__HealthChecks__11__Name=Catalog HTTP Check @@ -359,7 +337,6 @@ services: - HealthChecks-UI__HealthChecks__15__Uri=http://payment.api/hc - HealthChecks-UI__HealthChecks__16__Name=Ordering SignalRHub HTTP Check - HealthChecks-UI__HealthChecks__16__Uri=http://ordering.signalrhub/hc - - OrderingBackgroundTasksUrl=http://ordering.backgroundtasks/hc - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} ports: diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 4bf4655655..e1825a8c43 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -91,25 +91,6 @@ services: ports: - "80" # The API Gateway redirects and access through the internal port (80). - - ordering.backgroundtasks: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - UseCustomizationData=True - - AzureServiceBusEnabled=False - - CheckUpdateTime=30000 - - GracePeriodTime=1 - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - UseLoadTest=${USE_LOADTEST:-False} - ports: - - "5111:80" - marketing.api: environment: - ASPNETCORE_ENVIRONMENT=Development @@ -179,7 +160,6 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:80 - CatalogUrl=http://catalog.api/hc - OrderingUrl=http://ordering.api/hc - - OrderingBackgroundTasksUrl=http://ordering.backgroundtasks/hc - BasketUrl=http://basket.api/hc - IdentityUrl=http://identity.api/hc - LocationsUrl=http://locations.api/hc diff --git a/docker-compose.yml b/docker-compose.yml index 243fbf2c68..ccc888bf22 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -52,15 +52,7 @@ services: depends_on: - sql.data - rabbitmq - - ordering.backgroundtasks: - image: ${REGISTRY:-eshop}/ordering.backgroundtasks:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile - depends_on: - - sql.data - - rabbitmq + - identity.api marketing.api: image: ${REGISTRY:-eshop}/marketing.api:${PLATFORM:-linux}-${TAG:-latest} diff --git a/k8s/build-push-images.ps1 b/k8s/build-push-images.ps1 index e2c8e06b61..769e74abc2 100644 --- a/k8s/build-push-images.ps1 +++ b/k8s/build-push-images.ps1 @@ -57,7 +57,7 @@ if (-not [string]::IsNullOrEmpty($dockerUser)) { # Push images to Docker registry if ($pushImages) { Write-Host "Pushing images to $registry/$dockerOrg..." -ForegroundColor Yellow - $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "ordering.backgroundtasks", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") + $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") foreach ($service in $services) { $imageFqdn = if ($useDockerHub) {"$dockerOrg/${service}"} else {"$registry/$dockerOrg/${service}"} diff --git a/k8s/deploy.ps1 b/k8s/deploy.ps1 index abeb12aed8..81af1bec7e 100644 --- a/k8s/deploy.ps1 +++ b/k8s/deploy.ps1 @@ -68,7 +68,7 @@ if ($buildImages) { if ($pushImages) { Write-Host "Pushing images to $registry/$dockerOrg..." -ForegroundColor Yellow - $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "ordering.backgroundtasks", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") + $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") foreach ($service in $services) { $imageFqdn = if ($useDockerHub) {"$dockerOrg/${service}"} else {"$registry/$dockerOrg/${service}"} diff --git a/k8s/deployments.yaml b/k8s/deployments.yaml index f362c319c6..46d139d1c8 100644 --- a/k8s/deployments.yaml +++ b/k8s/deployments.yaml @@ -265,65 +265,6 @@ spec: --- apiVersion: extensions/v1beta1 kind: Deployment -metadata: - name: ordering-backgroundtasks -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: ordering-backgroundtasks - spec: - containers: - - name: ordering-backgroundtasks - image: eshop/ordering.backgroundtasks - imagePullPolicy: Always - env: - - name: ConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: ordering__ConnectionString - - name: EventBusConnection - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EventBusConnection - - name: AzureServiceBusEnabled - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__UseAzureServiceBus - - name: CheckUpdateTime - valueFrom: - configMapKeyRef: - name: externalcfg - key: GracePeriodManager__CheckUpdateTime - - name: GracePeriodTime - valueFrom: - configMapKeyRef: - name: externalcfg - key: GracePeriodManager__GracePeriodTime - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: UseLoadTest - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EnableLoadTest - - name: OrchestratorType - value: 'K8S' - ports: - - containerPort: 80 - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment metadata: name: ordering-signalrhub spec: @@ -702,11 +643,6 @@ spec: configMapKeyRef: name: internalurls key: ordering__hc - - name: OrderingBackgroundTasksUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: ordering-background__hc - name: LocationsUrl valueFrom: configMapKeyRef: diff --git a/k8s/helm/app.yaml b/k8s/helm/app.yaml index 91e829b272..390844a6e2 100644 --- a/k8s/helm/app.yaml +++ b/k8s/helm/app.yaml @@ -28,7 +28,6 @@ app: # app global settings basket: basket # service name for basket api catalog: catalog # service name for catalog api ordering: ordering # service name for ordering api - orderingbackgroundtasks: orderingbackgroundtasks # service name for orderingbackgroundtasks orderingsignalrhub: ordering-signalrhub # service name for orderingsignalrhub identity: identity # service name for identity api mvc: webmvc # service name for web mvc diff --git a/k8s/helm/deploy-all-istio.ps1 b/k8s/helm/deploy-all-istio.ps1 index 5e05c6dbbd..9e32704b10 100644 --- a/k8s/helm/deploy-all-istio.ps1 +++ b/k8s/helm/deploy-all-istio.ps1 @@ -80,7 +80,7 @@ if (-not [string]::IsNullOrEmpty($registry)) { Write-Host "Begin eShopOnContainers installation using Helm" -ForegroundColor Green $infras = ("sql-data", "nosql-data", "rabbitmq", "keystore-data", "basket-data") -$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-backgroundtasks","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") +$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") if ($deployInfrastructure) { foreach ($infra in $infras) { diff --git a/k8s/helm/deploy-all.ps1 b/k8s/helm/deploy-all.ps1 index 3cf6936bce..21bb2f1a09 100644 --- a/k8s/helm/deploy-all.ps1 +++ b/k8s/helm/deploy-all.ps1 @@ -62,7 +62,7 @@ if (-not [string]::IsNullOrEmpty($registry)) { Write-Host "Begin eShopOnContainers installation using Helm" -ForegroundColor Green $infras = ("sql-data", "nosql-data", "rabbitmq", "keystore-data", "basket-data") -$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-backgroundtasks","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") +$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") if ($deployInfrastructure) { foreach ($infra in $infras) { diff --git a/k8s/helm/deploy-all.sh b/k8s/helm/deploy-all.sh index 705b172f5d..04891799bb 100755 --- a/k8s/helm/deploy-all.sh +++ b/k8s/helm/deploy-all.sh @@ -185,7 +185,7 @@ fi echo "#################### Begin $app_name installation using Helm ####################" infras=(sql-data nosql-data rabbitmq keystore-data basket-data) -charts=(eshop-common apigwmm apigwms apigwwm apigwws basket-api catalog-api identity-api locations-api marketing-api mobileshoppingagg ordering-api ordering-backgroundtasks ordering-signalrhub payment-api webmvc webshoppingagg webspa webstatus webhooks-api webhooks-web) +charts=(eshop-common apigwmm apigwms apigwwm apigwws basket-api catalog-api identity-api locations-api marketing-api mobileshoppingagg ordering-api ordering-signalrhub payment-api webmvc webshoppingagg webspa webstatus webhooks-api webhooks-web) if [[ !$skip_infrastructure ]]; then for infra in "${infras[@]}" diff --git a/k8s/helm/istio/doc.md b/k8s/helm/istio/doc.md index b8c0a02573..f60b714f18 100644 --- a/k8s/helm/istio/doc.md +++ b/k8s/helm/istio/doc.md @@ -258,7 +258,6 @@ fec1e3499416 a3f21ec4bd11 "/entrypoint.sh /ngi…" 76485867f032 eshop/payment.api "dotnet Payment.API.…" 2 hours ago Up 2 hours k8s_payment-api_eshop-payment-api-75d5f9bdf6-6zx2v_default_4a3cdab4-e67f-11e8-b4b6-00155d016146_1 c2c4640ed610 eshop/marketing.api "dotnet Marketing.AP…" 2 hours ago Up 2 hours k8s_marketing-api_eshop-marketing-api-6b8c5989fd-jpxqv_default_45780626-e67f-11e8-b4b6-00155d016146_1 85301d538574 eshop/ordering.signalrhub "dotnet Ordering.Sig…" 2 hours ago Up 2 hours k8s_ordering-signalrhub_eshop-ordering-signalrhub-58cf5ff6-cnlm8_default_4932c344-e67f-11e8-b4b6-00155d016146_1 -7a408a98000e eshop/ordering.backgroundtasks "dotnet Ordering.Bac…" 2 hours ago Up 2 hours k8s_ordering-backgroundtasks_eshop-ordering-backgroundtasks-cc8f6d4d8-ztfk7_default_47f9cf10-e67f-11e8-b4b6-00155d016146_1 12c64b3a13e0 eshop/basket.api "dotnet Basket.API.d…" 2 hours ago Up 2 hours k8s_basket-api_eshop-basket-api-658546684d-6hlvd_default_4262d022-e67f-11e8-b4b6-00155d016146_1 133fccfeeff3 eshop/webstatus "dotnet WebStatus.dll" 2 hours ago Up 2 hours k8s_webstatus_eshop-webstatus-7f46479dc4-bqnq7_default_4dc13eb2-e67f-11e8-b4b6-00155d016146_0 00c6e4c52135 eshop/webspa "dotnet WebSPA.dll" 2 hours ago Up 2 hours k8s_webspa_eshop-webspa-64cb8df9cb-dcbwg_default_4cd47376-e67f-11e8-b4b6-00155d016146_0 diff --git a/k8s/helm/ordering-backgroundtasks/.helmignore b/k8s/helm/ordering-backgroundtasks/.helmignore deleted file mode 100644 index f0c1319444..0000000000 --- a/k8s/helm/ordering-backgroundtasks/.helmignore +++ /dev/null @@ -1,21 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj diff --git a/k8s/helm/ordering-backgroundtasks/Chart.yaml b/k8s/helm/ordering-backgroundtasks/Chart.yaml deleted file mode 100644 index 6ad4f47e6b..0000000000 --- a/k8s/helm/ordering-backgroundtasks/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: "1.0" -description: A Helm chart for Kubernetes -name: ordering-backgroundtasks -version: 0.1.0 diff --git a/k8s/helm/ordering-backgroundtasks/templates/NOTES.txt b/k8s/helm/ordering-backgroundtasks/templates/NOTES.txt deleted file mode 100644 index 54e1b49ea5..0000000000 --- a/k8s/helm/ordering-backgroundtasks/templates/NOTES.txt +++ /dev/null @@ -1,3 +0,0 @@ -eShop Ordering Background Tasks installed. ------------------------------------------- - diff --git a/k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl b/k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl deleted file mode 100644 index e61b78285d..0000000000 --- a/k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "ordering-backgroundtasks.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "ordering-backgroundtasks.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "ordering-backgroundtasks.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} diff --git a/k8s/helm/ordering-backgroundtasks/templates/_names.tpl b/k8s/helm/ordering-backgroundtasks/templates/_names.tpl deleted file mode 100644 index 39ee485ef3..0000000000 --- a/k8s/helm/ordering-backgroundtasks/templates/_names.tpl +++ /dev/null @@ -1,51 +0,0 @@ -{{- define "suffix-name" -}} -{{- if .Values.app.name -}} -{{- .Values.app.name -}} -{{- else -}} -{{- .Release.Name -}} -{{- end -}} -{{- end -}} - -{{- define "sql-name" -}} -{{- if .Values.inf.sql.host -}} -{{- .Values.inf.sql.host -}} -{{- else -}} -{{- printf "%s" "sql-data" -}} -{{- end -}} -{{- end -}} - -{{- define "mongo-name" -}} -{{- if .Values.inf.mongo.host -}} -{{- .Values.inf.mongo.host -}} -{{- else -}} -{{- printf "%s" "nosql-data" -}} -{{- end -}} -{{- end -}} - -{{- define "url-of" -}} -{{- $name := first .}} -{{- $ctx := last .}} -{{- if eq $name "" -}} -{{- $ctx.Values.inf.k8s.dns -}} -{{- else -}} -{{- printf "%s/%s" $ctx.Values.inf.k8s.dns $name -}} {{/*Value is just / */}} -{{- end -}} -{{- end -}} - - -{{- define "pathBase" -}} -{{- if .Values.inf.k8s.suffix -}} -{{- $suffix := include "suffix-name" . -}} -{{- printf "%s-%s" .Values.pathBase $suffix -}} -{{- else -}} -{{- .Values.pathBase -}} -{{- end -}} -{{- end -}} - -{{- define "fqdn-image" -}} -{{- if .Values.inf.registry -}} -{{- printf "%s/%s" .Values.inf.registry.server .Values.image.repository -}} -{{- else -}} -{{- .Values.image.repository -}} -{{- end -}} -{{- end -}} \ No newline at end of file diff --git a/k8s/helm/ordering-backgroundtasks/templates/configmap.yaml b/k8s/helm/ordering-backgroundtasks/templates/configmap.yaml deleted file mode 100644 index 7ed4a0e8e2..0000000000 --- a/k8s/helm/ordering-backgroundtasks/templates/configmap.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- $name := include "ordering-backgroundtasks.fullname" . -}} -{{- $sqlsrv := include "sql-name" . -}} -{{- $cfgname := printf "cfg-%s" $name | trunc 63 }} - -apiVersion: v1 -kind: ConfigMap -metadata: - name: "{{ $cfgname }}" - labels: - app: {{ template "ordering-backgroundtasks.name" . }} - chart: {{ template "ordering-backgroundtasks.chart" .}} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -data: - ordering__ConnectionString: Server={{ $sqlsrv }};Initial Catalog={{ .Values.inf.sql.ordering.db }};User Id={{ .Values.inf.sql.common.user }};Password={{ .Values.inf.sql.common.pwd }}; - ordering__EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" - all__EventBusConnection: {{ .Values.inf.eventbus.constr }} - all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}" - all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" - graceperiodmanager__CheckUpdateTime: "{{ .Values.cfg.checkUpdateTime }}" - graceperiodmanager__GracePeriodTime: "{{ .Values.cfg.gracePeriodTime }}" \ No newline at end of file diff --git a/k8s/helm/ordering-backgroundtasks/templates/deployment.yaml b/k8s/helm/ordering-backgroundtasks/templates/deployment.yaml deleted file mode 100644 index d93c7f764c..0000000000 --- a/k8s/helm/ordering-backgroundtasks/templates/deployment.yaml +++ /dev/null @@ -1,92 +0,0 @@ -{{- $name := include "ordering-backgroundtasks.fullname" . -}} -{{- $cfgname := printf "cfg-%s" $name | trunc 63 }} - -apiVersion: apps/v1beta2 -kind: Deployment -metadata: - name: {{ template "ordering-backgroundtasks.fullname" . }} - labels: - app: {{ template "ordering-backgroundtasks.name" . }} - chart: {{ template "ordering-backgroundtasks.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - replicas: {{ .Values.replicaCount }} - selector: - matchLabels: - app: {{ template "ordering-backgroundtasks.name" . }} - release: {{ .Release.Name }} - template: - metadata: - labels: - app: {{ template "ordering-backgroundtasks.name" . }} - release: {{ .Release.Name }} - spec: - {{ if .Values.inf.registry -}} - imagePullSecrets: - - name: {{ .Values.inf.registry.secretName }} - {{- end }} - containers: - - name: {{ .Chart.Name }} - {{ if .Values.probes -}} - {{- if .Values.probes.liveness -}} - livenessProbe: - httpGet: - port: {{ .Values.probes.liveness.port }} - path: {{ .Values.probes.liveness.path }} - initialDelaySeconds: {{ .Values.probes.liveness.initialDelaySeconds }} - periodSeconds: {{ .Values.probes.liveness.periodSeconds }} - {{- end -}} - {{- end -}} - {{- if .Values.probes -}} - {{- if .Values.probes.readiness }} - readinessProbe: - httpGet: - port: {{ .Values.probes.readiness.port }} - path: {{ .Values.probes.readiness.path }} - initialDelaySeconds: {{ .Values.probes.readiness.initialDelaySeconds }} - periodSeconds: {{ .Values.probes.readiness.periodSeconds }} - timeoutSeconds: {{ .Values.probes.readiness.timeoutSeconds }} - {{- end -}} - {{- end }} - image: "{{ template "fqdn-image" . }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - env: - - name: PATH_BASE - value: {{ include "pathBase" . }} - - name: k8sname - value: {{ .Values.clusterName }} - {{- if .Values.env.values -}} - {{- range .Values.env.values }} - - name: {{ .name }} - value: {{ .value | quote }} - {{- end -}} - {{- end -}} - {{- if .Values.env.configmap -}} - {{- range .Values.env.configmap }} - - name: {{ .name }} - valueFrom: - configMapKeyRef: - name: {{ $cfgname }} - key: {{ .key }} - {{- end -}} - {{- end }} - ports: - - name: http - containerPort: 80 - protocol: TCP - resources: -{{ toYaml .Values.resources | indent 12 }} - {{- with .Values.nodeSelector }} - nodeSelector: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} - {{- end }} - diff --git a/k8s/helm/ordering-backgroundtasks/templates/service.yaml b/k8s/helm/ordering-backgroundtasks/templates/service.yaml deleted file mode 100644 index d8fcba0368..0000000000 --- a/k8s/helm/ordering-backgroundtasks/templates/service.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ .Values.app.svc.orderingbackgroundtasks }} - labels: - app: {{ template "ordering-backgroundtasks.name" . }} - chart: {{ template "ordering-backgroundtasks.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - type: {{ .Values.service.type }} - ports: - - port: {{ .Values.service.port }} - targetPort: http - protocol: TCP - name: http - selector: - app: {{ template "ordering-backgroundtasks.name" . }} - release: {{ .Release.Name }} diff --git a/k8s/helm/ordering-backgroundtasks/values.yaml b/k8s/helm/ordering-backgroundtasks/values.yaml deleted file mode 100644 index d065f03451..0000000000 --- a/k8s/helm/ordering-backgroundtasks/values.yaml +++ /dev/null @@ -1,70 +0,0 @@ -replicaCount: 1 -clusterName: eshop-aks -pathBase: /ordering-backgroundtasks - -image: - repository: eshop/ordering.backgroundtasks - tag: latest - pullPolicy: IfNotPresent - -service: - type: ClusterIP - port: 80 - -ingress: - enabled: false - annotations: {} - hosts: - - chart-example.local - tls: [] - -cfg: - checkUpdateTime: "15000" - gracePeriodTime: "1" - -resources: {} - - -nodeSelector: {} - -tolerations: [] - -affinity: {} - -# env defines the environment variables that will be declared in the pod -env: - urls: - # configmap declares variables which value is taken from the config map defined in template configmap.yaml (name is name of var and key the key in configmap). - configmap: - - name: ConnectionString - key: ordering__ConnectionString - - name: ApplicationInsights__InstrumentationKey - key: all__InstrumentationKey - - name: EventBusConnection - key: all__EventBusConnection - - name: AzureServiceBusEnabled - key: all__UseAzureServiceBus - - name: UseLoadTest - key: ordering__EnableLoadTest - - name: CheckUpdateTime - key: graceperiodmanager__CheckUpdateTime - - name: GracePeriodTime - key: graceperiodmanager__GracePeriodTime - # values define environment variables with a fixed value (no configmap involved) (name is name of var, and value is its value) - values: - - name: ASPNETCORE_ENVIRONMENT - value: Development - - name: OrchestratorType - value: 'K8S' -probes: - liveness: - path: /liveness - initialDelaySeconds: 10 - periodSeconds: 15 - port: 80 - readiness: - path: /hc - timeoutSeconds: 5 - initialDelaySeconds: 90 - periodSeconds: 60 - port: 80 From 0988dcd8c2e0845de44c58fea0c288c4ed83e056 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Wed, 7 Aug 2019 09:28:08 +0200 Subject: [PATCH 052/149] background --- build/acr-build/queue-all.ps1 | 1 + .../multiarch-manifests/create-manifests.ps1 | 2 +- docker-compose-windows.prod.yml | 11 +++ docker-compose.override.windows.yml | 5 + docker-compose.override.yml | 21 ++++- docker-compose.prod.yml | 18 ++++ docker-compose.yml | 10 +- k8s/build-push-images.ps1 | 2 +- k8s/deploy.ps1 | 2 +- k8s/deployments.yaml | 59 ++++++++++++ k8s/helm/app.yaml | 1 + k8s/helm/deploy-all-istio.ps1 | 2 +- k8s/helm/deploy-all.ps1 | 2 +- k8s/helm/deploy-all.sh | 2 +- k8s/helm/istio/doc.md | 1 + k8s/helm/ordering-backgroundtasks/.helmignore | 21 +++++ k8s/helm/ordering-backgroundtasks/Chart.yaml | 5 + .../templates/NOTES.txt | 3 + .../templates/_helpers.tpl | 32 +++++++ .../templates/_names.tpl | 51 ++++++++++ .../templates/configmap.yaml | 21 +++++ .../templates/deployment.yaml | 92 +++++++++++++++++++ .../templates/service.yaml | 19 ++++ k8s/helm/ordering-backgroundtasks/values.yaml | 70 ++++++++++++++ .../Ordering.BackgroundTasks/Dockerfile | 17 +++- .../Extensions/CustomExtensionMethods.cs | 1 + .../Ordering.BackgroundTasks.csproj | 1 + .../Ordering.BackgroundTasks/Program.cs | 7 +- src/csproj-files.txt | 1 + src/prepare-devspaces.ps1 | 3 + 30 files changed, 467 insertions(+), 16 deletions(-) create mode 100644 k8s/helm/ordering-backgroundtasks/.helmignore create mode 100644 k8s/helm/ordering-backgroundtasks/Chart.yaml create mode 100644 k8s/helm/ordering-backgroundtasks/templates/NOTES.txt create mode 100644 k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl create mode 100644 k8s/helm/ordering-backgroundtasks/templates/_names.tpl create mode 100644 k8s/helm/ordering-backgroundtasks/templates/configmap.yaml create mode 100644 k8s/helm/ordering-backgroundtasks/templates/deployment.yaml create mode 100644 k8s/helm/ordering-backgroundtasks/templates/service.yaml create mode 100644 k8s/helm/ordering-backgroundtasks/values.yaml diff --git a/build/acr-build/queue-all.ps1 b/build/acr-build/queue-all.ps1 index 60a39d92cc..69448f9a20 100644 --- a/build/acr-build/queue-all.ps1 +++ b/build/acr-build/queue-all.ps1 @@ -13,6 +13,7 @@ $services = @( @{ Name="eshopcatalog"; Image="eshop/catalog.api"; File="src/Services/Catalog/Catalog.API/Dockerfile" }, @{ Name="eshopidentity"; Image="eshop/identity.api"; File="src/Services/Identity/Identity.API/Dockerfile" }, @{ Name="eshopordering"; Image="eshop/ordering.api"; File="src/Services/Ordering/Ordering.API/Dockerfile" }, + @{ Name="eshoporderingbg"; Image="eshop/ordering.backgroundtasks"; File="src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile" }, @{ Name="eshopmarketing"; Image="eshop/marketing.api"; File="src/Services/Marketing/Marketing.API/Dockerfile" }, @{ Name="eshopwebspa"; Image="eshop/webspa"; File="src/Web/WebSPA/Dockerfile" }, @{ Name="eshopwebmvc"; Image="eshop/webmvc"; File="src/Web/WebMVC/Dockerfile" }, diff --git a/build/multiarch-manifests/create-manifests.ps1 b/build/multiarch-manifests/create-manifests.ps1 index 0bc6a4c7ca..cc7f051942 100644 --- a/build/multiarch-manifests/create-manifests.ps1 +++ b/build/multiarch-manifests/create-manifests.ps1 @@ -12,7 +12,7 @@ Write-Host "Tags used are linux-master, win-master, linux-dev, win-dev, linux-la Write-Host "Multiarch images tags will be master, dev, latest" -ForegroundColor Yellow -$services = "identity.api", "basket.api", "catalog.api", "ordering.api", "marketing.api", "payment.api", "locations.api", "webhooks.api", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub", "webstatus", "webspa", "webmvc", "webhooks.client" +$services = "identity.api", "basket.api", "catalog.api", "ordering.api", "ordering.backgroundtasks", "marketing.api", "payment.api", "locations.api", "webhooks.api", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub", "webstatus", "webspa", "webmvc", "webhooks.client" foreach ($svc in $services) { Write-Host "Creating manifest for $svc and tags :latest, :master, and :dev" diff --git a/docker-compose-windows.prod.yml b/docker-compose-windows.prod.yml index 638c98d692..9b9c552ccf 100644 --- a/docker-compose-windows.prod.yml +++ b/docker-compose-windows.prod.yml @@ -68,6 +68,17 @@ services: - AzureServiceBusEnabled=False ports: - "5102:80" + + ordering.backgroundtasks: + environment: + - ASPNETCORE_ENVIRONMENT=Production + - ASPNETCORE_URLS=http://0.0.0.0:80 + - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} + - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} + - UseCustomizationData=True + - AzureServiceBusEnabled=False + ports: + - "5111:80" webspa: environment: diff --git a/docker-compose.override.windows.yml b/docker-compose.override.windows.yml index 0f1e66efe4..dcaac7c457 100644 --- a/docker-compose.override.windows.yml +++ b/docker-compose.override.windows.yml @@ -37,6 +37,11 @@ services: - EventBusUserName=admin - EventBusPassword=password + ordering.backgroundtasks: + environment: + - EventBusUserName=admin + - EventBusPassword=password + payment.api: environment: - EventBusUserName=admin diff --git a/docker-compose.override.yml b/docker-compose.override.yml index bd04fa9976..24b0cf9a8d 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -113,7 +113,26 @@ services: - Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose - Serilog__MinimumLevel__Override__Ordering.API=Verbose ports: - - "5102:80" + - "5102:80" + + ordering.backgroundtasks: + environment: + - ASPNETCORE_ENVIRONMENT=Development + - ASPNETCORE_URLS=http://0.0.0.0:80 + - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} + - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} + - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - UseCustomizationData=True + - AzureServiceBusEnabled=False + - CheckUpdateTime=30000 + - GracePeriodTime=1 + - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} + - OrchestratorType=${ORCHESTRATOR_TYPE} + - UseLoadTest=${USE_LOADTEST:-False} + - Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose + ports: + - "5111:80" marketing.api: environment: diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index e1825a8c43..aed216ef9e 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -91,6 +91,24 @@ services: ports: - "80" # The API Gateway redirects and access through the internal port (80). + ordering.backgroundtasks: + environment: + - ASPNETCORE_ENVIRONMENT=Development + - ASPNETCORE_URLS=http://0.0.0.0:80 + - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} + - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} + - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - UseCustomizationData=True + - AzureServiceBusEnabled=False + - CheckUpdateTime=30000 + - GracePeriodTime=1 + - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} + - OrchestratorType=${ORCHESTRATOR_TYPE} + - UseLoadTest=${USE_LOADTEST:-False} + ports: + - "5111:80" + marketing.api: environment: - ASPNETCORE_ENVIRONMENT=Development diff --git a/docker-compose.yml b/docker-compose.yml index ccc888bf22..243fbf2c68 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -52,7 +52,15 @@ services: depends_on: - sql.data - rabbitmq - - identity.api + + ordering.backgroundtasks: + image: ${REGISTRY:-eshop}/ordering.backgroundtasks:${PLATFORM:-linux}-${TAG:-latest} + build: + context: . + dockerfile: src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile + depends_on: + - sql.data + - rabbitmq marketing.api: image: ${REGISTRY:-eshop}/marketing.api:${PLATFORM:-linux}-${TAG:-latest} diff --git a/k8s/build-push-images.ps1 b/k8s/build-push-images.ps1 index 769e74abc2..e2c8e06b61 100644 --- a/k8s/build-push-images.ps1 +++ b/k8s/build-push-images.ps1 @@ -57,7 +57,7 @@ if (-not [string]::IsNullOrEmpty($dockerUser)) { # Push images to Docker registry if ($pushImages) { Write-Host "Pushing images to $registry/$dockerOrg..." -ForegroundColor Yellow - $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") + $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "ordering.backgroundtasks", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") foreach ($service in $services) { $imageFqdn = if ($useDockerHub) {"$dockerOrg/${service}"} else {"$registry/$dockerOrg/${service}"} diff --git a/k8s/deploy.ps1 b/k8s/deploy.ps1 index 81af1bec7e..abeb12aed8 100644 --- a/k8s/deploy.ps1 +++ b/k8s/deploy.ps1 @@ -68,7 +68,7 @@ if ($buildImages) { if ($pushImages) { Write-Host "Pushing images to $registry/$dockerOrg..." -ForegroundColor Yellow - $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") + $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "ordering.backgroundtasks", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") foreach ($service in $services) { $imageFqdn = if ($useDockerHub) {"$dockerOrg/${service}"} else {"$registry/$dockerOrg/${service}"} diff --git a/k8s/deployments.yaml b/k8s/deployments.yaml index 46d139d1c8..ca97df9ebf 100644 --- a/k8s/deployments.yaml +++ b/k8s/deployments.yaml @@ -265,6 +265,65 @@ spec: --- apiVersion: extensions/v1beta1 kind: Deployment +metadata: + name: ordering-backgroundtasks +spec: + paused: true + template: + metadata: + labels: + app: eshop + component: ordering-backgroundtasks + spec: + containers: + - name: ordering-backgroundtasks + image: eshop/ordering.backgroundtasks + imagePullPolicy: Always + env: + - name: ConnectionString + valueFrom: + configMapKeyRef: + name: externalcfg + key: ordering__ConnectionString + - name: EventBusConnection + valueFrom: + configMapKeyRef: + name: externalcfg + key: all__EventBusConnection + - name: AzureServiceBusEnabled + valueFrom: + configMapKeyRef: + name: externalcfg + key: all__UseAzureServiceBus + - name: CheckUpdateTime + valueFrom: + configMapKeyRef: + name: externalcfg + key: GracePeriodManager__CheckUpdateTime + - name: GracePeriodTime + valueFrom: + configMapKeyRef: + name: externalcfg + key: GracePeriodManager__GracePeriodTime + - name: ApplicationInsights__InstrumentationKey + valueFrom: + configMapKeyRef: + name: externalcfg + key: all__InstrumentationKey + - name: UseLoadTest + valueFrom: + configMapKeyRef: + name: externalcfg + key: all__EnableLoadTest + - name: OrchestratorType + value: 'K8S' + ports: + - containerPort: 80 + imagePullSecrets: + - name: registry-key +--- +apiVersion: extensions/v1beta1 +kind: Deployment metadata: name: ordering-signalrhub spec: diff --git a/k8s/helm/app.yaml b/k8s/helm/app.yaml index 390844a6e2..91e829b272 100644 --- a/k8s/helm/app.yaml +++ b/k8s/helm/app.yaml @@ -28,6 +28,7 @@ app: # app global settings basket: basket # service name for basket api catalog: catalog # service name for catalog api ordering: ordering # service name for ordering api + orderingbackgroundtasks: orderingbackgroundtasks # service name for orderingbackgroundtasks orderingsignalrhub: ordering-signalrhub # service name for orderingsignalrhub identity: identity # service name for identity api mvc: webmvc # service name for web mvc diff --git a/k8s/helm/deploy-all-istio.ps1 b/k8s/helm/deploy-all-istio.ps1 index 9e32704b10..5e05c6dbbd 100644 --- a/k8s/helm/deploy-all-istio.ps1 +++ b/k8s/helm/deploy-all-istio.ps1 @@ -80,7 +80,7 @@ if (-not [string]::IsNullOrEmpty($registry)) { Write-Host "Begin eShopOnContainers installation using Helm" -ForegroundColor Green $infras = ("sql-data", "nosql-data", "rabbitmq", "keystore-data", "basket-data") -$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") +$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-backgroundtasks","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") if ($deployInfrastructure) { foreach ($infra in $infras) { diff --git a/k8s/helm/deploy-all.ps1 b/k8s/helm/deploy-all.ps1 index 21bb2f1a09..3cf6936bce 100644 --- a/k8s/helm/deploy-all.ps1 +++ b/k8s/helm/deploy-all.ps1 @@ -62,7 +62,7 @@ if (-not [string]::IsNullOrEmpty($registry)) { Write-Host "Begin eShopOnContainers installation using Helm" -ForegroundColor Green $infras = ("sql-data", "nosql-data", "rabbitmq", "keystore-data", "basket-data") -$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") +$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-backgroundtasks","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") if ($deployInfrastructure) { foreach ($infra in $infras) { diff --git a/k8s/helm/deploy-all.sh b/k8s/helm/deploy-all.sh index 04891799bb..705b172f5d 100755 --- a/k8s/helm/deploy-all.sh +++ b/k8s/helm/deploy-all.sh @@ -185,7 +185,7 @@ fi echo "#################### Begin $app_name installation using Helm ####################" infras=(sql-data nosql-data rabbitmq keystore-data basket-data) -charts=(eshop-common apigwmm apigwms apigwwm apigwws basket-api catalog-api identity-api locations-api marketing-api mobileshoppingagg ordering-api ordering-signalrhub payment-api webmvc webshoppingagg webspa webstatus webhooks-api webhooks-web) +charts=(eshop-common apigwmm apigwms apigwwm apigwws basket-api catalog-api identity-api locations-api marketing-api mobileshoppingagg ordering-api ordering-backgroundtasks ordering-signalrhub payment-api webmvc webshoppingagg webspa webstatus webhooks-api webhooks-web) if [[ !$skip_infrastructure ]]; then for infra in "${infras[@]}" diff --git a/k8s/helm/istio/doc.md b/k8s/helm/istio/doc.md index f60b714f18..b8c0a02573 100644 --- a/k8s/helm/istio/doc.md +++ b/k8s/helm/istio/doc.md @@ -258,6 +258,7 @@ fec1e3499416 a3f21ec4bd11 "/entrypoint.sh /ngi…" 76485867f032 eshop/payment.api "dotnet Payment.API.…" 2 hours ago Up 2 hours k8s_payment-api_eshop-payment-api-75d5f9bdf6-6zx2v_default_4a3cdab4-e67f-11e8-b4b6-00155d016146_1 c2c4640ed610 eshop/marketing.api "dotnet Marketing.AP…" 2 hours ago Up 2 hours k8s_marketing-api_eshop-marketing-api-6b8c5989fd-jpxqv_default_45780626-e67f-11e8-b4b6-00155d016146_1 85301d538574 eshop/ordering.signalrhub "dotnet Ordering.Sig…" 2 hours ago Up 2 hours k8s_ordering-signalrhub_eshop-ordering-signalrhub-58cf5ff6-cnlm8_default_4932c344-e67f-11e8-b4b6-00155d016146_1 +7a408a98000e eshop/ordering.backgroundtasks "dotnet Ordering.Bac…" 2 hours ago Up 2 hours k8s_ordering-backgroundtasks_eshop-ordering-backgroundtasks-cc8f6d4d8-ztfk7_default_47f9cf10-e67f-11e8-b4b6-00155d016146_1 12c64b3a13e0 eshop/basket.api "dotnet Basket.API.d…" 2 hours ago Up 2 hours k8s_basket-api_eshop-basket-api-658546684d-6hlvd_default_4262d022-e67f-11e8-b4b6-00155d016146_1 133fccfeeff3 eshop/webstatus "dotnet WebStatus.dll" 2 hours ago Up 2 hours k8s_webstatus_eshop-webstatus-7f46479dc4-bqnq7_default_4dc13eb2-e67f-11e8-b4b6-00155d016146_0 00c6e4c52135 eshop/webspa "dotnet WebSPA.dll" 2 hours ago Up 2 hours k8s_webspa_eshop-webspa-64cb8df9cb-dcbwg_default_4cd47376-e67f-11e8-b4b6-00155d016146_0 diff --git a/k8s/helm/ordering-backgroundtasks/.helmignore b/k8s/helm/ordering-backgroundtasks/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/k8s/helm/ordering-backgroundtasks/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/k8s/helm/ordering-backgroundtasks/Chart.yaml b/k8s/helm/ordering-backgroundtasks/Chart.yaml new file mode 100644 index 0000000000..6ad4f47e6b --- /dev/null +++ b/k8s/helm/ordering-backgroundtasks/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: "1.0" +description: A Helm chart for Kubernetes +name: ordering-backgroundtasks +version: 0.1.0 diff --git a/k8s/helm/ordering-backgroundtasks/templates/NOTES.txt b/k8s/helm/ordering-backgroundtasks/templates/NOTES.txt new file mode 100644 index 0000000000..54e1b49ea5 --- /dev/null +++ b/k8s/helm/ordering-backgroundtasks/templates/NOTES.txt @@ -0,0 +1,3 @@ +eShop Ordering Background Tasks installed. +------------------------------------------ + diff --git a/k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl b/k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl new file mode 100644 index 0000000000..e61b78285d --- /dev/null +++ b/k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl @@ -0,0 +1,32 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "ordering-backgroundtasks.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "ordering-backgroundtasks.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "ordering-backgroundtasks.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/k8s/helm/ordering-backgroundtasks/templates/_names.tpl b/k8s/helm/ordering-backgroundtasks/templates/_names.tpl new file mode 100644 index 0000000000..39ee485ef3 --- /dev/null +++ b/k8s/helm/ordering-backgroundtasks/templates/_names.tpl @@ -0,0 +1,51 @@ +{{- define "suffix-name" -}} +{{- if .Values.app.name -}} +{{- .Values.app.name -}} +{{- else -}} +{{- .Release.Name -}} +{{- end -}} +{{- end -}} + +{{- define "sql-name" -}} +{{- if .Values.inf.sql.host -}} +{{- .Values.inf.sql.host -}} +{{- else -}} +{{- printf "%s" "sql-data" -}} +{{- end -}} +{{- end -}} + +{{- define "mongo-name" -}} +{{- if .Values.inf.mongo.host -}} +{{- .Values.inf.mongo.host -}} +{{- else -}} +{{- printf "%s" "nosql-data" -}} +{{- end -}} +{{- end -}} + +{{- define "url-of" -}} +{{- $name := first .}} +{{- $ctx := last .}} +{{- if eq $name "" -}} +{{- $ctx.Values.inf.k8s.dns -}} +{{- else -}} +{{- printf "%s/%s" $ctx.Values.inf.k8s.dns $name -}} {{/*Value is just / */}} +{{- end -}} +{{- end -}} + + +{{- define "pathBase" -}} +{{- if .Values.inf.k8s.suffix -}} +{{- $suffix := include "suffix-name" . -}} +{{- printf "%s-%s" .Values.pathBase $suffix -}} +{{- else -}} +{{- .Values.pathBase -}} +{{- end -}} +{{- end -}} + +{{- define "fqdn-image" -}} +{{- if .Values.inf.registry -}} +{{- printf "%s/%s" .Values.inf.registry.server .Values.image.repository -}} +{{- else -}} +{{- .Values.image.repository -}} +{{- end -}} +{{- end -}} \ No newline at end of file diff --git a/k8s/helm/ordering-backgroundtasks/templates/configmap.yaml b/k8s/helm/ordering-backgroundtasks/templates/configmap.yaml new file mode 100644 index 0000000000..7ed4a0e8e2 --- /dev/null +++ b/k8s/helm/ordering-backgroundtasks/templates/configmap.yaml @@ -0,0 +1,21 @@ +{{- $name := include "ordering-backgroundtasks.fullname" . -}} +{{- $sqlsrv := include "sql-name" . -}} +{{- $cfgname := printf "cfg-%s" $name | trunc 63 }} + +apiVersion: v1 +kind: ConfigMap +metadata: + name: "{{ $cfgname }}" + labels: + app: {{ template "ordering-backgroundtasks.name" . }} + chart: {{ template "ordering-backgroundtasks.chart" .}} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +data: + ordering__ConnectionString: Server={{ $sqlsrv }};Initial Catalog={{ .Values.inf.sql.ordering.db }};User Id={{ .Values.inf.sql.common.user }};Password={{ .Values.inf.sql.common.pwd }}; + ordering__EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" + all__EventBusConnection: {{ .Values.inf.eventbus.constr }} + all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}" + all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" + graceperiodmanager__CheckUpdateTime: "{{ .Values.cfg.checkUpdateTime }}" + graceperiodmanager__GracePeriodTime: "{{ .Values.cfg.gracePeriodTime }}" \ No newline at end of file diff --git a/k8s/helm/ordering-backgroundtasks/templates/deployment.yaml b/k8s/helm/ordering-backgroundtasks/templates/deployment.yaml new file mode 100644 index 0000000000..d93c7f764c --- /dev/null +++ b/k8s/helm/ordering-backgroundtasks/templates/deployment.yaml @@ -0,0 +1,92 @@ +{{- $name := include "ordering-backgroundtasks.fullname" . -}} +{{- $cfgname := printf "cfg-%s" $name | trunc 63 }} + +apiVersion: apps/v1beta2 +kind: Deployment +metadata: + name: {{ template "ordering-backgroundtasks.fullname" . }} + labels: + app: {{ template "ordering-backgroundtasks.name" . }} + chart: {{ template "ordering-backgroundtasks.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: {{ template "ordering-backgroundtasks.name" . }} + release: {{ .Release.Name }} + template: + metadata: + labels: + app: {{ template "ordering-backgroundtasks.name" . }} + release: {{ .Release.Name }} + spec: + {{ if .Values.inf.registry -}} + imagePullSecrets: + - name: {{ .Values.inf.registry.secretName }} + {{- end }} + containers: + - name: {{ .Chart.Name }} + {{ if .Values.probes -}} + {{- if .Values.probes.liveness -}} + livenessProbe: + httpGet: + port: {{ .Values.probes.liveness.port }} + path: {{ .Values.probes.liveness.path }} + initialDelaySeconds: {{ .Values.probes.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.probes.liveness.periodSeconds }} + {{- end -}} + {{- end -}} + {{- if .Values.probes -}} + {{- if .Values.probes.readiness }} + readinessProbe: + httpGet: + port: {{ .Values.probes.readiness.port }} + path: {{ .Values.probes.readiness.path }} + initialDelaySeconds: {{ .Values.probes.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.probes.readiness.periodSeconds }} + timeoutSeconds: {{ .Values.probes.readiness.timeoutSeconds }} + {{- end -}} + {{- end }} + image: "{{ template "fqdn-image" . }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + env: + - name: PATH_BASE + value: {{ include "pathBase" . }} + - name: k8sname + value: {{ .Values.clusterName }} + {{- if .Values.env.values -}} + {{- range .Values.env.values }} + - name: {{ .name }} + value: {{ .value | quote }} + {{- end -}} + {{- end -}} + {{- if .Values.env.configmap -}} + {{- range .Values.env.configmap }} + - name: {{ .name }} + valueFrom: + configMapKeyRef: + name: {{ $cfgname }} + key: {{ .key }} + {{- end -}} + {{- end }} + ports: + - name: http + containerPort: 80 + protocol: TCP + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: +{{ toYaml . | indent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: +{{ toYaml . | indent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} + {{- end }} + diff --git a/k8s/helm/ordering-backgroundtasks/templates/service.yaml b/k8s/helm/ordering-backgroundtasks/templates/service.yaml new file mode 100644 index 0000000000..d8fcba0368 --- /dev/null +++ b/k8s/helm/ordering-backgroundtasks/templates/service.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.app.svc.orderingbackgroundtasks }} + labels: + app: {{ template "ordering-backgroundtasks.name" . }} + chart: {{ template "ordering-backgroundtasks.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + app: {{ template "ordering-backgroundtasks.name" . }} + release: {{ .Release.Name }} diff --git a/k8s/helm/ordering-backgroundtasks/values.yaml b/k8s/helm/ordering-backgroundtasks/values.yaml new file mode 100644 index 0000000000..d065f03451 --- /dev/null +++ b/k8s/helm/ordering-backgroundtasks/values.yaml @@ -0,0 +1,70 @@ +replicaCount: 1 +clusterName: eshop-aks +pathBase: /ordering-backgroundtasks + +image: + repository: eshop/ordering.backgroundtasks + tag: latest + pullPolicy: IfNotPresent + +service: + type: ClusterIP + port: 80 + +ingress: + enabled: false + annotations: {} + hosts: + - chart-example.local + tls: [] + +cfg: + checkUpdateTime: "15000" + gracePeriodTime: "1" + +resources: {} + + +nodeSelector: {} + +tolerations: [] + +affinity: {} + +# env defines the environment variables that will be declared in the pod +env: + urls: + # configmap declares variables which value is taken from the config map defined in template configmap.yaml (name is name of var and key the key in configmap). + configmap: + - name: ConnectionString + key: ordering__ConnectionString + - name: ApplicationInsights__InstrumentationKey + key: all__InstrumentationKey + - name: EventBusConnection + key: all__EventBusConnection + - name: AzureServiceBusEnabled + key: all__UseAzureServiceBus + - name: UseLoadTest + key: ordering__EnableLoadTest + - name: CheckUpdateTime + key: graceperiodmanager__CheckUpdateTime + - name: GracePeriodTime + key: graceperiodmanager__GracePeriodTime + # values define environment variables with a fixed value (no configmap involved) (name is name of var, and value is its value) + values: + - name: ASPNETCORE_ENVIRONMENT + value: Development + - name: OrchestratorType + value: 'K8S' +probes: + liveness: + path: /liveness + initialDelaySeconds: 10 + periodSeconds: 15 + port: 80 + readiness: + path: /hc + timeoutSeconds: 5 + initialDelaySeconds: 90 + periodSeconds: 60 + port: 80 diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile index 25f55a79c4..1aeaaafc01 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile @@ -1,16 +1,23 @@ FROM mcr.microsoft.com/dotnet/core/runtime:3.0-buster-slim AS base WORKDIR /app +EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY ["src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj", "src/Services/Ordering/Ordering.BackgroundTasks/"] -RUN dotnet restore "src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" + +COPY scripts scripts/ + +COPY src/ApiGateways/*/*.csproj /src/csproj-files/ +COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ +COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ +COPY src/Services/*/*/*.csproj /src/csproj-files/ +COPY src/Web/*/*.csproj /src/csproj-files/ + COPY . . -WORKDIR "/src/src/Services/Ordering/Ordering.BackgroundTasks" -RUN dotnet build "Ordering.BackgroundTasks.csproj" -c Release -o /app +WORKDIR /src/src/Services/Ordering/Ordering.BackgroundTasks +RUN dotnet publish -c Release -o /app FROM build AS publish -RUN dotnet publish "Ordering.BackgroundTasks.csproj" -c Release -o /app FROM base AS final WORKDIR /app diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs index 81d5472f48..751ae71ee7 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs @@ -94,6 +94,7 @@ public static IServiceCollection AddEventBus(this IServiceCollection services, I } var retryCount = 5; + if (!string.IsNullOrEmpty(configuration["EventBusRetryCount"])) { retryCount = int.Parse(configuration["EventBusRetryCount"]); diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj index 94e44bd3eb..50c7566337 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj @@ -3,6 +3,7 @@ $(NetCoreTargetVersion) dotnet-Ordering.BackgroundTasks-9D3E1DD6-405B-447F-8AAB-1708B36D260E + false Linux $(LangVersion) diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs index ca42a4ebb8..6d4e72ded0 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs @@ -18,11 +18,11 @@ public static void Main(string[] args) public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureAppConfiguration((hostContext, builder) => + .ConfigureAppConfiguration((host, builder) => { builder.SetBasePath(Directory.GetCurrentDirectory()); builder.AddJsonFile("appsettings.json", optional: true); - builder.AddJsonFile($"appsettings.{hostContext.HostingEnvironment.EnvironmentName}.json", optional: true); + builder.AddJsonFile($"appsettings.{host.HostingEnvironment.EnvironmentName}.json", optional: true); builder.AddEnvironmentVariables(); builder.AddCommandLine(args); }) @@ -35,6 +35,7 @@ public static IHostBuilder CreateHostBuilder(string[] args) => services.AddHostedService(); services.AddEventBus(host.Configuration); services.AddAutofac(container => container.Populate(services)); - }); + }) + .UseServiceProviderFactory(new AutofacServiceProviderFactory()); } } diff --git a/src/csproj-files.txt b/src/csproj-files.txt index 96420d96e7..6dc3532d94 100644 --- a/src/csproj-files.txt +++ b/src/csproj-files.txt @@ -20,6 +20,7 @@ COPY src/Services/Location/Locations.FunctionalTests/*.csproj /src/src/Services/ COPY src/Services/Marketing/Marketing.API/*.csproj /src/src/Services/Marketing/Marketing.API/ COPY src/Services/Marketing/Marketing.FunctionalTests/*.csproj /src/src/Services/Marketing/Marketing.FunctionalTests/ COPY src/Services/Ordering/Ordering.API/*.csproj /src/src/Services/Ordering/Ordering.API/ +COPY src/Services/Ordering/Ordering.BackgroundTasks/*.csproj /src/src/Services/Ordering/Ordering.BackgroundTasks/ COPY src/Services/Ordering/Ordering.Domain/*.csproj /src/src/Services/Ordering/Ordering.Domain/ COPY src/Services/Ordering/Ordering.FunctionalTests/*.csproj /src/src/Services/Ordering/Ordering.FunctionalTests/ COPY src/Services/Ordering/Ordering.Infrastructure/*.csproj /src/src/Services/Ordering/Ordering.Infrastructure/ diff --git a/src/prepare-devspaces.ps1 b/src/prepare-devspaces.ps1 index 5e1b72d4ed..5b692e9081 100644 --- a/src/prepare-devspaces.ps1 +++ b/src/prepare-devspaces.ps1 @@ -52,6 +52,9 @@ Copy-Item "..\k8s\helm\inf.yaml" -Destination ".\Services\Ordering\Ordering.API" Copy-Item "..\k8s\helm\app.yaml" -Destination ".\Services\Ordering\Ordering.SignalrHub" -Force Copy-Item "..\k8s\helm\inf.yaml" -Destination ".\Services\Ordering\Ordering.SignalrHub" -Force +Copy-Item "..\k8s\helm\app.yaml" -Destination ".\Services\Ordering\Ordering.BackgroundTasks" -Force +Copy-Item "..\k8s\helm\inf.yaml" -Destination ".\Services\Ordering\Ordering.BackgroundTasks" -Force + Write-Host "Copying app.yaml and inf.yaml to Payment API" -ForegroundColor Yellow Copy-Item "..\k8s\helm\app.yaml" -Destination ".\Services\Payment\Payment.API" -Force Copy-Item "..\k8s\helm\inf.yaml" -Destination ".\Services\Payment\Payment.API" -Force From d29f6c21f9dab43d4837e6cac436be74b909335c Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 7 Aug 2019 15:45:23 +0200 Subject: [PATCH 053/149] Add health check in Ordering.BackgroundTask project --- docker-compose.override.yml | 30 +++++----- .../Ordering.BackgroundTasks/Dockerfile | 2 +- .../Ordering.BackgroundTasks.csproj | 18 +++--- .../Ordering.BackgroundTasks/Program.cs | 20 +++---- .../Ordering.BackgroundTasks/Startup.cs | 57 +++++++++++++++++++ src/_build/dependencies.props | 1 + 6 files changed, 93 insertions(+), 35 deletions(-) create mode 100644 src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 24b0cf9a8d..60f2efb452 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -342,20 +342,22 @@ services: - HealthChecks-UI__HealthChecks__7__Uri=http://webmarketingapigw/hc - HealthChecks-UI__HealthChecks__8__Name=Ordering HTTP Check - HealthChecks-UI__HealthChecks__8__Uri=http://ordering.api/hc - - HealthChecks-UI__HealthChecks__10__Name=Basket HTTP Check - - HealthChecks-UI__HealthChecks__10__Uri=http://basket.api/hc - - HealthChecks-UI__HealthChecks__11__Name=Catalog HTTP Check - - HealthChecks-UI__HealthChecks__11__Uri=http://catalog.api/hc - - HealthChecks-UI__HealthChecks__12__Name=Identity HTTP Check - - HealthChecks-UI__HealthChecks__12__Uri=http://identity.api/hc - - HealthChecks-UI__HealthChecks__13__Name=Marketing HTTP Check - - HealthChecks-UI__HealthChecks__13__Uri=http://marketing.api/hc - - HealthChecks-UI__HealthChecks__14__Name=Locations HTTP Check - - HealthChecks-UI__HealthChecks__14__Uri=http://locations.api/hc - - HealthChecks-UI__HealthChecks__15__Name=Payments HTTP Check - - HealthChecks-UI__HealthChecks__15__Uri=http://payment.api/hc - - HealthChecks-UI__HealthChecks__16__Name=Ordering SignalRHub HTTP Check - - HealthChecks-UI__HealthChecks__16__Uri=http://ordering.signalrhub/hc + - HealthChecks-UI__HealthChecks__9__Name=Basket HTTP Check + - HealthChecks-UI__HealthChecks__9__Uri=http://basket.api/hc + - HealthChecks-UI__HealthChecks__10__Name=Catalog HTTP Check + - HealthChecks-UI__HealthChecks__10__Uri=http://catalog.api/hc + - HealthChecks-UI__HealthChecks__11__Name=Identity HTTP Check + - HealthChecks-UI__HealthChecks__11__Uri=http://identity.api/hc + - HealthChecks-UI__HealthChecks__12__Name=Marketing HTTP Check + - HealthChecks-UI__HealthChecks__12__Uri=http://marketing.api/hc + - HealthChecks-UI__HealthChecks__13__Name=Locations HTTP Check + - HealthChecks-UI__HealthChecks__13__Uri=http://locations.api/hc + - HealthChecks-UI__HealthChecks__14__Name=Payments HTTP Check + - HealthChecks-UI__HealthChecks__14__Uri=http://payment.api/hc + - HealthChecks-UI__HealthChecks__15__Name=Ordering SignalRHub HTTP Check + - HealthChecks-UI__HealthChecks__15__Uri=http://ordering.signalrhub/hc + - HealthChecks-UI__HealthChecks__16__Name=Ordering HTTP Background Check + - HealthChecks-UI__HealthChecks__16__Uri=http://ordering.backgroundtasks/hc - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} ports: diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile index 1aeaaafc01..820f8d4b1c 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/core/runtime:3.0-buster-slim AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj index 50c7566337..5168760a98 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj @@ -9,21 +9,25 @@ + + + + + + + + - + + + - - - - - - diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs index 6d4e72ded0..152cd79a73 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs @@ -6,6 +6,8 @@ using Ordering.BackgroundTasks.Tasks; using Serilog; using System.IO; +using Microsoft.AspNetCore; +using Microsoft.AspNetCore.Hosting; namespace Ordering.BackgroundTasks { @@ -13,11 +15,11 @@ public class Program { public static void Main(string[] args) { - CreateHostBuilder(args).Build().Run(); + CreateHostBuilder(args).Run(); } - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) + public static IWebHost CreateHostBuilder(string[] args) => + WebHost.CreateDefaultBuilder(args) .ConfigureAppConfiguration((host, builder) => { builder.SetBasePath(Directory.GetCurrentDirectory()); @@ -27,15 +29,7 @@ public static IHostBuilder CreateHostBuilder(string[] args) => builder.AddCommandLine(args); }) .ConfigureLogging((host, builder) => builder.UseSerilog(host.Configuration).AddSerilog()) - .ConfigureServices((host, services) => - { - services.AddCustomHealthCheck(host.Configuration); - services.Configure(host.Configuration); - services.AddOptions(); - services.AddHostedService(); - services.AddEventBus(host.Configuration); - services.AddAutofac(container => container.Populate(services)); - }) - .UseServiceProviderFactory(new AutofacServiceProviderFactory()); + .UseStartup() + .Build(); } } diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs new file mode 100644 index 0000000000..1f35b711cd --- /dev/null +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Startup.cs @@ -0,0 +1,57 @@ +namespace Ordering.BackgroundTasks +{ + using Autofac; + using Autofac.Extensions.DependencyInjection; + using Microsoft.AspNetCore.Builder; + using Microsoft.AspNetCore.Diagnostics.HealthChecks; + using Microsoft.Extensions.Configuration; + using Microsoft.Extensions.DependencyInjection; + using Microsoft.Extensions.Logging; + using Ordering.BackgroundTasks.Extensions; + using Ordering.BackgroundTasks.Tasks; + using System; + using HealthChecks.UI.Client; + + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + + public virtual IServiceProvider ConfigureServices(IServiceCollection services) + { + services.AddCustomHealthCheck(this.Configuration) + .Configure(this.Configuration) + .AddOptions() + .AddHostedService() + .AddEventBus(this.Configuration) + .AddAutofac(container => container.Populate(services)); + + var container = new ContainerBuilder(); + container.Populate(services); + + return new AutofacServiceProvider(container.Build()); + } + + + public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) + { + app.UseRouting(); + app.UseEndpoints(endpoints => + { + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + }); + } + } +} diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index dceb4edd2a..5ea99f10c4 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -58,6 +58,7 @@ 2.2.0 1.0.0 2.2.0 + 3.0.0-preview4-19123-01 3.0.0-preview6.19307.2 3.0.0-preview7.19365.7 3.0.0-preview7.19365.7 From 4a30a1cc9e8ac4385d565db8e4eef0efb4fb2054 Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 7 Aug 2019 15:56:24 +0200 Subject: [PATCH 054/149] add package version to dependencies.props --- .../Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj | 2 +- src/_build/dependencies.props | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj index 5168760a98..df73288bcc 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj @@ -16,7 +16,7 @@ - + diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 5ea99f10c4..f472ce237b 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -50,6 +50,7 @@ 2.6.1 1.0.2 3.0.0-preview4-19123-01 + 3.0.0-preview7.19365.7 3.0.0-alpha1-10670 2.2.0-preview2-35157 3.0.0-alpha1-34847 From 216463f847c113f95b400d9109977818ca9fb4b0 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Wed, 7 Aug 2019 17:06:20 +0200 Subject: [PATCH 055/149] ordering.api error integrationevents --- .../IntegrationEventLogEntry.cs | 7 ++---- .../Services/IntegrationEventLogService.cs | 22 +++++++++---------- .../Controllers/BasketController.cs | 12 +++++++++- src/Services/Catalog/Catalog.API/Startup.cs | 2 +- .../Behaviors/TransactionBehaviour.cs | 2 -- src/Services/Ordering/Ordering.API/Startup.cs | 2 +- .../Ordering.SignalrHub.csproj | 1 + .../Ordering/Ordering.SignalrHub/Startup.cs | 6 ++++- src/Services/Webhooks/Webhooks.API/Startup.cs | 2 +- src/Web/WebMVC/Services/BasketService.cs | 7 +++++- 10 files changed, 39 insertions(+), 24 deletions(-) diff --git a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEntry.cs b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEntry.cs index ec532d6dac..f9cf4a2c1f 100644 --- a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEntry.cs +++ b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEntry.cs @@ -14,7 +14,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF public class IntegrationEventLogEntry { private IntegrationEventLogEntry() { } - public IntegrationEventLogEntry(IntegrationEvent @event, Guid transactionId, ILogger logger) + public IntegrationEventLogEntry(IntegrationEvent @event, Guid transactionId) { EventId = @event.Id; CreationTime = @event.CreationDate; @@ -23,7 +23,6 @@ public IntegrationEventLogEntry(IntegrationEvent @event, Guid transactionId, ILo State = EventStateEnum.NotPublished; TimesSent = 0; TransactionId = transactionId.ToString(); - } public Guid EventId { get; private set; } public string EventTypeName { get; private set; } @@ -37,10 +36,8 @@ public IntegrationEventLogEntry(IntegrationEvent @event, Guid transactionId, ILo public string Content { get; private set; } public string TransactionId { get; private set; } - public IntegrationEventLogEntry DeserializeJsonContent(Type type, ILogger logger) + public IntegrationEventLogEntry DeserializeJsonContent(Type type) { - logger.LogInformation("----- DeserializeJsonContent {Content} {Type}", Content, type); - IntegrationEvent = JsonConvert.DeserializeObject(Content, type) as IntegrationEvent; return this; } diff --git a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs index b8e9eab9ac..04fa84618a 100644 --- a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs +++ b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs @@ -18,13 +18,11 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Servi public class IntegrationEventLogService : IIntegrationEventLogService { private readonly IntegrationEventLogContext _integrationEventLogContext; - private readonly ILogger _logger; private readonly DbConnection _dbConnection; private readonly List _eventTypes; - public IntegrationEventLogService(DbConnection dbConnection, ILogger logger) + public IntegrationEventLogService(DbConnection dbConnection) { - _logger =logger; _dbConnection = dbConnection ?? throw new ArgumentNullException(nameof(dbConnection)); _integrationEventLogContext = new IntegrationEventLogContext( new DbContextOptionsBuilder() @@ -40,22 +38,24 @@ public IntegrationEventLogService(DbConnection dbConnection, ILogger> RetrieveEventLogsPendingToPublishAsync(Guid transactionId) { - _logger.LogInformation("----- RetrieveEventLogsPendingToPublishAsync {TransactionId}", transactionId); - var tid = transactionId.ToString(); - return await _integrationEventLogContext.IntegrationEventLogs - .Where(e => e.TransactionId == tid && e.State == EventStateEnum.NotPublished) - .OrderBy(o => o.CreationTime) - .Select(e => e.DeserializeJsonContent(_eventTypes.Find(t=> t.Name == e.EventTypeShortName), _logger)) - .ToListAsync(); + var result = await _integrationEventLogContext.IntegrationEventLogs + .Where(e => e.TransactionId == tid && e.State == EventStateEnum.NotPublished).ToListAsync(); + + if(result != null && result.Any()){ + return result.OrderBy(o => o.CreationTime) + .Select(e => e.DeserializeJsonContent(_eventTypes.Find(t=> t.Name == e.EventTypeShortName))); + } + + return new List(); } public Task SaveEventAsync(IntegrationEvent @event, IDbContextTransaction transaction) { if (transaction == null) throw new ArgumentNullException(nameof(transaction)); - var eventLogEntry = new IntegrationEventLogEntry(@event, transaction.TransactionId, _logger); + var eventLogEntry = new IntegrationEventLogEntry(@event, transaction.TransactionId); _integrationEventLogContext.Database.UseTransaction(transaction.GetDbTransaction()); _integrationEventLogContext.IntegrationEventLogs.Add(eventLogEntry); diff --git a/src/Services/Basket/Basket.API/Controllers/BasketController.cs b/src/Services/Basket/Basket.API/Controllers/BasketController.cs index 0bf15fc420..629369dd13 100644 --- a/src/Services/Basket/Basket.API/Controllers/BasketController.cs +++ b/src/Services/Basket/Basket.API/Controllers/BasketController.cs @@ -7,7 +7,9 @@ using Microsoft.eShopOnContainers.Services.Basket.API.Services; using Microsoft.Extensions.Logging; using System; +using System.Linq; using System.Net; +using System.Security.Claims; using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.Services.Basket.API.Controllers @@ -61,6 +63,8 @@ public async Task CheckoutAsync([FromBody]BasketCheckout basketChe basketCheckout.RequestId = (Guid.TryParse(requestId, out Guid guid) && guid != Guid.Empty) ? guid : basketCheckout.RequestId; +_logger.LogInformation("----- CheckoutAsync userId: {userId} ", userId); + var basket = await _repository.GetBasketAsync(userId); if (basket == null) @@ -68,7 +72,13 @@ public async Task CheckoutAsync([FromBody]BasketCheckout basketChe return BadRequest(); } - var userName = User.FindFirst(x => x.Type == "unique_name").Value; +_logger.LogInformation("----- CheckoutAsync basket: {@basket} ", basket); + +_logger.LogInformation("----- CheckoutAsync user identity: {User} ", string.Join(':', ((ClaimsIdentity)User.Identity).Claims.Select(c => c.Type + " " + c.Value))); + + var userName = User.FindFirst(x => x.Type == ClaimTypes.Name).Value; + + _logger.LogInformation("----- CheckoutAsync userName: {@userName} ", userName); var eventMessage = new UserCheckoutAcceptedIntegrationEvent(userId, userName, basketCheckout.City, basketCheckout.Street, basketCheckout.State, basketCheckout.Country, basketCheckout.ZipCode, basketCheckout.CardNumber, basketCheckout.CardHolderName, diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 451d5d5cf0..64441f9ea5 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -277,7 +277,7 @@ public static IServiceCollection AddSwagger(this IServiceCollection services, IC public static IServiceCollection AddIntegrationServices(this IServiceCollection services, IConfiguration configuration) { services.AddTransient>( - sp => (DbConnection c) => new IntegrationEventLogService(c, sp.GetService>())); + sp => (DbConnection c) => new IntegrationEventLogService(c)); services.AddTransient(); diff --git a/src/Services/Ordering/Ordering.API/Application/Behaviors/TransactionBehaviour.cs b/src/Services/Ordering/Ordering.API/Application/Behaviors/TransactionBehaviour.cs index 0320cbd97d..be32daeeec 100644 --- a/src/Services/Ordering/Ordering.API/Application/Behaviors/TransactionBehaviour.cs +++ b/src/Services/Ordering/Ordering.API/Application/Behaviors/TransactionBehaviour.cs @@ -56,8 +56,6 @@ await strategy.ExecuteAsync(async () => await _dbContext.CommitTransactionAsync(transaction); transactionId = transaction.TransactionId; - - _logger.LogInformation("----- End transaction {TransactionId} for {CommandName}", transaction.TransactionId, typeName); } await _orderingIntegrationEventService.PublishEventsThroughEventBusAsync(transactionId); diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index 572c833205..fca490f285 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -273,7 +273,7 @@ public static IServiceCollection AddCustomIntegrations(this IServiceCollection s services.AddSingleton(); services.AddTransient(); services.AddTransient>( - sp => (DbConnection c) => new IntegrationEventLogService(c, sp.GetService>())); + sp => (DbConnection c) => new IntegrationEventLogService(c)); services.AddTransient(); diff --git a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj index 3da5b61f70..67ad7c66f9 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj +++ b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj @@ -27,6 +27,7 @@ + diff --git a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs index 456e733976..b3168e5d74 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs @@ -109,7 +109,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) RegisterEventBus(services); services.AddOptions(); - + //configure autofac var container = new ContainerBuilder(); container.RegisterModule(new ApplicationModule()); @@ -136,6 +136,10 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) app.UseCors("CorsPolicy"); app.UseRouting(); + + //app.UseAuthorization(); + app.UseAutentication(); + app.UseEndpoints(endpoints => { endpoints.MapHealthChecks("/hc", new HealthCheckOptions() diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs index 1d454a7ab9..5859e9e12f 100644 --- a/src/Services/Webhooks/Webhooks.API/Startup.cs +++ b/src/Services/Webhooks/Webhooks.API/Startup.cs @@ -291,7 +291,7 @@ public static IServiceCollection AddHttpClientServices(this IServiceCollection s public static IServiceCollection AddIntegrationServices(this IServiceCollection services, IConfiguration configuration) { services.AddTransient>( - sp => (DbConnection c) => new IntegrationEventLogService(c, sp.GetService>())); + sp => (DbConnection c) => new IntegrationEventLogService(c)); if (configuration.GetValue("AzureServiceBusEnabled")) { diff --git a/src/Web/WebMVC/Services/BasketService.cs b/src/Web/WebMVC/Services/BasketService.cs index dd0a50febb..e9f015e541 100644 --- a/src/Web/WebMVC/Services/BasketService.cs +++ b/src/Web/WebMVC/Services/BasketService.cs @@ -1,4 +1,5 @@ using Microsoft.eShopOnContainers.WebMVC.ViewModels; +using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Newtonsoft.Json; using System.Collections.Generic; @@ -14,15 +15,17 @@ public class BasketService : IBasketService { private readonly IOptions _settings; private readonly HttpClient _apiClient; + private readonly ILogger _logger; private readonly string _basketByPassUrl; private readonly string _purchaseUrl; private readonly string _bffUrl; - public BasketService(HttpClient httpClient, IOptions settings) + public BasketService(HttpClient httpClient, IOptions settings, ILogger logger) { _apiClient = httpClient; _settings = settings; + _logger =logger; _basketByPassUrl = $"{_settings.Value.PurchaseUrl}/api/v1/b/basket"; _purchaseUrl = $"{_settings.Value.PurchaseUrl}/api/v1"; @@ -57,6 +60,8 @@ public async Task Checkout(BasketDTO basket) var uri = API.Basket.CheckoutBasket(_basketByPassUrl); var basketContent = new StringContent(JsonConvert.SerializeObject(basket), System.Text.Encoding.UTF8, "application/json"); + _logger.LogInformation("Uri chechout {uri}", uri); + var response = await _apiClient.PostAsync(uri, basketContent); response.EnsureSuccessStatusCode(); From c8da44049a7211a7db9e1c13dfddda4d177e9313 Mon Sep 17 00:00:00 2001 From: ericuss Date: Thu, 8 Aug 2019 10:01:18 +0200 Subject: [PATCH 056/149] remove not needed code --- .../Marketing.FunctionalTests/MarketingScenarioBase.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs b/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs index 76be3b0993..025934220f 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs +++ b/src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs @@ -27,8 +27,8 @@ public TestServer CreateServer() .UseContentRoot(Path.GetDirectoryName(path)) .ConfigureAppConfiguration(cb => { - var h = cb.AddJsonFile("appsettings.json", optional: false) - .AddEnvironmentVariables(); + cb.AddJsonFile("appsettings.json", optional: false) + .AddEnvironmentVariables(); }) .CaptureStartupErrors(true) .UseStartup(); @@ -40,7 +40,6 @@ public TestServer CreateServer() { var logger = services.GetService>(); - logger.LogError("Migrating MarketingContextSeed"); new MarketingContextSeed() .SeedAsync(context, logger) .Wait(); From f1cb1b6824ec8c31125d11489b6ed462016163a6 Mon Sep 17 00:00:00 2001 From: ericuss Date: Thu, 8 Aug 2019 10:27:51 +0200 Subject: [PATCH 057/149] Fix authentication in Ordering.SignalR --- .../Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj | 2 ++ src/Services/Ordering/Ordering.SignalrHub/Startup.cs | 4 ++-- src/_build/dependencies.props | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj index 67ad7c66f9..52a2a38536 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj +++ b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj @@ -22,6 +22,8 @@ + + diff --git a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs index b3168e5d74..472644781b 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs @@ -137,8 +137,8 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) app.UseCors("CorsPolicy"); app.UseRouting(); - //app.UseAuthorization(); - app.UseAutentication(); + app.UseAuthentication(); + app.UseAuthorization(); app.UseEndpoints(endpoints => { diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index f472ce237b..44651cb53f 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -51,6 +51,8 @@ 1.0.2 3.0.0-preview4-19123-01 3.0.0-preview7.19365.7 + 3.0.0-preview4-19123-01 + 3.0.0-preview4-19123-01 3.0.0-alpha1-10670 2.2.0-preview2-35157 3.0.0-alpha1-34847 From da6f9d7ea7e6e7954a482865575b0000e4b27926 Mon Sep 17 00:00:00 2001 From: Nish Anil Date: Thu, 8 Aug 2019 21:45:48 +0530 Subject: [PATCH 058/149] Create ReadMe.md --- src/_build/ReadMe.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/_build/ReadMe.md diff --git a/src/_build/ReadMe.md b/src/_build/ReadMe.md new file mode 100644 index 0000000000..536add60bd --- /dev/null +++ b/src/_build/ReadMe.md @@ -0,0 +1 @@ +`Please define why we are using this here.` From bf85169d67340a088093321f5a71f169bce49a35 Mon Sep 17 00:00:00 2001 From: ericuss Date: Mon, 12 Aug 2019 08:27:19 +0200 Subject: [PATCH 059/149] partial checkin trying to fix checkout process --- .../Controllers/BasketController.cs | 6 +- ...PaymentMethodVerifiedDomainEventHandler.cs | 5 +- .../Factories/OrderingDbContextFactory.cs | 36 +++ ...2242_Change_Relation_Of_Orders.Designer.cs | 252 ++++++++++++++++++ ...0190808132242_Change_Relation_Of_Orders.cs | 16 ++ .../OrderingContextModelSnapshot.cs | 49 ++-- .../AggregatesModel/OrderAggregate/Address.cs | 2 +- .../OrderEntityTypeConfiguration.cs | 8 +- .../OrderingContext.cs | 2 +- .../Repositories/OrderRepository.cs | 7 +- 10 files changed, 353 insertions(+), 30 deletions(-) create mode 100644 src/Services/Ordering/Ordering.API/Infrastructure/Factories/OrderingDbContextFactory.cs create mode 100644 src/Services/Ordering/Ordering.API/Infrastructure/Migrations/20190808132242_Change_Relation_Of_Orders.Designer.cs create mode 100644 src/Services/Ordering/Ordering.API/Infrastructure/Migrations/20190808132242_Change_Relation_Of_Orders.cs diff --git a/src/Services/Basket/Basket.API/Controllers/BasketController.cs b/src/Services/Basket/Basket.API/Controllers/BasketController.cs index 629369dd13..fca0333012 100644 --- a/src/Services/Basket/Basket.API/Controllers/BasketController.cs +++ b/src/Services/Basket/Basket.API/Controllers/BasketController.cs @@ -63,7 +63,7 @@ public async Task CheckoutAsync([FromBody]BasketCheckout basketChe basketCheckout.RequestId = (Guid.TryParse(requestId, out Guid guid) && guid != Guid.Empty) ? guid : basketCheckout.RequestId; -_logger.LogInformation("----- CheckoutAsync userId: {userId} ", userId); + _logger.LogInformation("----- CheckoutAsync userId: {userId} ", userId); var basket = await _repository.GetBasketAsync(userId); @@ -72,9 +72,9 @@ public async Task CheckoutAsync([FromBody]BasketCheckout basketChe return BadRequest(); } -_logger.LogInformation("----- CheckoutAsync basket: {@basket} ", basket); + _logger.LogInformation("----- CheckoutAsync basket: {@basket} ", basket); -_logger.LogInformation("----- CheckoutAsync user identity: {User} ", string.Join(':', ((ClaimsIdentity)User.Identity).Claims.Select(c => c.Type + " " + c.Value))); + _logger.LogInformation("----- CheckoutAsync user identity: {User} ", string.Join(':', ((ClaimsIdentity)User.Identity).Claims.Select(c => c.Type + " " + c.Value))); var userName = User.FindFirst(x => x.Type == ClaimTypes.Name).Value; diff --git a/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs index bea8eaac54..32b9273683 100644 --- a/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs @@ -26,12 +26,13 @@ public UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler( // then we can update the original Order with the BuyerId and PaymentId (foreign keys) public async Task Handle(BuyerAndPaymentMethodVerifiedDomainEvent buyerPaymentMethodVerifiedEvent, CancellationToken cancellationToken) { + var log = _logger.CreateLogger(); + log.LogInformation("----- Handling BuyerAndPaymentMethodVerifiedDomainEvent - buyerPaymentMethodVerifiedEvent: {@buyerPaymentMethodVerifiedEvent}", buyerPaymentMethodVerifiedEvent); var orderToUpdate = await _orderRepository.GetAsync(buyerPaymentMethodVerifiedEvent.OrderId); orderToUpdate.SetBuyerId(buyerPaymentMethodVerifiedEvent.Buyer.Id); orderToUpdate.SetPaymentId(buyerPaymentMethodVerifiedEvent.Payment.Id); - _logger.CreateLogger() - .LogTrace("Order with Id: {OrderId} has been successfully updated with a payment method {PaymentMethod} ({Id})", + log.LogTrace("Order with Id: {OrderId} has been successfully updated with a payment method {PaymentMethod} ({Id})", buyerPaymentMethodVerifiedEvent.OrderId, nameof(buyerPaymentMethodVerifiedEvent.Payment), buyerPaymentMethodVerifiedEvent.Payment.Id); } } diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/Factories/OrderingDbContextFactory.cs b/src/Services/Ordering/Ordering.API/Infrastructure/Factories/OrderingDbContextFactory.cs new file mode 100644 index 0000000000..a3079b32f1 --- /dev/null +++ b/src/Services/Ordering/Ordering.API/Infrastructure/Factories/OrderingDbContextFactory.cs @@ -0,0 +1,36 @@ +using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Identity; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Compression; +using System.Linq; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore.Design; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; + +namespace Ordering.API.Infrastructure.Factories +{ + public class OrderingDbContextFactory : IDesignTimeDbContextFactory + { + public OrderingContext CreateDbContext(string[] args) + { + var config = new ConfigurationBuilder() + .SetBasePath(Path.Combine(Directory.GetCurrentDirectory())) + .AddJsonFile("appsettings.json") + .AddEnvironmentVariables() + .Build(); + + var optionsBuilder = new DbContextOptionsBuilder(); + + optionsBuilder.UseSqlServer(config["ConnectionString"], sqlServerOptionsAction: o => o.MigrationsAssembly("Ordering.API")); + + return new OrderingContext(optionsBuilder.Options); + } + } +} \ No newline at end of file diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/Migrations/20190808132242_Change_Relation_Of_Orders.Designer.cs b/src/Services/Ordering/Ordering.API/Infrastructure/Migrations/20190808132242_Change_Relation_Of_Orders.Designer.cs new file mode 100644 index 0000000000..c9d5532879 --- /dev/null +++ b/src/Services/Ordering/Ordering.API/Infrastructure/Migrations/20190808132242_Change_Relation_Of_Orders.Designer.cs @@ -0,0 +1,252 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure; + +namespace Ordering.API.Infrastructure.Migrations +{ + [DbContext(typeof(OrderingContext))] + [Migration("20190808132242_Change_Relation_Of_Orders")] + partial class Change_Relation_Of_Orders + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "3.0.0-preview7.19362.6") + .HasAnnotation("Relational:MaxIdentifierLength", 128) + .HasAnnotation("Relational:Sequence:.orderitemseq", "'orderitemseq', '', '1', '10', '', '', 'Int64', 'False'") + .HasAnnotation("Relational:Sequence:ordering.buyerseq", "'buyerseq', 'ordering', '1', '10', '', '', 'Int64', 'False'") + .HasAnnotation("Relational:Sequence:ordering.orderseq", "'orderseq', 'ordering', '1', '10', '', '', 'Int64', 'False'") + .HasAnnotation("Relational:Sequence:ordering.paymentseq", "'paymentseq', 'ordering', '1', '10', '', '', 'Int64', 'False'") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.Buyer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:HiLoSequenceName", "buyerseq") + .HasAnnotation("SqlServer:HiLoSequenceSchema", "ordering") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.SequenceHiLo); + + b.Property("IdentityGuid") + .IsRequired() + .HasMaxLength(200); + + b.Property("Name"); + + b.HasKey("Id"); + + b.HasIndex("IdentityGuid") + .IsUnique(); + + b.ToTable("buyers","ordering"); + }); + + modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.CardType", b => + { + b.Property("Id") + .HasDefaultValue(1); + + b.Property("Name") + .IsRequired() + .HasMaxLength(200); + + b.HasKey("Id"); + + b.ToTable("cardtypes","ordering"); + }); + + modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.PaymentMethod", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:HiLoSequenceName", "paymentseq") + .HasAnnotation("SqlServer:HiLoSequenceSchema", "ordering") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.SequenceHiLo); + + b.Property("Alias") + .IsRequired() + .HasMaxLength(200); + + b.Property("BuyerId"); + + b.Property("CardHolderName") + .IsRequired() + .HasMaxLength(200); + + b.Property("CardNumber") + .IsRequired() + .HasMaxLength(25); + + b.Property("CardTypeId"); + + b.Property("Expiration"); + + b.HasKey("Id"); + + b.HasIndex("BuyerId"); + + b.HasIndex("CardTypeId"); + + b.ToTable("paymentmethods","ordering"); + }); + + modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.Order", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:HiLoSequenceName", "orderseq") + .HasAnnotation("SqlServer:HiLoSequenceSchema", "ordering") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.SequenceHiLo); + + b.Property("BuyerId"); + + b.Property("Description"); + + b.Property("OrderDate"); + + b.Property("OrderStatusId"); + + b.Property("PaymentMethodId"); + + b.HasKey("Id"); + + b.HasIndex("BuyerId"); + + b.HasIndex("OrderStatusId"); + + b.HasIndex("PaymentMethodId"); + + b.ToTable("orders","ordering"); + }); + + modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.OrderItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:HiLoSequenceName", "orderitemseq") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.SequenceHiLo); + + b.Property("Discount"); + + b.Property("OrderId"); + + b.Property("PictureUrl"); + + b.Property("ProductId"); + + b.Property("ProductName") + .IsRequired(); + + b.Property("UnitPrice"); + + b.Property("Units"); + + b.HasKey("Id"); + + b.HasIndex("OrderId"); + + b.ToTable("orderItems","ordering"); + }); + + modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.OrderStatus", b => + { + b.Property("Id") + .HasDefaultValue(1); + + b.Property("Name") + .IsRequired() + .HasMaxLength(200); + + b.HasKey("Id"); + + b.ToTable("orderstatus","ordering"); + }); + + modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency.ClientRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .IsRequired(); + + b.Property("Time"); + + b.HasKey("Id"); + + b.ToTable("requests","ordering"); + }); + + modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.PaymentMethod", b => + { + b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.Buyer", null) + .WithMany("PaymentMethods") + .HasForeignKey("BuyerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.CardType", "CardType") + .WithMany() + .HasForeignKey("CardTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.Order", b => + { + b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.Buyer", null) + .WithMany() + .HasForeignKey("BuyerId"); + + b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.OrderStatus", "OrderStatus") + .WithMany() + .HasForeignKey("OrderStatusId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.PaymentMethod", null) + .WithMany() + .HasForeignKey("PaymentMethodId") + .OnDelete(DeleteBehavior.Restrict); + + b.OwnsOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.Address", "Address", b1 => + { + b1.Property("OrderId"); + + b1.Property("City"); + + b1.Property("Country"); + + b1.Property("State"); + + b1.Property("Street"); + + b1.Property("ZipCode"); + + b1.HasKey("OrderId"); + + b1.ToTable("orders"); + + b1.WithOwner() + .HasForeignKey("OrderId"); + }); + }); + + modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.OrderItem", b => + { + b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.Order", null) + .WithMany("OrderItems") + .HasForeignKey("OrderId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/Migrations/20190808132242_Change_Relation_Of_Orders.cs b/src/Services/Ordering/Ordering.API/Infrastructure/Migrations/20190808132242_Change_Relation_Of_Orders.cs new file mode 100644 index 0000000000..ba01fdcecd --- /dev/null +++ b/src/Services/Ordering/Ordering.API/Infrastructure/Migrations/20190808132242_Change_Relation_Of_Orders.cs @@ -0,0 +1,16 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +namespace Ordering.API.Infrastructure.Migrations +{ + public partial class Change_Relation_Of_Orders : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + + } + } +} diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/Migrations/OrderingContextModelSnapshot.cs b/src/Services/Ordering/Ordering.API/Infrastructure/Migrations/OrderingContextModelSnapshot.cs index fc5e0d1dad..ab7951bc73 100644 --- a/src/Services/Ordering/Ordering.API/Infrastructure/Migrations/OrderingContextModelSnapshot.cs +++ b/src/Services/Ordering/Ordering.API/Infrastructure/Migrations/OrderingContextModelSnapshot.cs @@ -1,12 +1,10 @@ // +using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage; -using Microsoft.EntityFrameworkCore.Storage.Internal; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure; -using System; namespace Ordering.API.Migrations { @@ -17,7 +15,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "2.0.1-rtm-125") + .HasAnnotation("ProductVersion", "3.0.0-preview7.19362.6") + .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("Relational:Sequence:.orderitemseq", "'orderitemseq', '', '1', '10', '', '', 'Int64', 'False'") .HasAnnotation("Relational:Sequence:ordering.buyerseq", "'buyerseq', 'ordering', '1', '10', '', '', 'Int64', 'False'") .HasAnnotation("Relational:Sequence:ordering.orderseq", "'orderseq', 'ordering', '1', '10', '', '', 'Int64', 'False'") @@ -184,29 +183,32 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.PaymentMethod", b => { - b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.Buyer") + b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.Buyer", null) .WithMany("PaymentMethods") .HasForeignKey("BuyerId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.CardType", "CardType") .WithMany() .HasForeignKey("CardTypeId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.Order", b => { - b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.Buyer") + b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.Buyer", null) .WithMany() .HasForeignKey("BuyerId"); b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.OrderStatus", "OrderStatus") .WithMany() .HasForeignKey("OrderStatusId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); - b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.PaymentMethod") + b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate.PaymentMethod", null) .WithMany() .HasForeignKey("PaymentMethodId") .OnDelete(DeleteBehavior.Restrict); @@ -215,21 +217,32 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b1.Property("OrderId"); - b1.ToTable("orders","ordering"); + b1.Property("City"); + + b1.Property("Country"); - b1.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.Order") - .WithOne("Address") - .HasForeignKey("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.Address", "OrderId") - .OnDelete(DeleteBehavior.Cascade); + b1.Property("State"); + + b1.Property("Street"); + + b1.Property("ZipCode"); + + b1.HasKey("OrderId"); + + b1.ToTable("orders"); + + b1.WithOwner() + .HasForeignKey("OrderId"); }); }); modelBuilder.Entity("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.OrderItem", b => { - b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.Order") + b.HasOne("Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate.Order", null) .WithMany("OrderItems") .HasForeignKey("OrderId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); #pragma warning restore 612, 618 } diff --git a/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Address.cs b/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Address.cs index 9576940df3..b552f55460 100644 --- a/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Address.cs +++ b/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Address.cs @@ -12,7 +12,7 @@ public class Address : ValueObject public String Country { get; private set; } public String ZipCode { get; private set; } - private Address() { } + public Address() { } public Address(string street, string city, string state, string country, string zipcode) { diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs index d4eb1fb9a6..c4c7fce38b 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs @@ -21,7 +21,11 @@ public void Configure(EntityTypeBuilder orderConfiguration) .ForSqlServerUseSequenceHiLo("orderseq", OrderingContext.DEFAULT_SCHEMA); //Address value object persisted as owned entity type supported since EF Core 2.0 - orderConfiguration.OwnsOne(o => o.Address); + orderConfiguration + .OwnsOne(o => o.Address, a => + { + a.WithOwner(); + }); orderConfiguration.Property("OrderDate").IsRequired(); orderConfiguration.Property("BuyerId").IsRequired(false); @@ -30,7 +34,7 @@ public void Configure(EntityTypeBuilder orderConfiguration) orderConfiguration.Property("Description").IsRequired(false); var navigation = orderConfiguration.Metadata.FindNavigation(nameof(Order.OrderItems)); - + // DDD Patterns comment: //Set as field (New since EF 1.1) to access the OrderItem collection property through its field navigation.SetPropertyAccessMode(PropertyAccessMode.Field); diff --git a/src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs b/src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs index 40fd9be006..d7117ba0d7 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs @@ -27,7 +27,7 @@ public class OrderingContext : DbContext, IUnitOfWork private readonly IMediator _mediator; private IDbContextTransaction _currentTransaction; - private OrderingContext(DbContextOptions options) : base(options) { } + public OrderingContext(DbContextOptions options) : base(options) { } public IDbContextTransaction GetCurrentTransaction() => _currentTransaction; diff --git a/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs b/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs index 4aaf738afe..1047d6c7e1 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs @@ -33,15 +33,16 @@ public Order Add(Order order) public async Task GetAsync(int orderId) { - var order = await _context.Orders.FindAsync(orderId); + var order = await _context + .Orders + .Include(x => x.Address) + .FirstOrDefaultAsync(o => o.Id == orderId); if (order != null) { await _context.Entry(order) .Collection(i => i.OrderItems).LoadAsync(); await _context.Entry(order) .Reference(i => i.OrderStatus).LoadAsync(); - await _context.Entry(order) - .Reference(i => i.Address).LoadAsync(); } return order; From fe0fd36e0fd8bdf2fddd4245bce4ef0f8c9d6774 Mon Sep 17 00:00:00 2001 From: Erik Pique Date: Mon, 19 Aug 2019 09:24:58 +0200 Subject: [PATCH 060/149] add grpc basket --- docker-compose.override.yml | 6 + .../Controllers/BasketController.cs | 7 +- .../aggregator/Controllers/OrderController.cs | 2 +- .../Mobile.Bff.Shopping/aggregator/Dockerfile | 4 +- .../Filters/AuthorizeCheckOperationFilter.cs | 19 +-- ...ttpClientAuthorizationDelegatingHandler.cs | 13 +- .../Mobile.Shopping.HttpAggregator.csproj | 39 ++---- .../Mobile.Bff.Shopping/aggregator/Program.cs | 41 +++++++ .../aggregator/Services/BasketService.cs | 113 ++++++++++++++++-- .../aggregator/Services/CatalogService.cs | 31 +++-- .../aggregator/Services/IBasketService.cs | 2 +- .../Mobile.Bff.Shopping/aggregator/Startup.cs | 79 ++++++------ .../aggregator/appsettings.json | 5 + .../aggregator/appsettings.localhost.json | 15 +++ .../Basket/Basket.API/Basket.API.csproj | 9 ++ .../Basket/Basket.API/Grpc/BasketService.cs | 100 ++++++++++++++++ .../Repositories/RedisBasketRepository.cs | 2 +- src/Services/Basket/Basket.API/Program.cs | 27 ++++- .../Basket/Basket.API/Proto/basket.proto | 38 ++++++ src/Services/Basket/Basket.API/Startup.cs | 42 +++++-- .../Basket/Basket.API/appsettings.json | 5 + src/_build/dependencies.props | 1 + 22 files changed, 476 insertions(+), 124 deletions(-) create mode 100644 src/Services/Basket/Basket.API/Grpc/BasketService.cs create mode 100644 src/Services/Basket/Basket.API/Proto/basket.proto diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 60f2efb452..97379a4b09 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -219,6 +219,7 @@ services: - MarketingUrlHC=http://marketing.api/hc - PaymentUrlHC=http://payment.api/hc - LocationUrlHC=http://locations.api/hc + - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 ports: - "5200:80" volumes: @@ -235,6 +236,7 @@ services: - MarketingUrlHC=http://marketing.api/hc - PaymentUrlHC=http://payment.api/hc - LocationUrlHC=http://locations.api/hc + - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 ports: - "5201:80" volumes: @@ -251,6 +253,7 @@ services: - MarketingUrlHC=http://marketing.api/hc - PaymentUrlHC=http://payment.api/hc - LocationUrlHC=http://locations.api/hc + - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 ports: - "5202:80" volumes: @@ -267,6 +270,7 @@ services: - MarketingUrlHC=http://marketing.api/hc - PaymentUrlHC=http://payment.api/hc - LocationUrlHC=http://locations.api/hc + - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 ports: - "5203:80" volumes: @@ -286,6 +290,7 @@ services: - MarketingUrlHC=http://marketing.api/hc - PaymentUrlHC=http://payment.api/hc - LocationUrlHC=http://locations.api/hc + - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 ports: - "5120:80" @@ -303,6 +308,7 @@ services: - MarketingUrlHC=http://marketing.api/hc - PaymentUrlHC=http://payment.api/hc - LocationUrlHC=http://locations.api/hc + - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 ports: - "5121:80" diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Controllers/BasketController.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Controllers/BasketController.cs index a2c0d1fea1..65b07239a0 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Controllers/BasketController.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Controllers/BasketController.cs @@ -3,7 +3,6 @@ using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Services; using System; -using System.Collections.Generic; using System.Linq; using System.Net; using System.Threading.Tasks; @@ -36,7 +35,7 @@ public async Task> UpdateAllBasketAsync([FromBody] Upda } // Retrieve the current basket - var basket = await _basket.GetByIdAsync(data.BuyerId) ?? new BasketData(data.BuyerId); + var basket = await _basket.GetById(data.BuyerId) ?? new BasketData(data.BuyerId); var catalogItems = await _catalog.GetCatalogItemsAsync(data.Items.Select(x => x.ProductId)); @@ -76,7 +75,7 @@ public async Task> UpdateQuantitiesAsync([FromBody] Upd } // Retrieve the current basket - var currentBasket = await _basket.GetByIdAsync(data.BasketId); + var currentBasket = await _basket.GetById(data.BasketId); if (currentBasket == null) { return BadRequest($"Basket with id {data.BasketId} not found."); @@ -118,7 +117,7 @@ public async Task AddBasketItemAsync([FromBody] AddBasketItemReque //item.PictureUri = // Step 2: Get current basket status - var currentBasket = (await _basket.GetByIdAsync(data.BasketId)) ?? new BasketData(data.BasketId); + var currentBasket = (await _basket.GetById(data.BasketId)) ?? new BasketData(data.BasketId); // Step 3: Merge current status with new product currentBasket.Items.Add(new BasketDataItem() { diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Controllers/OrderController.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Controllers/OrderController.cs index a4b33c6cb8..ac359b4b58 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Controllers/OrderController.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Controllers/OrderController.cs @@ -32,7 +32,7 @@ public async Task> GetOrderDraftAsync(string basketId) return BadRequest("Need a valid basketid"); } // Get the basket data and build a order draft based on it - var basket = await _basketService.GetByIdAsync(basketId); + var basket = await _basketService.GetById(basketId); if (basket == null) { diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile index 9b03eccbda..3d89c9b272 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs index 21997360bd..3b8298bfe0 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs @@ -1,7 +1,7 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Filters { using Microsoft.AspNetCore.Authorization; - using Swashbuckle.AspNetCore.Swagger; + using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; using System.Collections.Generic; using System.Linq; @@ -10,7 +10,7 @@ namespace Basket.API.Infrastructure.Filters { public class AuthorizeCheckOperationFilter : IOperationFilter { - public void Apply(Operation operation, OperationFilterContext context) + public void Apply(OpenApiOperation operation, OperationFilterContext context) { // Check for authorize attribute var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() || @@ -18,14 +18,19 @@ public void Apply(Operation operation, OperationFilterContext context) if (!hasAuthorize) return; - operation.Responses.TryAdd("401", new Response { Description = "Unauthorized" }); - operation.Responses.TryAdd("403", new Response { Description = "Forbidden" }); + operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" }); + operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" }); - operation.Security = new List>> + var oAuthScheme = new OpenApiSecurityScheme { - new Dictionary> + Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } + }; + + operation.Security = new List + { + new OpenApiSecurityRequirement { - { "oauth2", new [] { "Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator" } } + [ oAuthScheme ] = new [] { "Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator" } } }; } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Infrastructure/HttpClientAuthorizationDelegatingHandler.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Infrastructure/HttpClientAuthorizationDelegatingHandler.cs index 967a8c8260..4562139df8 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Infrastructure/HttpClientAuthorizationDelegatingHandler.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Infrastructure/HttpClientAuthorizationDelegatingHandler.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Logging; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; @@ -8,18 +9,22 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Infrastructure { - public class HttpClientAuthorizationDelegatingHandler - : DelegatingHandler + public class HttpClientAuthorizationDelegatingHandler : DelegatingHandler { private readonly IHttpContextAccessor _httpContextAccesor; + private readonly ILogger _logger; - public HttpClientAuthorizationDelegatingHandler(IHttpContextAccessor httpContextAccesor) + public HttpClientAuthorizationDelegatingHandler(IHttpContextAccessor httpContextAccesor, ILogger logger) { _httpContextAccesor = httpContextAccesor; + _logger = logger; } protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { + request.Version = new System.Version(2, 0); + request.Method = HttpMethod.Get; + var authorizationHeader = _httpContextAccesor.HttpContext .Request.Headers["Authorization"]; @@ -35,6 +40,8 @@ protected override async Task SendAsync(HttpRequestMessage request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token); } + _logger.LogInformation("@@@@@@@@@@@@@@@@@ {@request}", request); + return await base.SendAsync(request, cancellationToken); } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj index 57efd4a9fa..ca8768a666 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj @@ -1,4 +1,4 @@ - - - - - netcoreapp2.2 - Mobile.Shopping.HttpAggregator - Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator - ..\..\..\docker-compose.dcproj - $(LangVersion) - - + - - - - - - - - - - - - - - - - - + + diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Program.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Program.cs index 5d1840192f..0dc91cbc01 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Program.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Program.cs @@ -1,13 +1,21 @@ using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Server.Kestrel.Core; +using Microsoft.Extensions.Configuration; using Serilog; +using System.IO; +using System.Net; namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator { public class Program { + private static IConfiguration _configuration; + public static void Main(string[] args) { + _configuration = GetConfiguration(); + BuildWebHost(args).Run(); } @@ -24,6 +32,20 @@ public static IWebHost BuildWebHost(string[] args) => ReloadOnChange = false }); }) + .ConfigureKestrel(options => + { + var ports = GetDefinedPorts(_configuration); + + options.Listen(IPAddress.Any, ports.httpPort, listenOptions => + { + listenOptions.Protocols = HttpProtocols.Http1AndHttp2; + }); + + options.Listen(IPAddress.Any, ports.grpcPort, listenOptions => + { + listenOptions.Protocols = HttpProtocols.Http2; + }); + }) .UseStartup() .UseSerilog((builderContext, config) => { @@ -33,5 +55,24 @@ public static IWebHost BuildWebHost(string[] args) => .WriteTo.Console(); }) .Build(); + + private static IConfiguration GetConfiguration() + { + var builder = new ConfigurationBuilder() + .SetBasePath(Directory.GetCurrentDirectory()) + .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) + .AddEnvironmentVariables(); + + var config = builder.Build(); + + return builder.Build(); + } + + private static (int httpPort, int grpcPort) GetDefinedPorts(IConfiguration config) + { + var grpcPort = config.GetValue("GRPC_PORT", 5001); + var port = config.GetValue("PORT", 80); + return (port, grpcPort); + } } } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs index 5186fe361f..657e3cd542 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs @@ -1,41 +1,130 @@ -using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Config; +using grpc; +using Grpc.Net.Client; +using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Config; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Newtonsoft.Json; +using System; +using System.Linq; using System.Net.Http; using System.Threading.Tasks; +using static grpc.Basket; namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Services { public class BasketService : IBasketService { - private readonly HttpClient _httpClient; - private readonly ILogger _logger; private readonly UrlsConfig _urls; + private readonly ILogger _logger; - public BasketService(HttpClient httpClient, ILogger logger, IOptions config) + public BasketService(HttpClient httpClient, IOptions config, ILogger logger) { _httpClient = httpClient; - _logger = logger; _urls = config.Value; + _logger = logger; } - public async Task GetByIdAsync(string id) + public async Task GetById(string id) { - var data = await _httpClient.GetStringAsync(_urls.Basket + UrlsConfig.BasketOperations.GetItemById(id)); + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ GetById @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Http2UnencryptedSupport disable @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + + _httpClient.BaseAddress = new Uri("http://localhost:5001"); + + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ {_httpClient.BaseAddress} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", _httpClient.BaseAddress); + + var client = GrpcClient.Create(_httpClient); + + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ client create @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + + var response = await client.GetBasketByIdAsync(new BasketRequest { Id = id }); + + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ call grpc server @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + + _logger.LogInformation("############## DATA: {@a}", response.Buyerid); + + //if (streaming.IsCompleted) + //{ + // _logger.LogInformation("############## DATA: {@a}", streaming.GetResult()); + //} + //var streaming = client.GetBasketById(new BasketRequest { Id = id }); - var basket = !string.IsNullOrEmpty(data) ? JsonConvert.DeserializeObject(data) : null; - return basket; + //var status = streaming.GetStatus(); + + //if (status.StatusCode == Grpc.Core.StatusCode.OK) + //{ + // return null; + //} + + return null; + //return MapToBasketData(response.ResponseStream); } public async Task UpdateAsync(BasketData currentBasket) { - var basketContent = new StringContent(JsonConvert.SerializeObject(currentBasket), System.Text.Encoding.UTF8, "application/json"); + _httpClient.BaseAddress = new Uri(_urls.Basket + UrlsConfig.BasketOperations.UpdateBasket()); + + var client = GrpcClient.Create(_httpClient); + var request = MapToCustomerBasketRequest(currentBasket); + + await client.UpdateBasketAsync(request); + } + + private BasketData MapToBasketData(CustomerBasketResponse customerBasketRequest) + { + if (customerBasketRequest == null) + { + return null; + } + + var map = new BasketData + { + BuyerId = customerBasketRequest.Buyerid + }; + + customerBasketRequest.Items.ToList().ForEach(item => map.Items.Add(new BasketDataItem + { + Id = item.Id, + OldUnitPrice = (decimal)item.Oldunitprice, + PictureUrl = item.Pictureurl, + ProductId = item.Productid, + ProductName = item.Productname, + Quantity = item.Quantity, + UnitPrice = (decimal)item.Unitprice + })); + + return map; + } + + private CustomerBasketRequest MapToCustomerBasketRequest(BasketData basketData) + { + if (basketData == null) + { + return null; + } + + var map = new CustomerBasketRequest + { + Buyerid = basketData.BuyerId + }; + + basketData.Items.ToList().ForEach(item => map.Items.Add(new BasketItemResponse + { + Id = item.Id, + Oldunitprice = (double)item.OldUnitPrice, + Pictureurl = item.PictureUrl, + Productid = item.ProductId, + Productname = item.ProductName, + Quantity = item.Quantity, + Unitprice = (double)item.UnitPrice + })); - var data = await _httpClient.PostAsync(_urls.Basket + UrlsConfig.BasketOperations.UpdateBasket(), basketContent); + return map; } } } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/CatalogService.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/CatalogService.cs index 69bca2b398..fbcc8349b7 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/CatalogService.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/CatalogService.cs @@ -1,33 +1,37 @@ -using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Config; +using CatalogApi; +using Grpc.Net.Client; +using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Config; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models; -using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Newtonsoft.Json; +using System; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; +using static CatalogApi.Catalog; namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Services { public class CatalogService : ICatalogService { private readonly HttpClient _httpClient; - private readonly ILogger _logger; private readonly UrlsConfig _urls; - public CatalogService(HttpClient httpClient, ILogger logger, IOptions config) + public CatalogService(HttpClient httpClient, IOptions config) { _httpClient = httpClient; - _logger = logger; _urls = config.Value; } public async Task GetCatalogItemAsync(int id) { - var stringContent = await _httpClient.GetStringAsync(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemById(id)); - var catalogItem = JsonConvert.DeserializeObject(stringContent); + _httpClient.BaseAddress = new Uri(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemById(id)); - return catalogItem; + var client = GrpcClient.Create(_httpClient); + var request = new CatalogItemRequest { Id = id }; + var response = await client.GetItemByIdAsync(request); + + return MapToCatalogItemResponse(response); } public async Task> GetCatalogItemsAsync(IEnumerable ids) @@ -37,5 +41,16 @@ public async Task> GetCatalogItemsAsync(IEnumerable GetByIdAsync(string id); + Task GetById(string id); Task UpdateAsync(BasketData currentBasket); diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index c60cb787a9..2a9d0b341b 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -5,7 +5,6 @@ using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Config; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Filters.Basket.API.Infrastructure.Filters; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Infrastructure; @@ -14,9 +13,9 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; +using Microsoft.OpenApi.Models; using Polly; using Polly.Extensions.Http; -using Swashbuckle.AspNetCore.Swagger; using System; using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; @@ -63,19 +62,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UsePathBase(pathBase); } - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - - app.UseCors("CorsPolicy"); - if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); @@ -86,15 +72,31 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseHsts(); } - app.UseAuthentication(); + app.UseCors("CorsPolicy"); app.UseHttpsRedirection(); - app.UseMvc(); + app.UseRouting(); + app.UseAuthentication(); + app.UseAuthorization(); + app.UseEndpoints(endpoints => + { + endpoints.MapDefaultControllerRoute(); + endpoints.MapControllers(); + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions + { + Predicate = r => r.Name.Contains("self") + }); + }); app.UseSwagger().UseSwaggerUI(c => { c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Purchase BFF V1"); - c.OAuthClientId("Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregatorwaggerui"); + c.OAuthClientId("mobileshoppingaggswaggerui"); c.OAuthClientSecret(string.Empty); c.OAuthRealm(string.Empty); c.OAuthAppName("Purchase BFF Swagger UI"); @@ -109,29 +111,32 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, services.AddOptions(); services.Configure(configuration.GetSection("urls")); - services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); + services.AddControllers() + .AddNewtonsoftJson(); services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info + options.SwaggerDoc("v1", new OpenApiInfo { Title = "Shopping Aggregator for Mobile Clients", Version = "v1", - Description = "Shopping Aggregator for Mobile Clients", - TermsOfService = "Terms Of Service" + Description = "Shopping Aggregator for Mobile Clients" }); - - options.AddSecurityDefinition("oauth2", new OAuth2Scheme + options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { - Type = "oauth2", - Flow = "implicit", - AuthorizationUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize", - TokenUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/token", - Scopes = new Dictionary() + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows() { - { "mobileshoppingagg", "Shopping Aggregator for Mobile Clients" } + Implicit = new OpenApiOAuthFlow() + { + AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), + Scopes = new Dictionary() + { + { "mobileshoppingagg", "Shopping Aggregator for Mobile Clients" } + } + } } }); @@ -152,7 +157,8 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, } public static IServiceCollection AddCustomAuthentication(this IServiceCollection services, IConfiguration configuration) { - JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); + JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub"); + var identityUrl = configuration.GetValue("urls:identity"); services.AddAuthentication(options => @@ -166,15 +172,6 @@ public static IServiceCollection AddCustomAuthentication(this IServiceCollection options.Authority = identityUrl; options.RequireHttpsMetadata = false; options.Audience = "mobileshoppingagg"; - options.Events = new JwtBearerEvents() - { - OnAuthenticationFailed = async ctx => - { - }, - OnTokenValidated = async ctx => - { - } - }; }); return services; diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.json b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.json index 26bb0ac7ac..95b8bad4c8 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.json +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.json @@ -1,4 +1,9 @@ { + "Kestrel": { + "EndpointDefaults": { + "Protocols": "Http2" + } + }, "Logging": { "IncludeScopes": false, "Debug": { diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.localhost.json b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.localhost.json index 57b5e894dd..91bbf5f87d 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.localhost.json +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.localhost.json @@ -4,5 +4,20 @@ "catalog": "http://localhost:55101", "orders": "http://localhost:55102", "identity": "http://localhost:55105" + }, + "IdentityUrlExternal": "http://localhost:5105", + "IdentityUrl": "http://localhost:5105", + "Logging": { + "IncludeScopes": false, + "Debug": { + "LogLevel": { + "Default": "Debug" + } + }, + "Console": { + "LogLevel": { + "Default": "Debug" + } + } } } diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index 5281f91075..78cd14b2a1 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -21,6 +21,9 @@ + + + @@ -39,6 +42,12 @@ + + + + + + diff --git a/src/Services/Basket/Basket.API/Grpc/BasketService.cs b/src/Services/Basket/Basket.API/Grpc/BasketService.cs new file mode 100644 index 0000000000..f6bd42ce76 --- /dev/null +++ b/src/Services/Basket/Basket.API/Grpc/BasketService.cs @@ -0,0 +1,100 @@ +using Grpc.Core; +using Microsoft.eShopOnContainers.Services.Basket.API.Model; +using Microsoft.Extensions.Logging; +using System.Linq; +using System.Threading.Tasks; + +namespace grpc +{ + public class BasketService : Basket.BasketBase + { + private readonly IBasketRepository _repository; + private readonly ILogger _logger; + + public BasketService(IBasketRepository repository, ILogger logger) + { + _repository = repository; + _logger = logger; + } + + public override async Task GetBasketById(BasketRequest request, ServerCallContext context) + { + _logger.LogInformation($"Begin grpc call from method {context.Method} for basket id {request.Id}"); + + var data = await _repository.GetBasketAsync(request.Id); + + if (data != null) + { + context.Status = new Status(StatusCode.OK, $"Basket with id {request.Id} do exist"); + + return MapToCustomerBasketResponse(data); + } + else + { + context.Status = new Status(StatusCode.NotFound, $"Basket with id {request.Id} do not exist"); + } + + return null; + } + + public override async Task UpdateBasket(CustomerBasketRequest request, ServerCallContext context) + { + _logger.LogInformation($"Begin grpc call BasketService.UpdateBasketAsync for buyer id {request.Buyerid}"); + + var customerBasket = MapToCustomerBasket(request); + + var response = await _repository.UpdateBasketAsync(customerBasket); + + if (response != null) + { + return MapToCustomerBasketResponse(response); + } + + context.Status = new Status(StatusCode.NotFound, $"Basket with buyer id {request.Buyerid} do not exist"); + + return null; + } + + private CustomerBasketResponse MapToCustomerBasketResponse(CustomerBasket customerBasket) + { + var response = new CustomerBasketResponse + { + Buyerid = customerBasket.BuyerId + }; + + customerBasket.Items.ForEach(item => response.Items.Add(new BasketItemResponse + { + Id = item.Id, + Oldunitprice = (double)item.OldUnitPrice, + Pictureurl = item.PictureUrl, + Productid = item.ProductId, + Productname = item.ProductName, + Quantity = item.Quantity, + Unitprice = (double)item.UnitPrice + })); + + return response; + } + + private CustomerBasket MapToCustomerBasket(CustomerBasketRequest customerBasketRequest) + { + var response = new CustomerBasket + { + BuyerId = customerBasketRequest.Buyerid + }; + + customerBasketRequest.Items.ToList().ForEach(item => response.Items.Add(new BasketItem + { + Id = item.Id, + OldUnitPrice = (decimal)item.Oldunitprice, + PictureUrl = item.Pictureurl, + ProductId = item.Productid, + ProductName = item.Productname, + Quantity = item.Quantity, + UnitPrice = (decimal)item.Unitprice + })); + + return response; + } + } +} diff --git a/src/Services/Basket/Basket.API/Infrastructure/Repositories/RedisBasketRepository.cs b/src/Services/Basket/Basket.API/Infrastructure/Repositories/RedisBasketRepository.cs index 6653f5ed1d..93adcc0236 100644 --- a/src/Services/Basket/Basket.API/Infrastructure/Repositories/RedisBasketRepository.cs +++ b/src/Services/Basket/Basket.API/Infrastructure/Repositories/RedisBasketRepository.cs @@ -28,7 +28,7 @@ public async Task DeleteBasketAsync(string id) public IEnumerable GetUsers() { - var server = GetServer(); + var server = GetServer(); var data = server.Keys(); return data?.Select(k => k.ToString()); diff --git a/src/Services/Basket/Basket.API/Program.cs b/src/Services/Basket/Basket.API/Program.cs index 40cc0eebce..caf3d581b0 100644 --- a/src/Services/Basket/Basket.API/Program.cs +++ b/src/Services/Basket/Basket.API/Program.cs @@ -2,11 +2,12 @@ using Microsoft.AspNetCore; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Logging; using Serilog; using System; using System.IO; +using System.Net; namespace Microsoft.eShopOnContainers.Services.Basket.API { @@ -45,8 +46,21 @@ public static int Main(string[] args) private static IWebHost BuildWebHost(IConfiguration configuration, string[] args) => WebHost.CreateDefaultBuilder(args) .CaptureStartupErrors(false) - .UseFailing(options => - options.ConfigPath = "/Failing") + .ConfigureKestrel(options => + { + var ports = GetDefinedPorts(configuration); + + options.Listen(IPAddress.Any, ports.httpPort, listenOptions => + { + listenOptions.Protocols = HttpProtocols.Http1AndHttp2; + }); + + options.Listen(IPAddress.Any, ports.grpcPort, listenOptions => + { + listenOptions.Protocols = HttpProtocols.Http2; + }); + }) + .UseFailing(options => options.ConfigPath = "/Failing") .UseStartup() .UseApplicationInsights() .UseContentRoot(Directory.GetCurrentDirectory()) @@ -88,5 +102,12 @@ private static IConfiguration GetConfiguration() return builder.Build(); } + + private static (int httpPort, int grpcPort) GetDefinedPorts(IConfiguration config) + { + var grpcPort = config.GetValue("GRPC_PORT", 5001); + var port = config.GetValue("PORT", 80); + return (port, grpcPort); + } } } diff --git a/src/Services/Basket/Basket.API/Proto/basket.proto b/src/Services/Basket/Basket.API/Proto/basket.proto new file mode 100644 index 0000000000..9b69effada --- /dev/null +++ b/src/Services/Basket/Basket.API/Proto/basket.proto @@ -0,0 +1,38 @@ +syntax = "proto3"; + +option csharp_namespace = "grpc"; + +package BasketApi; + +service Basket { + rpc GetBasketById(BasketRequest) returns (CustomerBasketResponse) { + option (google.api.http) = { + get: "/GetBasketById" + }; + } + rpc UpdateBasket(CustomerBasketRequest) returns (CustomerBasketResponse) {} +} + +message BasketRequest { + string id = 1; +} + +message CustomerBasketRequest { + string buyerid = 1; + repeated BasketItemResponse items = 2; +} + +message CustomerBasketResponse { + string buyerid = 1; + repeated BasketItemResponse items = 2; +} + +message BasketItemResponse { + string id = 1; + string productid = 2; + string productname = 3; + double unitprice = 4; + double oldunitprice = 5; + int32 quantity = 6; + string pictureurl = 7; +} diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index 2533f31e50..0176ea9362 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -4,6 +4,7 @@ using Basket.API.Infrastructure.Middlewares; using Basket.API.IntegrationEvents.EventHandling; using Basket.API.IntegrationEvents.Events; +using grpc; using HealthChecks.UI.Client; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; @@ -32,6 +33,7 @@ using System; using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; +using System.IO; namespace Microsoft.eShopOnContainers.Services.Basket.API { @@ -47,6 +49,11 @@ public Startup(IConfiguration configuration) // This method gets called by the runtime. Use this method to add services to the container. public virtual IServiceProvider ConfigureServices(IServiceCollection services) { + services.AddGrpc(options => + { + options.EnableDetailedErrors = true; + }); + RegisterAppInsights(services); services.AddControllers(options => @@ -84,10 +91,9 @@ public virtual IServiceProvider ConfigureServices(IServiceCollection services) } } }); - + options.OperationFilter(); }); - ConfigureAuthService(services); @@ -192,6 +198,14 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF app.UsePathBase(pathBase); } + app.UseSwagger() + .UseSwaggerUI(setup => + { + setup.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Basket.API V1"); + setup.OAuthClientId("basketswaggerui"); + setup.OAuthAppName("Basket Swagger UI"); + }); + app.UseRouting(); ConfigureAuth(app); @@ -202,6 +216,21 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF { endpoints.MapDefaultControllerRoute(); endpoints.MapControllers(); + endpoints.MapGet("/_proto/", async ctx => + { + ctx.Response.ContentType = "text/plain"; + using var fs = new FileStream(Path.Combine(env.ContentRootPath, "Proto", "basket.proto"), FileMode.Open, FileAccess.Read); + using var sr = new StreamReader(fs); + while (!sr.EndOfStream) + { + var line = await sr.ReadLineAsync(); + if (line != "/* >>" || line != "<< */") + { + await ctx.Response.WriteAsync(line); + } + } + }); + endpoints.MapGrpcService(); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -212,15 +241,6 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF Predicate = r => r.Name.Contains("self") }); }); - - app.UseSwagger() - .UseSwaggerUI(setup => - { - setup.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Basket.API V1"); - setup.OAuthClientId("basketswaggerui"); - setup.OAuthAppName("Basket Swagger UI"); - }); - ConfigureEventBus(app); } diff --git a/src/Services/Basket/Basket.API/appsettings.json b/src/Services/Basket/Basket.API/appsettings.json index 37d5b08d6d..a5b723116b 100644 --- a/src/Services/Basket/Basket.API/appsettings.json +++ b/src/Services/Basket/Basket.API/appsettings.json @@ -11,6 +11,11 @@ } } }, + "Kestrel": { + "EndpointDefaults": { + "Protocols": "Http2" + } + }, "SubscriptionClientName": "Basket", "ApplicationInsights": { "InstrumentationKey": "" diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 44651cb53f..e7941d51b8 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -19,6 +19,7 @@ 0.1.22-pre1 3.9.0-rc1 1.22.0 + 0.1.22-pre2 3.0.0-preview7.19362.4 1.7.9 From e58429ac2a60950044bdfd1834f5d18941b7d5f7 Mon Sep 17 00:00:00 2001 From: ericuss Date: Mon, 26 Aug 2019 13:57:43 +0200 Subject: [PATCH 061/149] first approach --- docker-compose.override.yml | 1 + eShopOnContainers.sln | 107 +++++++++--------- .../Clients.Grpc.Caller.csproj | 16 +++ src/Clients/Clients.Grpc.Caller/Program.cs | 37 ++++++ .../Clients.Grpc.Caller/Protos/basket.proto | 34 ++++++ .../Basket/Basket.API/Basket.API.csproj | 6 +- .../Basket/Basket.API/Grpc/BasketService.cs | 89 +++++++++------ src/Services/Basket/Basket.API/Program.cs | 2 +- .../Basket/Basket.API/Proto/basket.proto | 10 +- src/Services/Basket/Basket.API/Startup.cs | 103 ++++++++++------- .../TestHttpResponseTrailersFeature.cs | 10 ++ src/_build/dependencies.props | 6 +- 12 files changed, 284 insertions(+), 137 deletions(-) create mode 100644 src/Clients/Clients.Grpc.Caller/Clients.Grpc.Caller.csproj create mode 100644 src/Clients/Clients.Grpc.Caller/Program.cs create mode 100644 src/Clients/Clients.Grpc.Caller/Protos/basket.proto create mode 100644 src/Services/Basket/Basket.API/TestHttpResponseTrailersFeature.cs diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 97379a4b09..4428a93305 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -72,6 +72,7 @@ services: ports: - "5103:80" + - "5580:5001" catalog.api: environment: diff --git a/eShopOnContainers.sln b/eShopOnContainers.sln index 2323318540..658eb26d7f 100644 --- a/eShopOnContainers.sln +++ b/eShopOnContainers.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2024 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29123.88 MinimumVisualStudioVersion = 10.0.40219.1 Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{FEA0C318-FFED-4D39-8781-265718CA43DD}" EndProject @@ -163,6 +163,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Devspaces.Support", "Devspa EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Devspaces.Support", "src\BuildingBlocks\Devspaces.Support\Devspaces.Support.csproj", "{CB6D01A4-E597-4348-9570-FC8DB03B4267}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Clients", "Clients", "{8449B293-5949-4832-8612-6BCE2962BCB1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Clients.Grpc.Caller", "src\Clients\Clients.Grpc.Caller\Clients.Grpc.Caller.csproj", "{7C8FA264-ED49-4ACA-9629-FCE5462B30AB}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Ad-Hoc|Any CPU = Ad-Hoc|Any CPU @@ -1369,54 +1373,6 @@ Global {A7337243-33B8-463A-87AD-944B75EFD820}.Release|x86.ActiveCfg = Release|x86 {A7337243-33B8-463A-87AD-944B75EFD820}.Release|x86.Build.0 = Release|x86 {A7337243-33B8-463A-87AD-944B75EFD820}.Release|x86.Deploy.0 = Release|x86 - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.AppStore|ARM.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.AppStore|iPhone.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.AppStore|x64.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.AppStore|x64.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.AppStore|x86.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.AppStore|x86.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Debug|Any CPU.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Debug|ARM.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Debug|ARM.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Debug|iPhone.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Debug|x64.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Debug|x64.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Debug|x86.ActiveCfg = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Debug|x86.Build.0 = Debug|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Release|Any CPU.ActiveCfg = Release|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Release|Any CPU.Build.0 = Release|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Release|ARM.ActiveCfg = Release|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Release|ARM.Build.0 = Release|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Release|iPhone.ActiveCfg = Release|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Release|iPhone.Build.0 = Release|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Release|x64.ActiveCfg = Release|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Release|x64.Build.0 = Release|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Release|x86.ActiveCfg = Release|Any CPU - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480}.Release|x86.Build.0 = Release|Any CPU {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU @@ -2089,6 +2045,54 @@ Global {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|x64.Build.0 = Release|Any CPU {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|x86.ActiveCfg = Release|Any CPU {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|x86.Build.0 = Release|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|ARM.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|iPhone.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|x64.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|x64.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|x86.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|x86.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|ARM.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|ARM.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|iPhone.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|x64.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|x64.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|x86.ActiveCfg = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|x86.Build.0 = Debug|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|Any CPU.Build.0 = Release|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|ARM.ActiveCfg = Release|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|ARM.Build.0 = Release|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|iPhone.ActiveCfg = Release|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|iPhone.Build.0 = Release|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|x64.ActiveCfg = Release|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|x64.Build.0 = Release|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|x86.ActiveCfg = Release|Any CPU + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -2136,7 +2140,6 @@ Global {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1} = {0AAED9FF-3260-43BB-B586-9AAF1E010A90} {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3} = {0AAED9FF-3260-43BB-B586-9AAF1E010A90} {A7337243-33B8-463A-87AD-944B75EFD820} = {0AAED9FF-3260-43BB-B586-9AAF1E010A90} - {16CDE5D2-2DDE-4AF2-B902-AD9CC42DE480} = {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} {9F00E62F-E180-4A9C-8794-98A72AFAC2DB} = {7BA332A2-189D-4D03-9935-FDFF81C42496} {63417272-1E6A-406A-AD11-C738558D89C0} = {7BA332A2-189D-4D03-9935-FDFF81C42496} {56E0E455-731E-41CB-AF46-C1A70F8A140B} = {2F0DEF71-84AC-4212-86D4-E36E8896BDBF} @@ -2163,6 +2166,8 @@ Global {E39BD762-BC86-459D-B818-B6BF2D9F1352} = {424BC53E-17EA-4E12-BC07-64BAA927ABCB} {ABBA561B-499B-48C0-8299-85D41E6E9E98} = {DB0EFB20-B024-4E5E-A75C-52143C131D25} {CB6D01A4-E597-4348-9570-FC8DB03B4267} = {ABBA561B-499B-48C0-8299-85D41E6E9E98} + {8449B293-5949-4832-8612-6BCE2962BCB1} = {932D8224-11F6-4D07-B109-DA28AD288A63} + {7C8FA264-ED49-4ACA-9629-FCE5462B30AB} = {8449B293-5949-4832-8612-6BCE2962BCB1} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {25728519-5F0F-4973-8A64-0A81EB4EA8D9} diff --git a/src/Clients/Clients.Grpc.Caller/Clients.Grpc.Caller.csproj b/src/Clients/Clients.Grpc.Caller/Clients.Grpc.Caller.csproj new file mode 100644 index 0000000000..379eb2de1d --- /dev/null +++ b/src/Clients/Clients.Grpc.Caller/Clients.Grpc.Caller.csproj @@ -0,0 +1,16 @@ + + + + Exe + netcoreapp3.0 + + + + + + + + + + + diff --git a/src/Clients/Clients.Grpc.Caller/Program.cs b/src/Clients/Clients.Grpc.Caller/Program.cs new file mode 100644 index 0000000000..32ce7905e5 --- /dev/null +++ b/src/Clients/Clients.Grpc.Caller/Program.cs @@ -0,0 +1,37 @@ +using System; +using System.Net.Http; +using System.Threading.Tasks; +using Grpc.Net.Client; +using GrpcBasket; +namespace Clients.Grpc.Caller +{ + class Program + { + static async Task Main(string[] args) + { + Console.WriteLine("Starting..."); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); + + using (var httpClientHandler = new HttpClientHandler()) + { + httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; + using (var httpClient = new HttpClient(httpClientHandler)) + { + // Make your request... + // var httpClient = new HttpClient(); + // The port number(5001) must match the port of the gRPC server. + //httpClient.BaseAddress = new Uri("http://localhost:5103"); + httpClient.BaseAddress = new Uri("http://localhost:5580"); + //httpClient.DefaultRequestVersion = Version.Parse("2.0"); + var client = GrpcClient.Create(httpClient); + var reply = await client.GetBasketByIdAsync( + new BasketRequest { Id = "11" }); + Console.WriteLine("Greeting: " + reply.Buyerid); + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } + } + } + } +} diff --git a/src/Clients/Clients.Grpc.Caller/Protos/basket.proto b/src/Clients/Clients.Grpc.Caller/Protos/basket.proto new file mode 100644 index 0000000000..1fc22bc99b --- /dev/null +++ b/src/Clients/Clients.Grpc.Caller/Protos/basket.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; + +option csharp_namespace = "GrpcBasket"; + +package BasketApi; + +service Basket { + rpc GetBasketById(BasketRequest) returns (CustomerBasketResponse); + rpc UpdateBasket(CustomerBasketRequest) returns (CustomerBasketResponse); +} + +message BasketRequest { + string id = 1; +} + +message CustomerBasketRequest { + string buyerid = 1; + repeated BasketItemResponse items = 2; +} + +message CustomerBasketResponse { + string buyerid = 1; + repeated BasketItemResponse items = 2; +} + +message BasketItemResponse { + string id = 1; + string productid = 2; + string productname = 3; + double unitprice = 4; + double oldunitprice = 5; + int32 quantity = 6; + string pictureurl = 7; +} \ No newline at end of file diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index 78cd14b2a1..4ba0e19b43 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -27,11 +27,11 @@ - + - - + + diff --git a/src/Services/Basket/Basket.API/Grpc/BasketService.cs b/src/Services/Basket/Basket.API/Grpc/BasketService.cs index f6bd42ce76..a77ae080e1 100644 --- a/src/Services/Basket/Basket.API/Grpc/BasketService.cs +++ b/src/Services/Basket/Basket.API/Grpc/BasketService.cs @@ -1,10 +1,12 @@ using Grpc.Core; +using Microsoft.AspNetCore.Authorization; using Microsoft.eShopOnContainers.Services.Basket.API.Model; using Microsoft.Extensions.Logging; using System.Linq; using System.Threading.Tasks; +using GrpcBasket; -namespace grpc +namespace GrpcBasket { public class BasketService : Basket.BasketBase { @@ -17,24 +19,47 @@ public BasketService(IBasketRepository repository, ILogger logger _logger = logger; } - public override async Task GetBasketById(BasketRequest request, ServerCallContext context) + [AllowAnonymous] + public override Task GetBasketById(BasketRequest request, ServerCallContext context) { _logger.LogInformation($"Begin grpc call from method {context.Method} for basket id {request.Id}"); - var data = await _repository.GetBasketAsync(request.Id); + //context.ResponseTrailers.Add("grpc-status", "0"); + //context.Status = Status.DefaultSuccess; - if (data != null) + return Task.FromResult(new CustomerBasketResponse { - context.Status = new Status(StatusCode.OK, $"Basket with id {request.Id} do exist"); + Buyerid = "55" + }); - return MapToCustomerBasketResponse(data); - } - else - { - context.Status = new Status(StatusCode.NotFound, $"Basket with id {request.Id} do not exist"); - } - return null; + // if (!context.Response.SupportsTrailers()) + // { + // var headers = new HeaderDictionary(); + // headers.Add("grpc-status", "0"); + + // Log.Logger.Information("Custom middleware headers {@headers}", headers); + // context.Features.Set(new TestHttpResponseTrailersFeature + // { + // Trailers = headers + // }); + // } + + // return next(); + // var data = await _repository.GetBasketAsync(request.Id); + + // if (data != null) + // { + // context.Status = new Status(StatusCode.OK, $"Basket with id {request.Id} do exist"); + + // return MapToCustomerBasketResponse(data); + // } + // else + // { + // context.Status = new Status(StatusCode.NotFound, $"Basket with id {request.Id} do not exist"); + // } + + // return new CustomerBasketResponse(); } public override async Task UpdateBasket(CustomerBasketRequest request, ServerCallContext context) @@ -62,16 +87,16 @@ private CustomerBasketResponse MapToCustomerBasketResponse(CustomerBasket custom Buyerid = customerBasket.BuyerId }; - customerBasket.Items.ForEach(item => response.Items.Add(new BasketItemResponse - { - Id = item.Id, - Oldunitprice = (double)item.OldUnitPrice, - Pictureurl = item.PictureUrl, - Productid = item.ProductId, - Productname = item.ProductName, - Quantity = item.Quantity, - Unitprice = (double)item.UnitPrice - })); + // customerBasket.Items.ForEach(item => response.Items.Add(new BasketItemResponse + // { + // Id = item.Id, + // Oldunitprice = (double)item.OldUnitPrice, + // Pictureurl = item.PictureUrl, + // Productid = item.ProductId, + // Productname = item.ProductName, + // Quantity = item.Quantity, + // Unitprice = (double)item.UnitPrice + // })); return response; } @@ -83,16 +108,16 @@ private CustomerBasket MapToCustomerBasket(CustomerBasketRequest customerBasketR BuyerId = customerBasketRequest.Buyerid }; - customerBasketRequest.Items.ToList().ForEach(item => response.Items.Add(new BasketItem - { - Id = item.Id, - OldUnitPrice = (decimal)item.Oldunitprice, - PictureUrl = item.Pictureurl, - ProductId = item.Productid, - ProductName = item.Productname, - Quantity = item.Quantity, - UnitPrice = (decimal)item.Unitprice - })); + // customerBasketRequest.Items.ToList().ForEach(item => response.Items.Add(new BasketItem + // { + // Id = item.Id, + // OldUnitPrice = (decimal)item.Oldunitprice, + // PictureUrl = item.Pictureurl, + // ProductId = item.Productid, + // ProductName = item.Productname, + // Quantity = item.Quantity, + // UnitPrice = (decimal)item.Unitprice + // })); return response; } diff --git a/src/Services/Basket/Basket.API/Program.cs b/src/Services/Basket/Basket.API/Program.cs index caf3d581b0..de1b54c2b8 100644 --- a/src/Services/Basket/Basket.API/Program.cs +++ b/src/Services/Basket/Basket.API/Program.cs @@ -49,7 +49,6 @@ private static IWebHost BuildWebHost(IConfiguration configuration, string[] args .ConfigureKestrel(options => { var ports = GetDefinedPorts(configuration); - options.Listen(IPAddress.Any, ports.httpPort, listenOptions => { listenOptions.Protocols = HttpProtocols.Http1AndHttp2; @@ -59,6 +58,7 @@ private static IWebHost BuildWebHost(IConfiguration configuration, string[] args { listenOptions.Protocols = HttpProtocols.Http2; }); + }) .UseFailing(options => options.ConfigPath = "/Failing") .UseStartup() diff --git a/src/Services/Basket/Basket.API/Proto/basket.proto b/src/Services/Basket/Basket.API/Proto/basket.proto index 9b69effada..0ba9315dfd 100644 --- a/src/Services/Basket/Basket.API/Proto/basket.proto +++ b/src/Services/Basket/Basket.API/Proto/basket.proto @@ -1,15 +1,11 @@ syntax = "proto3"; -option csharp_namespace = "grpc"; +option csharp_namespace = "GrpcBasket"; package BasketApi; service Basket { - rpc GetBasketById(BasketRequest) returns (CustomerBasketResponse) { - option (google.api.http) = { - get: "/GetBasketById" - }; - } + rpc GetBasketById(BasketRequest) returns (CustomerBasketResponse) {} rpc UpdateBasket(CustomerBasketRequest) returns (CustomerBasketResponse) {} } @@ -19,12 +15,10 @@ message BasketRequest { message CustomerBasketRequest { string buyerid = 1; - repeated BasketItemResponse items = 2; } message CustomerBasketResponse { string buyerid = 1; - repeated BasketItemResponse items = 2; } message BasketItemResponse { diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index 0176ea9362..c38fb66b70 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -4,7 +4,6 @@ using Basket.API.Infrastructure.Middlewares; using Basket.API.IntegrationEvents.EventHandling; using Basket.API.IntegrationEvents.Events; -using grpc; using HealthChecks.UI.Client; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; @@ -34,6 +33,9 @@ using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; using System.IO; +using GrpcBasket; +using Microsoft.AspNetCore.Http.Features; +using Serilog; namespace Microsoft.eShopOnContainers.Services.Basket.API { @@ -198,39 +200,62 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF app.UsePathBase(pathBase); } - app.UseSwagger() - .UseSwaggerUI(setup => - { - setup.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Basket.API V1"); - setup.OAuthClientId("basketswaggerui"); - setup.OAuthAppName("Basket Swagger UI"); - }); + + //app.Use((context, next) => + //{ + // Log.Logger.Information("Custom middleware to avoid trailers"); + // Log.Logger.Information("Custom middleware context.Response {@context.Response}", context.Response); + // Log.Logger.Information("Custom middleware context.Response.SupportsTrailers {context.Response.SupportsTrailers}", context.Response.SupportsTrailers()); + // if (!context.Response.SupportsTrailers()) + // { + // var headers = new HeaderDictionary(); + // headers.Add("grpc-status", "0"); + + // Log.Logger.Information("Custom middleware headers {@headers}", headers); + // context.Features.Set(new TestHttpResponseTrailersFeature + // { + // Trailers = headers + // }); + // } + + // return next(); + + + //}); + + //app.UseSwagger() + // .UseSwaggerUI(setup => + // { + // setup.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Basket.API V1"); + // setup.OAuthClientId("basketswaggerui"); + // setup.OAuthAppName("Basket Swagger UI"); + // }); app.UseRouting(); - ConfigureAuth(app); + // ConfigureAuth(app); - app.UseStaticFiles(); + // app.UseStaticFiles(); app.UseCors("CorsPolicy"); app.UseEndpoints(endpoints => { + endpoints.MapGrpcService(); endpoints.MapDefaultControllerRoute(); endpoints.MapControllers(); - endpoints.MapGet("/_proto/", async ctx => - { - ctx.Response.ContentType = "text/plain"; - using var fs = new FileStream(Path.Combine(env.ContentRootPath, "Proto", "basket.proto"), FileMode.Open, FileAccess.Read); - using var sr = new StreamReader(fs); - while (!sr.EndOfStream) - { - var line = await sr.ReadLineAsync(); - if (line != "/* >>" || line != "<< */") - { - await ctx.Response.WriteAsync(line); - } - } - }); - endpoints.MapGrpcService(); + // endpoints.MapGet("/_proto/", async ctx => + // { + // ctx.Response.ContentType = "text/plain"; + // using var fs = new FileStream(Path.Combine(env.ContentRootPath, "Proto", "basket.proto"), FileMode.Open, FileAccess.Read); + // using var sr = new StreamReader(fs); + // while (!sr.EndOfStream) + // { + // var line = await sr.ReadLineAsync(); + // if (line != "/* >>" || line != "<< */") + // { + // await ctx.Response.WriteAsync(line); + // } + // } + // }); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -254,21 +279,21 @@ private void RegisterAppInsights(IServiceCollection services) private void ConfigureAuthService(IServiceCollection services) { // prevent from mapping "sub" claim to nameidentifier. - JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub"); + // JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub"); - var identityUrl = Configuration.GetValue("IdentityUrl"); + // var identityUrl = Configuration.GetValue("IdentityUrl"); - services.AddAuthentication(options => - { - options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; - options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; + // services.AddAuthentication(options => + // { + // options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; + // options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; - }).AddJwtBearer(options => - { - options.Authority = identityUrl; - options.RequireHttpsMetadata = false; - options.Audience = "basket"; - }); + // }).AddJwtBearer(options => + // { + // options.Authority = identityUrl; + // options.RequireHttpsMetadata = false; + // options.Audience = "basket"; + // }); } protected virtual void ConfigureAuth(IApplicationBuilder app) @@ -278,8 +303,8 @@ protected virtual void ConfigureAuth(IApplicationBuilder app) app.UseMiddleware(); } - app.UseAuthentication(); - app.UseAuthorization(); + // app.UseAuthentication(); + // app.UseAuthorization(); } private void RegisterEventBus(IServiceCollection services) diff --git a/src/Services/Basket/Basket.API/TestHttpResponseTrailersFeature.cs b/src/Services/Basket/Basket.API/TestHttpResponseTrailersFeature.cs new file mode 100644 index 0000000000..7cab5a07b2 --- /dev/null +++ b/src/Services/Basket/Basket.API/TestHttpResponseTrailersFeature.cs @@ -0,0 +1,10 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Features; + +namespace Microsoft.eShopOnContainers.Services.Basket.API +{ + internal class TestHttpResponseTrailersFeature : IHttpResponseTrailersFeature + { + public IHeaderDictionary Trailers { get; set; } + } +} \ No newline at end of file diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index e7941d51b8..1905ccd414 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -16,9 +16,9 @@ - 0.1.22-pre1 - 3.9.0-rc1 - 1.22.0 + 0.1.22-pre3 + 3.9.1 + 2.23.0 0.1.22-pre2 3.0.0-preview7.19362.4 From 9b1c690c9e36d11f19e3ee78792f5636414e397d Mon Sep 17 00:00:00 2001 From: ericuss Date: Mon, 26 Aug 2019 14:52:57 +0200 Subject: [PATCH 062/149] restore options and grpc calling from console app it's working --- src/Clients/Clients.Grpc.Caller/Program.cs | 19 +++- .../Basket/Basket.API/Basket.API.csproj | 6 +- .../Basket/Basket.API/Grpc/BasketService.cs | 84 ++++++-------- .../Basket/Basket.API/Proto/basket.proto | 2 + src/Services/Basket/Basket.API/Startup.cs | 105 +++++++----------- 5 files changed, 93 insertions(+), 123 deletions(-) diff --git a/src/Clients/Clients.Grpc.Caller/Program.cs b/src/Clients/Clients.Grpc.Caller/Program.cs index 32ce7905e5..5a671ac6e2 100644 --- a/src/Clients/Clients.Grpc.Caller/Program.cs +++ b/src/Clients/Clients.Grpc.Caller/Program.cs @@ -1,6 +1,7 @@ using System; using System.Net.Http; using System.Threading.Tasks; +using Grpc.Core; using Grpc.Net.Client; using GrpcBasket; namespace Clients.Grpc.Caller @@ -25,9 +26,21 @@ static async Task Main(string[] args) httpClient.BaseAddress = new Uri("http://localhost:5580"); //httpClient.DefaultRequestVersion = Version.Parse("2.0"); var client = GrpcClient.Create(httpClient); - var reply = await client.GetBasketByIdAsync( - new BasketRequest { Id = "11" }); - Console.WriteLine("Greeting: " + reply.Buyerid); + + try + { + var reply = await client.GetBasketByIdAsync( + new BasketRequest { Id = "4f71a02f-4738-43a9-8c81-7652877e7102" }); + Console.WriteLine("Greeting: " + reply.Buyerid); + Console.WriteLine("Greeting: " + reply.Items); + + } + //catch(Grpc) + catch (RpcException e) + { + Console.WriteLine($"Error calling via grpc: {e.Status} - {e.Message}"); + } + Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index 4ba0e19b43..78cd14b2a1 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -27,11 +27,11 @@ - + - - + + diff --git a/src/Services/Basket/Basket.API/Grpc/BasketService.cs b/src/Services/Basket/Basket.API/Grpc/BasketService.cs index a77ae080e1..e92190c736 100644 --- a/src/Services/Basket/Basket.API/Grpc/BasketService.cs +++ b/src/Services/Basket/Basket.API/Grpc/BasketService.cs @@ -20,46 +20,24 @@ public BasketService(IBasketRepository repository, ILogger logger } [AllowAnonymous] - public override Task GetBasketById(BasketRequest request, ServerCallContext context) + public override async Task GetBasketById(BasketRequest request, ServerCallContext context) { _logger.LogInformation($"Begin grpc call from method {context.Method} for basket id {request.Id}"); - //context.ResponseTrailers.Add("grpc-status", "0"); - //context.Status = Status.DefaultSuccess; + var data = await _repository.GetBasketAsync(request.Id); - return Task.FromResult(new CustomerBasketResponse + if (data != null) { - Buyerid = "55" - }); + context.Status = new Status(StatusCode.OK, $"Basket with id {request.Id} do exist"); + return MapToCustomerBasketResponse(data); + } + else + { + context.Status = new Status(StatusCode.NotFound, $"Basket with id {request.Id} do not exist"); + } - // if (!context.Response.SupportsTrailers()) - // { - // var headers = new HeaderDictionary(); - // headers.Add("grpc-status", "0"); - - // Log.Logger.Information("Custom middleware headers {@headers}", headers); - // context.Features.Set(new TestHttpResponseTrailersFeature - // { - // Trailers = headers - // }); - // } - - // return next(); - // var data = await _repository.GetBasketAsync(request.Id); - - // if (data != null) - // { - // context.Status = new Status(StatusCode.OK, $"Basket with id {request.Id} do exist"); - - // return MapToCustomerBasketResponse(data); - // } - // else - // { - // context.Status = new Status(StatusCode.NotFound, $"Basket with id {request.Id} do not exist"); - // } - - // return new CustomerBasketResponse(); + return new CustomerBasketResponse(); } public override async Task UpdateBasket(CustomerBasketRequest request, ServerCallContext context) @@ -87,16 +65,16 @@ private CustomerBasketResponse MapToCustomerBasketResponse(CustomerBasket custom Buyerid = customerBasket.BuyerId }; - // customerBasket.Items.ForEach(item => response.Items.Add(new BasketItemResponse - // { - // Id = item.Id, - // Oldunitprice = (double)item.OldUnitPrice, - // Pictureurl = item.PictureUrl, - // Productid = item.ProductId, - // Productname = item.ProductName, - // Quantity = item.Quantity, - // Unitprice = (double)item.UnitPrice - // })); + customerBasket.Items.ForEach(item => response.Items.Add(new BasketItemResponse + { + Id = item.Id, + Oldunitprice = (double)item.OldUnitPrice, + Pictureurl = item.PictureUrl, + Productid = item.ProductId, + Productname = item.ProductName, + Quantity = item.Quantity, + Unitprice = (double)item.UnitPrice + })); return response; } @@ -108,16 +86,16 @@ private CustomerBasket MapToCustomerBasket(CustomerBasketRequest customerBasketR BuyerId = customerBasketRequest.Buyerid }; - // customerBasketRequest.Items.ToList().ForEach(item => response.Items.Add(new BasketItem - // { - // Id = item.Id, - // OldUnitPrice = (decimal)item.Oldunitprice, - // PictureUrl = item.Pictureurl, - // ProductId = item.Productid, - // ProductName = item.Productname, - // Quantity = item.Quantity, - // UnitPrice = (decimal)item.Unitprice - // })); + customerBasketRequest.Items.ToList().ForEach(item => response.Items.Add(new BasketItem + { + Id = item.Id, + OldUnitPrice = (decimal)item.Oldunitprice, + PictureUrl = item.Pictureurl, + ProductId = item.Productid, + ProductName = item.Productname, + Quantity = item.Quantity, + UnitPrice = (decimal)item.Unitprice + })); return response; } diff --git a/src/Services/Basket/Basket.API/Proto/basket.proto b/src/Services/Basket/Basket.API/Proto/basket.proto index 0ba9315dfd..b332d8427c 100644 --- a/src/Services/Basket/Basket.API/Proto/basket.proto +++ b/src/Services/Basket/Basket.API/Proto/basket.proto @@ -15,10 +15,12 @@ message BasketRequest { message CustomerBasketRequest { string buyerid = 1; + repeated BasketItemResponse items = 2; } message CustomerBasketResponse { string buyerid = 1; + repeated BasketItemResponse items = 2; } message BasketItemResponse { diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index c38fb66b70..d9554bcb8c 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -200,41 +200,18 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF app.UsePathBase(pathBase); } - - //app.Use((context, next) => - //{ - // Log.Logger.Information("Custom middleware to avoid trailers"); - // Log.Logger.Information("Custom middleware context.Response {@context.Response}", context.Response); - // Log.Logger.Information("Custom middleware context.Response.SupportsTrailers {context.Response.SupportsTrailers}", context.Response.SupportsTrailers()); - // if (!context.Response.SupportsTrailers()) - // { - // var headers = new HeaderDictionary(); - // headers.Add("grpc-status", "0"); - - // Log.Logger.Information("Custom middleware headers {@headers}", headers); - // context.Features.Set(new TestHttpResponseTrailersFeature - // { - // Trailers = headers - // }); - // } - - // return next(); - - - //}); - - //app.UseSwagger() - // .UseSwaggerUI(setup => - // { - // setup.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Basket.API V1"); - // setup.OAuthClientId("basketswaggerui"); - // setup.OAuthAppName("Basket Swagger UI"); - // }); + app.UseSwagger() + .UseSwaggerUI(setup => + { + setup.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Basket.API V1"); + setup.OAuthClientId("basketswaggerui"); + setup.OAuthAppName("Basket Swagger UI"); + }); app.UseRouting(); - // ConfigureAuth(app); + ConfigureAuth(app); - // app.UseStaticFiles(); + app.UseStaticFiles(); app.UseCors("CorsPolicy"); app.UseEndpoints(endpoints => @@ -242,20 +219,20 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF endpoints.MapGrpcService(); endpoints.MapDefaultControllerRoute(); endpoints.MapControllers(); - // endpoints.MapGet("/_proto/", async ctx => - // { - // ctx.Response.ContentType = "text/plain"; - // using var fs = new FileStream(Path.Combine(env.ContentRootPath, "Proto", "basket.proto"), FileMode.Open, FileAccess.Read); - // using var sr = new StreamReader(fs); - // while (!sr.EndOfStream) - // { - // var line = await sr.ReadLineAsync(); - // if (line != "/* >>" || line != "<< */") - // { - // await ctx.Response.WriteAsync(line); - // } - // } - // }); + endpoints.MapGet("/_proto/", async ctx => + { + ctx.Response.ContentType = "text/plain"; + using var fs = new FileStream(Path.Combine(env.ContentRootPath, "Proto", "basket.proto"), FileMode.Open, FileAccess.Read); + using var sr = new StreamReader(fs); + while (!sr.EndOfStream) + { + var line = await sr.ReadLineAsync(); + if (line != "/* >>" || line != "<< */") + { + await ctx.Response.WriteAsync(line); + } + } + }); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, @@ -278,22 +255,22 @@ private void RegisterAppInsights(IServiceCollection services) private void ConfigureAuthService(IServiceCollection services) { - // prevent from mapping "sub" claim to nameidentifier. - // JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub"); - - // var identityUrl = Configuration.GetValue("IdentityUrl"); - - // services.AddAuthentication(options => - // { - // options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; - // options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; - - // }).AddJwtBearer(options => - // { - // options.Authority = identityUrl; - // options.RequireHttpsMetadata = false; - // options.Audience = "basket"; - // }); + // prevent from mapping "sub" claim to nameidentifier. + JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub"); + + var identityUrl = Configuration.GetValue("IdentityUrl"); + + services.AddAuthentication(options => + { + options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; + options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; + + }).AddJwtBearer(options => + { + options.Authority = identityUrl; + options.RequireHttpsMetadata = false; + options.Audience = "basket"; + }); } protected virtual void ConfigureAuth(IApplicationBuilder app) @@ -303,8 +280,8 @@ protected virtual void ConfigureAuth(IApplicationBuilder app) app.UseMiddleware(); } - // app.UseAuthentication(); - // app.UseAuthorization(); + app.UseAuthentication(); + app.UseAuthorization(); } private void RegisterEventBus(IServiceCollection services) From 016089fb5fa66570a985841a31cba4673edb38ec Mon Sep 17 00:00:00 2001 From: ericuss Date: Tue, 27 Aug 2019 09:40:31 +0200 Subject: [PATCH 063/149] Partial checkin --- .../aggregator/Services/BasketService.cs | 60 ++++++++++-------- .../Mobile.Bff.Shopping/aggregator/Startup.cs | 28 +++++---- .../Controllers/BasketController.cs | 6 ++ .../aggregator/Protos/basket.api | 34 ++++++++++ .../aggregator/Services/BasketService.cs | 62 ++++++++++++++++++- .../Web.Bff.Shopping/aggregator/Startup.cs | 5 +- .../Web.Shopping.HttpAggregator.csproj | 7 +++ .../Identity.API/Configuration/Config.cs | 3 +- src/_build/dependencies.props | 1 + 9 files changed, 163 insertions(+), 43 deletions(-) create mode 100644 src/ApiGateways/Web.Bff.Shopping/aggregator/Protos/basket.api diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs index 657e3cd542..44e13dd91c 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs @@ -1,5 +1,4 @@ -using grpc; -using Grpc.Net.Client; +using Grpc.Net.Client; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Config; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models; using Microsoft.Extensions.Logging; @@ -8,7 +7,8 @@ using System.Linq; using System.Net.Http; using System.Threading.Tasks; -using static grpc.Basket; +using GrpcBasket; +using Grpc.Core; namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Services { @@ -27,49 +27,57 @@ public BasketService(HttpClient httpClient, IOptions config, ILogger public async Task GetById(string id) { + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ GetById @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Http2UnencryptedSupport disable @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); - - _httpClient.BaseAddress = new Uri("http://localhost:5001"); - - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ {_httpClient.BaseAddress} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", _httpClient.BaseAddress); + using (var httpClientHandler = new HttpClientHandler()) + { + httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; + using (var httpClient = new HttpClient(httpClientHandler)) + { + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Http2UnencryptedSupport disable @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); - var client = GrpcClient.Create(_httpClient); + httpClient.BaseAddress = new Uri("http://localhost:5580"); - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ client create @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ {httpClient.BaseAddress} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ " + httpClient.BaseAddress, httpClient.BaseAddress); - var response = await client.GetBasketByIdAsync(new BasketRequest { Id = id }); + var client = GrpcClient.Create(httpClient); - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ call grpc server @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ client create @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); - _logger.LogInformation("############## DATA: {@a}", response.Buyerid); + try + { - //if (streaming.IsCompleted) - //{ - // _logger.LogInformation("############## DATA: {@a}", streaming.GetResult()); - //} - //var streaming = client.GetBasketById(new BasketRequest { Id = id }); + var response = await client.GetBasketByIdAsync(new BasketRequest { Id = id }); + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ call grpc server @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + _logger.LogInformation("############## DATA: {@a}", response.Buyerid); + _logger.LogInformation("############## DATA:response {@response}", response); - //var status = streaming.GetStatus(); + return MapToBasketData(response); + } + catch (RpcException e) + { + _logger.LogError($"Error calling via grpc: {e.Status} - {e.Message}"); + } + } + } - //if (status.StatusCode == Grpc.Core.StatusCode.OK) - //{ - // return null; - //} + return null; // temp + // var data = await _apiClient.GetStringAsync(_urls.Basket + UrlsConfig.BasketOperations.GetItemById(id)); + // var basket = !string.IsNullOrEmpty(data) ? JsonConvert.DeserializeObject(data) : null; - return null; - //return MapToBasketData(response.ResponseStream); + // return basket; } public async Task UpdateAsync(BasketData currentBasket) { _httpClient.BaseAddress = new Uri(_urls.Basket + UrlsConfig.BasketOperations.UpdateBasket()); - var client = GrpcClient.Create(_httpClient); + var client = GrpcClient.Create(_httpClient); var request = MapToCustomerBasketRequest(currentBasket); await client.UpdateBasketAsync(request); diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index 2a9d0b341b..8d7f7dbbe7 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -74,6 +74,17 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseCors("CorsPolicy"); app.UseHttpsRedirection(); + + app.UseSwagger().UseSwaggerUI(c => + { + c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Purchase BFF V1"); + + c.OAuthClientId("mobileshoppingaggswaggerui"); + c.OAuthClientSecret(string.Empty); + c.OAuthRealm(string.Empty); + c.OAuthAppName("Purchase BFF Swagger UI"); + }); + app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); @@ -91,16 +102,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF Predicate = r => r.Name.Contains("self") }); }); - - app.UseSwagger().UseSwaggerUI(c => - { - c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Purchase BFF V1"); - - c.OAuthClientId("mobileshoppingaggswaggerui"); - c.OAuthClientSecret(string.Empty); - c.OAuthRealm(string.Empty); - c.OAuthAppName("Purchase BFF Swagger UI"); - }); } } @@ -130,8 +131,11 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, { Implicit = new OpenApiOAuthFlow() { - AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), - TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), + // AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + // TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), + + AuthorizationUrl = new Uri($"http://localhost:5105/connect/authorize"), + TokenUrl = new Uri($"http://localhost:5105/connect/token"), Scopes = new Dictionary() { { "mobileshoppingagg", "Shopping Aggregator for Mobile Clients" } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs index 851368af16..2fefb9d8a3 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Net; using System.Threading.Tasks; +using Serilog; namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Controllers { @@ -30,13 +31,18 @@ public BasketController(ICatalogService catalogService, IBasketService basketSer [ProducesResponseType(typeof(BasketData), (int)HttpStatusCode.OK)] public async Task> UpdateAllBasketAsync([FromBody] UpdateBasketRequest data) { + Log.Information("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ UpdateAllBasketAsync @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + if (data.Items == null || !data.Items.Any()) { return BadRequest("Need to pass at least one basket line"); } // Retrieve the current basket + Log.Information("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ GetByIdAsync @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + var basket = await _basket.GetByIdAsync(data.BuyerId) ?? new BasketData(data.BuyerId); + Log.Information("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ basket @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); var catalogItems = await _catalog.GetCatalogItemsAsync(data.Items.Select(x => x.ProductId)); diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Protos/basket.api b/src/ApiGateways/Web.Bff.Shopping/aggregator/Protos/basket.api new file mode 100644 index 0000000000..1fc22bc99b --- /dev/null +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Protos/basket.api @@ -0,0 +1,34 @@ +syntax = "proto3"; + +option csharp_namespace = "GrpcBasket"; + +package BasketApi; + +service Basket { + rpc GetBasketById(BasketRequest) returns (CustomerBasketResponse); + rpc UpdateBasket(CustomerBasketRequest) returns (CustomerBasketResponse); +} + +message BasketRequest { + string id = 1; +} + +message CustomerBasketRequest { + string buyerid = 1; + repeated BasketItemResponse items = 2; +} + +message CustomerBasketResponse { + string buyerid = 1; + repeated BasketItemResponse items = 2; +} + +message BasketItemResponse { + string id = 1; + string productid = 2; + string productname = 3; + double unitprice = 4; + double oldunitprice = 5; + int32 quantity = 6; + string pictureurl = 7; +} \ No newline at end of file diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs index d0fb5c008f..92b96dec52 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs @@ -23,10 +23,66 @@ public BasketService(HttpClient httpClient,ILogger logger, IOptio public async Task GetByIdAsync(string id) { - var data = await _apiClient.GetStringAsync(_urls.Basket + UrlsConfig.BasketOperations.GetItemById(id)); - var basket = !string.IsNullOrEmpty(data) ? JsonConvert.DeserializeObject(data) : null; - return basket; + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ GetById @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); + using (var httpClientHandler = new HttpClientHandler()) + { + httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; + using (var httpClient = new HttpClient(httpClientHandler)) + { + + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Http2UnencryptedSupport disable @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + + httpClient.BaseAddress = new Uri("http://localhost:5580"); + + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ {httpClient.BaseAddress} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", httpClient.BaseAddress); + + var client = GrpcClient.Create(httpClient); + + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ client create @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + + try{ + + var response = await client.GetBasketByIdAsync(new BasketRequest { Id = id }); + _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ call grpc server @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + + _logger.LogInformation("############## DATA: {@a}", response.Buyerid); + _logger.LogInformation("############## DATA:response {@response}", response); + } + catch (RpcException e) + { + Console.WriteLine($"Error calling via grpc: {e.Status} - {e.Message}"); + _logger.logError($"Error calling via grpc: {e.Status} - {e.Message}"); + + } + + + //if (streaming.IsCompleted) + //{ + // _logger.LogInformation("############## DATA: {@a}", streaming.GetResult()); + //} + //var streaming = client.GetBasketById(new BasketRequest { Id = id }); + + + //var status = streaming.GetStatus(); + + //if (status.StatusCode == Grpc.Core.StatusCode.OK) + //{ + // return null; + //} + + return response; + + } + } + + // var data = await _apiClient.GetStringAsync(_urls.Basket + UrlsConfig.BasketOperations.GetItemById(id)); + // var basket = !string.IsNullOrEmpty(data) ? JsonConvert.DeserializeObject(data) : null; + + // return basket; } public async Task UpdateAsync(BasketData currentBasket) diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index 9b144db485..7c18f10ec2 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -94,6 +94,8 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF { c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Purchase BFF V1"); //c.ConfigureOAuth2("Microsoft.eShopOnContainers.Web.Shopping.HttpAggregatorwaggerui", "", "", "Purchase BFF Swagger UI"); + c.OAuthClientId("webshoppingaggswaggerui"); + c.OAuthAppName("web shopping bff Swagger UI"); }); } } @@ -157,7 +159,8 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, TokenUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/token", Scopes = new Dictionary() { - { "webshoppingagg", "Shopping Aggregator for Web Clients" } + { "webshoppingagg", "Shopping Aggregator for Web Clients" }, + { "basket", "basket api" } } }); diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj index ef610d5721..ed51b48601 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj @@ -55,6 +55,13 @@ + + + + + + + diff --git a/src/Services/Identity/Identity.API/Configuration/Config.cs b/src/Services/Identity/Identity.API/Configuration/Config.cs index dcb3a8c7ae..04a9aa0432 100644 --- a/src/Services/Identity/Identity.API/Configuration/Config.cs +++ b/src/Services/Identity/Identity.API/Configuration/Config.cs @@ -284,7 +284,8 @@ public static IEnumerable GetClients(Dictionary clientsU AllowedScopes = { - "webshoppingagg" + "webshoppingagg", + "basket" } }, new Client diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 1905ccd414..c166192517 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -17,6 +17,7 @@ 0.1.22-pre3 + 0.1.22-pre3 3.9.1 2.23.0 0.1.22-pre2 From 3f61eb0ef93c4c2ad45238f4268dbf9516d7d543 Mon Sep 17 00:00:00 2001 From: ericuss Date: Tue, 27 Aug 2019 14:07:39 +0200 Subject: [PATCH 064/149] fix grpc call from mobile bff to basket.api and add ordering, in ordering controller --- docker-compose.override.yml | 5 +- .../aggregator/Config/UrlsConfig.cs | 2 + .../aggregator/Controllers/OrderController.cs | 8 +- ...ttpClientAuthorizationDelegatingHandler.cs | 2 - .../Mobile.Shopping.HttpAggregator.csproj | 5 +- .../aggregator/Models/BasketData.cs | 3 +- .../aggregator/Models/OrderData.cs | 4 +- .../aggregator/Models/OrderItemData.cs | 7 +- .../Models/UpdateBasketItemsRequest.cs | 5 +- .../aggregator/Models/UpdateBasketRequest.cs | 5 +- .../aggregator/Services/BasketService.cs | 22 +--- .../aggregator/Services/IOrderingService.cs | 10 ++ .../aggregator/Services/OrderingService.cs | 113 ++++++++++++++++++ .../Mobile.Bff.Shopping/aggregator/Startup.cs | 16 ++- .../aggregator/appsettings.localhost.json | 4 +- .../Ordering.API/Grpc/OrderingService.cs | 92 ++++++++++++++ .../Ordering/Ordering.API/Ordering.API.csproj | 12 +- src/Services/Ordering/Ordering.API/Program.cs | 22 ++++ .../Ordering.API/Proto/ordering.proto | 39 ++++++ src/Services/Ordering/Ordering.API/Startup.cs | 28 ++++- 20 files changed, 350 insertions(+), 54 deletions(-) create mode 100644 src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/IOrderingService.cs create mode 100644 src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/OrderingService.cs create mode 100644 src/Services/Ordering/Ordering.API/Grpc/OrderingService.cs create mode 100644 src/Services/Ordering/Ordering.API/Proto/ordering.proto diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 4428a93305..5c1a9082c4 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -115,6 +115,7 @@ services: - Serilog__MinimumLevel__Override__Ordering.API=Verbose ports: - "5102:80" + - "5581:5001" ordering.backgroundtasks: environment: @@ -284,6 +285,8 @@ services: - urls__catalog=http://catalog.api - urls__orders=http://ordering.api - urls__identity=http://identity.api + - urls__grpcBasket=http://10.0.75.1:5580 + - urls__grpcOrdering=http://10.0.75.1:5581 - CatalogUrlHC=http://catalog.api/hc - OrderingUrlHC=http://ordering.api/hc - IdentityUrlHC=http://identity.api/hc @@ -291,7 +294,7 @@ services: - MarketingUrlHC=http://marketing.api/hc - PaymentUrlHC=http://payment.api/hc - LocationUrlHC=http://locations.api/hc - - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 + - IdentityUrlExternal=http://10.0.75.1:5105 ports: - "5120:80" diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Config/UrlsConfig.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Config/UrlsConfig.cs index e920fbbb28..7fd7cb5f3f 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Config/UrlsConfig.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Config/UrlsConfig.cs @@ -27,5 +27,7 @@ public class OrdersOperations public string Basket { get; set; } public string Catalog { get; set; } public string Orders { get; set; } + public string GrpcBasket { get; set; } + public string GrpcOrdering { get; set; } } } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Controllers/OrderController.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Controllers/OrderController.cs index ac359b4b58..8bacc80d49 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Controllers/OrderController.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Controllers/OrderController.cs @@ -13,12 +13,12 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Controllers public class OrderController : ControllerBase { private readonly IBasketService _basketService; - private readonly IOrderApiClient _orderClient; + private readonly IOrderingService _orderingService; - public OrderController(IBasketService basketService, IOrderApiClient orderClient) + public OrderController(IBasketService basketService, IOrderingService orderingService) { _basketService = basketService; - _orderClient = orderClient; + _orderingService = orderingService; } [Route("draft/{basketId}")] @@ -39,7 +39,7 @@ public async Task> GetOrderDraftAsync(string basketId) return BadRequest($"No basket found for id {basketId}"); } - return await _orderClient.GetOrderDraftFromBasketAsync(basket); + return await _orderingService.GetOrderDraftAsync(basket); } } } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Infrastructure/HttpClientAuthorizationDelegatingHandler.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Infrastructure/HttpClientAuthorizationDelegatingHandler.cs index 4562139df8..bfc705b5c3 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Infrastructure/HttpClientAuthorizationDelegatingHandler.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Infrastructure/HttpClientAuthorizationDelegatingHandler.cs @@ -40,8 +40,6 @@ protected override async Task SendAsync(HttpRequestMessage request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token); } - _logger.LogInformation("@@@@@@@@@@@@@@@@@ {@request}", request); - return await base.SendAsync(request, cancellationToken); } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj index ca8768a666..40060ea291 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj @@ -20,7 +20,7 @@ - + @@ -34,10 +34,11 @@ - + + diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/BasketData.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/BasketData.cs index 302f6bd32b..e2888f92e2 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/BasketData.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/BasketData.cs @@ -6,7 +6,7 @@ public class BasketData { public string BuyerId { get; set; } - public List Items { get; set; } + public List Items { get; set; } = new List(); public BasketData() { @@ -16,7 +16,6 @@ public BasketData() public BasketData(string buyerId) { BuyerId = buyerId; - Items = new List(); } } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/OrderData.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/OrderData.cs index e87cc18f04..e63b453a4d 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/OrderData.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/OrderData.cs @@ -1,7 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models { @@ -28,6 +26,6 @@ public class OrderData public string Buyer { get; set; } - public List OrderItems { get; } = new List(); + public List OrderItems { get; } = new List(); } } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/OrderItemData.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/OrderItemData.cs index b0179e470c..023cf20e5c 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/OrderItemData.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/OrderItemData.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models +namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models { public class OrderItemData { diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/UpdateBasketItemsRequest.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/UpdateBasketItemsRequest.cs index 43cc81b897..35b3e76c08 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/UpdateBasketItemsRequest.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/UpdateBasketItemsRequest.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; +using System.Collections.Generic; namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models { diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/UpdateBasketRequest.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/UpdateBasketRequest.cs index cb22bf55f5..b377921be6 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/UpdateBasketRequest.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Models/UpdateBasketRequest.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; +using System.Collections.Generic; namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models { diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs index 44e13dd91c..fa1fc9ffe3 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs @@ -27,9 +27,6 @@ public BasketService(HttpClient httpClient, IOptions config, ILogger public async Task GetById(string id) { - - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ GetById @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); @@ -38,24 +35,21 @@ public async Task GetById(string id) httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; using (var httpClient = new HttpClient(httpClientHandler)) { - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Http2UnencryptedSupport disable @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + //httpClient.BaseAddress = new Uri("http://10.0.75.1:5580"); + httpClient.BaseAddress = new Uri(_urls.GrpcBasket); - httpClient.BaseAddress = new Uri("http://localhost:5580"); - - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ {httpClient.BaseAddress} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ " + httpClient.BaseAddress, httpClient.BaseAddress); + _logger.LogDebug("Creating grpc client for basket {@httpClient.BaseAddress} ", httpClient.BaseAddress); var client = GrpcClient.Create(httpClient); - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ client create @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + _logger.LogDebug("grpc client created, request = {@id}", id); try { var response = await client.GetBasketByIdAsync(new BasketRequest { Id = id }); - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ call grpc server @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); - _logger.LogInformation("############## DATA: {@a}", response.Buyerid); - _logger.LogInformation("############## DATA:response {@response}", response); + _logger.LogDebug("grpc response {@response}", response); return MapToBasketData(response); } @@ -66,11 +60,7 @@ public async Task GetById(string id) } } - return null; // temp - // var data = await _apiClient.GetStringAsync(_urls.Basket + UrlsConfig.BasketOperations.GetItemById(id)); - // var basket = !string.IsNullOrEmpty(data) ? JsonConvert.DeserializeObject(data) : null; - - // return basket; + return null; } public async Task UpdateAsync(BasketData currentBasket) diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/IOrderingService.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/IOrderingService.cs new file mode 100644 index 0000000000..5518a4bbfc --- /dev/null +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/IOrderingService.cs @@ -0,0 +1,10 @@ +using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models; +using System.Threading.Tasks; + +namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Services +{ + public interface IOrderingService + { + Task GetOrderDraftAsync(BasketData basketData); + } +} \ No newline at end of file diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/OrderingService.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/OrderingService.cs new file mode 100644 index 0000000000..f1e56c2ef4 --- /dev/null +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/OrderingService.cs @@ -0,0 +1,113 @@ +using Grpc.Net.Client; +using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Config; +using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using System; +using System.Linq; +using System.Net.Http; +using System.Threading.Tasks; +using GrpcOrdering; +using Grpc.Core; + +namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Services +{ + public class OrderingService : IOrderingService + { + private readonly HttpClient _httpClient; + private readonly UrlsConfig _urls; + private readonly ILogger _logger; + + public OrderingService(HttpClient httpClient, IOptions config, ILogger logger) + { + _httpClient = httpClient; + _urls = config.Value; + _logger = logger; + } + + public async Task GetOrderDraftAsync(BasketData basketData) + { + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); + + using (var httpClientHandler = new HttpClientHandler()) + { + httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; + using (var httpClient = new HttpClient(httpClientHandler)) + { + httpClient.BaseAddress = new Uri(_urls.GrpcOrdering); + + _logger.LogDebug(" Creating grpc client for ordering {@httpClient.BaseAddress}", httpClient.BaseAddress); + + var client = GrpcClient.Create(httpClient); + + _logger.LogDebug(" grpc client created, basketData={@basketData}", basketData); + + try + { + + var command = MapToOrderDraftCommand(basketData); + var response = await client.CreateOrderDraftFromBasketDataAsync(command); + + _logger.LogDebug(" grpc response: {@response}", response); + + return MapToResponse(response); + } + catch (RpcException e) + { + _logger.LogError($"Error calling via grpc to ordering: {e.Status} - {e.Message}"); + } + } + } + + return null; + } + + private OrderData MapToResponse(GrpcOrdering.OrderDraftDTO orderDraft) + { + if (orderDraft == null) + { + return null; + } + + var data = new OrderData + { + Total = (decimal)orderDraft.Total, + }; + + orderDraft.OrderItems.ToList().ForEach(o => data.OrderItems.Add(new OrderItemData + { + Discount = (decimal)o.Discount, + PictureUrl = o.PictureUrl, + ProductId = o.ProductId, + ProductName = o.ProductName, + UnitPrice = (decimal)o.UnitPrice, + Units = o.Units, + })); + + return data; + } + + private CreateOrderDraftCommand MapToOrderDraftCommand(BasketData basketData) + { + var command = new CreateOrderDraftCommand + { + BuyerId = basketData.BuyerId, + }; + + basketData.Items.ForEach(i => command.Items.Add(new BasketItem + { + Id = i.Id, + OldUnitPrice = (double)i.OldUnitPrice, + PictureUrl = i.PictureUrl, + ProductId = i.ProductId, + ProductName = i.ProductName, + Quantity = i.Quantity, + UnitPrice = (double)i.UnitPrice, + })); + + return command; + } + + } +} diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index 8d7f7dbbe7..f08514177e 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -131,11 +131,9 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, { Implicit = new OpenApiOAuthFlow() { - // AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), - // TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), - - AuthorizationUrl = new Uri($"http://localhost:5105/connect/authorize"), - TokenUrl = new Uri($"http://localhost:5105/connect/token"), + AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), + Scopes = new Dictionary() { { "mobileshoppingagg", "Shopping Aggregator for Mobile Clients" } @@ -188,7 +186,8 @@ public static IServiceCollection AddHttpServices(this IServiceCollection service services.AddSingleton(); //register http services - services.AddHttpClient() + services + .AddHttpClient() .AddHttpMessageHandler() .AddPolicyHandler(GetRetryPolicy()) .AddPolicyHandler(GetCircuitBreakerPolicy()) @@ -204,6 +203,11 @@ public static IServiceCollection AddHttpServices(this IServiceCollection service .AddPolicyHandler(GetCircuitBreakerPolicy()) .AddDevspacesSupport(); + services.AddHttpClient() + .AddPolicyHandler(GetRetryPolicy()) + .AddPolicyHandler(GetCircuitBreakerPolicy()) + .AddDevspacesSupport(); + return services; } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.localhost.json b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.localhost.json index 91bbf5f87d..f14ca24b99 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.localhost.json +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.localhost.json @@ -3,7 +3,9 @@ "basket": "http://localhost:55105", "catalog": "http://localhost:55101", "orders": "http://localhost:55102", - "identity": "http://localhost:55105" + "identity": "http://localhost:55105", + "grpcBasket": "http://localhost:5580", + "grpcOrdering": "http://localhost:5581" }, "IdentityUrlExternal": "http://localhost:5105", "IdentityUrl": "http://localhost:5105", diff --git a/src/Services/Ordering/Ordering.API/Grpc/OrderingService.cs b/src/Services/Ordering/Ordering.API/Grpc/OrderingService.cs new file mode 100644 index 0000000000..af59420e73 --- /dev/null +++ b/src/Services/Ordering/Ordering.API/Grpc/OrderingService.cs @@ -0,0 +1,92 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.Logging; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions; +using MediatR; +using Grpc.Core; +using AppCommand = Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands; +using ApiModels = Ordering.API.Application.Models; +using Google.Protobuf.Collections; +using System.Collections.Generic; + +namespace GrpcOrdering +{ + public class OrderingService : OrderingGrpc.OrderingGrpcBase + { + private readonly IMediator _mediator; + private readonly ILogger _logger; + + public OrderingService(IMediator mediator, ILogger logger) + { + _mediator = mediator; + _logger = logger; + } + + public override async Task CreateOrderDraftFromBasketData(CreateOrderDraftCommand createOrderDraftCommand, ServerCallContext context) + { + _logger.LogInformation($"Begin grpc call from method {context.Method} for ordering get order draft {createOrderDraftCommand}"); + _logger.LogInformation( + "----- Sending command: {CommandName} - {IdProperty}: {CommandId} ({@Command})", + createOrderDraftCommand.GetGenericTypeName(), + nameof(createOrderDraftCommand.BuyerId), + createOrderDraftCommand.BuyerId, + createOrderDraftCommand); + + var command = new AppCommand.CreateOrderDraftCommand( + createOrderDraftCommand.BuyerId, + this.MapBasketItems(createOrderDraftCommand.Items)); + + + var data = await _mediator.Send(command); + + if (data != null) + { + context.Status = new Status(StatusCode.OK, $" ordering get order draft {createOrderDraftCommand} do exist"); + + return this.MapResponse(data); + } + else + { + context.Status = new Status(StatusCode.NotFound, $" ordering get order draft {createOrderDraftCommand} do not exist"); + } + + return new OrderDraftDTO(); + } + + public OrderDraftDTO MapResponse(AppCommand.OrderDraftDTO order) + { + var result = new OrderDraftDTO() + { + Total = (double)order.Total, + }; + + order.OrderItems.ToList().ForEach(i => result.OrderItems.Add(new OrderItemDTO() + { + Discount = (double)i.Discount, + PictureUrl = i.PictureUrl, + ProductId = i.ProductId, + ProductName = i.ProductName, + UnitPrice = (double)i.UnitPrice, + Units = i.Units, + })); + + return result; + } + + public IEnumerable MapBasketItems(RepeatedField items) + { + return items.Select(x => new ApiModels.BasketItem() + { + Id = x.Id, + ProductId = x.ProductId, + ProductName = x.ProductName, + UnitPrice = (decimal)x.UnitPrice, + OldUnitPrice = (decimal)x.OldUnitPrice, + Quantity = x.Quantity, + PictureUrl = x.PictureUrl, + }); + } + } +} diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index 1b3c36daa4..fdd681eab9 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -19,6 +19,13 @@ + + + + + + + @@ -30,7 +37,10 @@ - + + + + diff --git a/src/Services/Ordering/Ordering.API/Program.cs b/src/Services/Ordering/Ordering.API/Program.cs index 50f53360cc..899871b3de 100644 --- a/src/Services/Ordering/Ordering.API/Program.cs +++ b/src/Services/Ordering/Ordering.API/Program.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF; using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure; using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure; @@ -10,6 +11,7 @@ using Serilog; using System; using System.IO; +using System.Net; namespace Microsoft.eShopOnContainers.Services.Ordering.API { @@ -61,6 +63,20 @@ public static int Main(string[] args) private static IWebHost BuildWebHost(IConfiguration configuration, string[] args) => WebHost.CreateDefaultBuilder(args) .CaptureStartupErrors(false) + .ConfigureKestrel(options => + { + var ports = GetDefinedPorts(configuration); + options.Listen(IPAddress.Any, ports.httpPort, listenOptions => + { + listenOptions.Protocols = HttpProtocols.Http1AndHttp2; + }); + + options.Listen(IPAddress.Any, ports.grpcPort, listenOptions => + { + listenOptions.Protocols = HttpProtocols.Http2; + }); + + }) .UseStartup() .UseApplicationInsights() .UseContentRoot(Directory.GetCurrentDirectory()) @@ -102,5 +118,11 @@ private static IConfiguration GetConfiguration() return builder.Build(); } + private static (int httpPort, int grpcPort) GetDefinedPorts(IConfiguration config) + { + var grpcPort = config.GetValue("GRPC_PORT", 5001); + var port = config.GetValue("PORT", 80); + return (port, grpcPort); + } } } \ No newline at end of file diff --git a/src/Services/Ordering/Ordering.API/Proto/ordering.proto b/src/Services/Ordering/Ordering.API/Proto/ordering.proto new file mode 100644 index 0000000000..988f3465bb --- /dev/null +++ b/src/Services/Ordering/Ordering.API/Proto/ordering.proto @@ -0,0 +1,39 @@ +syntax = "proto3"; + +option csharp_namespace = "GrpcOrdering"; + +package OrderingApi; + +service OrderingGrpc { + rpc CreateOrderDraftFromBasketData(CreateOrderDraftCommand) returns (OrderDraftDTO) {} +} + +message CreateOrderDraftCommand { + string buyerId = 1; + repeated BasketItem items = 2; +} + + +message BasketItem { + string id = 1; + string productId = 2; + string productName = 3; + double unitPrice = 4; + double oldUnitPrice = 5; + int32 quantity = 6; + string pictureUrl = 7; +} + +message OrderDraftDTO { + double total = 1; + repeated OrderItemDTO orderItems = 2; +} +message OrderItemDTO { + int32 productId = 1; + string productName = 2; + double unitPrice = 3; + double discount = 4; + int32 units = 5; + string pictureUrl = 6; +} + diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index fca490f285..09f4c379bd 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -7,12 +7,14 @@ using global::Ordering.API.Application.IntegrationEvents.Events; using global::Ordering.API.Infrastructure.Filters; using global::Ordering.API.Infrastructure.Middlewares; + using GrpcOrdering; using HealthChecks.UI.Client; using Infrastructure.AutofacModules; using Infrastructure.Filters; using Infrastructure.Services; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.HealthChecks; + using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.ServiceBus; using Microsoft.EntityFrameworkCore; @@ -34,6 +36,7 @@ using System.Collections.Generic; using System.Data.Common; using System.IdentityModel.Tokens.Jwt; + using System.IO; using System.Reflection; public class Startup @@ -47,7 +50,13 @@ public Startup(IConfiguration configuration) public virtual IServiceProvider ConfigureServices(IServiceCollection services) { - services.AddApplicationInsights(Configuration) + services + .AddGrpc(options => + { + options.EnableDetailedErrors = true; + }) + .Services + .AddApplicationInsights(Configuration) .AddCustomMvc() .AddHealthChecks(Configuration) .AddCustomDbContext(Configuration) @@ -68,7 +77,7 @@ public virtual IServiceProvider ConfigureServices(IServiceCollection services) } - public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { //loggerFactory.AddAzureWebAppDiagnostics(); //loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); @@ -87,8 +96,23 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) app.UseEndpoints(endpoints => { + endpoints.MapGrpcService(); endpoints.MapDefaultControllerRoute(); endpoints.MapControllers(); + endpoints.MapGet("/_proto/", async ctx => + { + ctx.Response.ContentType = "text/plain"; + using var fs = new FileStream(Path.Combine(env.ContentRootPath, "Proto", "basket.proto"), FileMode.Open, FileAccess.Read); + using var sr = new StreamReader(fs); + while (!sr.EndOfStream) + { + var line = await sr.ReadLineAsync(); + if (line != "/* >>" || line != "<< */") + { + await ctx.Response.WriteAsync(line); + } + } + }); endpoints.MapHealthChecks("/hc", new HealthCheckOptions() { Predicate = _ => true, From e415f2a767a71a4455cd2b81c95a54baff96537b Mon Sep 17 00:00:00 2001 From: ericuss Date: Tue, 27 Aug 2019 15:08:39 +0200 Subject: [PATCH 065/149] migrate web bff to 3.0 and apply grcp in order controller --- docker-compose.override.yml | 4 +- .../Mobile.Shopping.HttpAggregator.csproj | 2 +- .../Mobile.Bff.Shopping/aggregator/Program.cs | 21 --- .../aggregator/Config/UrlsConfig.cs | 2 + .../Controllers/BasketController.cs | 12 +- .../aggregator/Controllers/OrderController.cs | 10 +- .../Web.Bff.Shopping/aggregator/Dockerfile | 4 +- .../Filters/AuthorizeCheckOperationFilter.cs | 19 ++- .../aggregator/Models/BasketData.cs | 3 +- .../Web.Bff.Shopping/aggregator/Program.cs | 1 + .../aggregator/Protos/basket.api | 34 ----- .../aggregator/Services/BasketService.cs | 126 +++++++++++------- .../aggregator/Services/IBasketService.cs | 2 +- .../aggregator/Services/IOrderingService.cs | 10 ++ .../aggregator/Services/OrderingService.cs | 113 ++++++++++++++++ .../Web.Bff.Shopping/aggregator/Startup.cs | 105 ++++++++------- .../Web.Shopping.HttpAggregator.csproj | 36 +++-- .../aggregator/appsettings.localhost.json | 4 +- src/_build/dependencies.props | 1 + 19 files changed, 321 insertions(+), 188 deletions(-) delete mode 100644 src/ApiGateways/Web.Bff.Shopping/aggregator/Protos/basket.api create mode 100644 src/ApiGateways/Web.Bff.Shopping/aggregator/Services/IOrderingService.cs create mode 100644 src/ApiGateways/Web.Bff.Shopping/aggregator/Services/OrderingService.cs diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 5c1a9082c4..1719fc18db 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -272,7 +272,7 @@ services: - MarketingUrlHC=http://marketing.api/hc - PaymentUrlHC=http://payment.api/hc - LocationUrlHC=http://locations.api/hc - - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 + - IdentityUrlExternal=http://10.0.75.1:5105 ports: - "5203:80" volumes: @@ -305,6 +305,8 @@ services: - urls__catalog=http://catalog.api - urls__orders=http://ordering.api - urls__identity=http://identity.api + - urls__grpcBasket=http://10.0.75.1:5580 + - urls__grpcOrdering=http://10.0.75.1:5581 - CatalogUrlHC=http://catalog.api/hc - OrderingUrlHC=http://ordering.api/hc - IdentityUrlHC=http://identity.api/hc diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj index 40060ea291..80886821d8 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj @@ -19,7 +19,7 @@ - + diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Program.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Program.cs index 0dc91cbc01..f536ec19aa 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Program.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Program.cs @@ -32,20 +32,6 @@ public static IWebHost BuildWebHost(string[] args) => ReloadOnChange = false }); }) - .ConfigureKestrel(options => - { - var ports = GetDefinedPorts(_configuration); - - options.Listen(IPAddress.Any, ports.httpPort, listenOptions => - { - listenOptions.Protocols = HttpProtocols.Http1AndHttp2; - }); - - options.Listen(IPAddress.Any, ports.grpcPort, listenOptions => - { - listenOptions.Protocols = HttpProtocols.Http2; - }); - }) .UseStartup() .UseSerilog((builderContext, config) => { @@ -67,12 +53,5 @@ private static IConfiguration GetConfiguration() return builder.Build(); } - - private static (int httpPort, int grpcPort) GetDefinedPorts(IConfiguration config) - { - var grpcPort = config.GetValue("GRPC_PORT", 5001); - var port = config.GetValue("PORT", 80); - return (port, grpcPort); - } } } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Config/UrlsConfig.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Config/UrlsConfig.cs index 6bf502fdc5..0f7a134836 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Config/UrlsConfig.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Config/UrlsConfig.cs @@ -29,5 +29,7 @@ public class OrdersOperations public string Basket { get; set; } public string Catalog { get; set; } public string Orders { get; set; } + public string GrpcBasket { get; set; } + public string GrpcOrdering { get; set; } } } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs index 2fefb9d8a3..a3be376117 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs @@ -31,7 +31,7 @@ public BasketController(ICatalogService catalogService, IBasketService basketSer [ProducesResponseType(typeof(BasketData), (int)HttpStatusCode.OK)] public async Task> UpdateAllBasketAsync([FromBody] UpdateBasketRequest data) { - Log.Information("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ UpdateAllBasketAsync @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + Log.Debug("UpdateAllBasketAsync"); if (data.Items == null || !data.Items.Any()) { @@ -41,10 +41,12 @@ public async Task> UpdateAllBasketAsync([FromBody] Upda // Retrieve the current basket Log.Information("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ GetByIdAsync @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); - var basket = await _basket.GetByIdAsync(data.BuyerId) ?? new BasketData(data.BuyerId); - Log.Information("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ basket @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + var basket = await _basket.GetById(data.BuyerId) ?? new BasketData(data.BuyerId); + + Log.Debug("get basket by id response={@response}", basket); var catalogItems = await _catalog.GetCatalogItemsAsync(data.Items.Select(x => x.ProductId)); + Log.Debug("get catalog items response={@response}", catalogItems); foreach (var bitem in data.Items) { @@ -82,7 +84,7 @@ public async Task> UpdateQuantitiesAsync([FromBody] Upd } // Retrieve the current basket - var currentBasket = await _basket.GetByIdAsync(data.BasketId); + var currentBasket = await _basket.GetById(data.BasketId); if (currentBasket == null) { return BadRequest($"Basket with id {data.BasketId} not found."); @@ -122,7 +124,7 @@ public async Task AddBasketItemAsync([FromBody] AddBasketItemReque //item.PictureUri = // Step 2: Get current basket status - var currentBasket = (await _basket.GetByIdAsync(data.BasketId)) ?? new BasketData(data.BasketId); + var currentBasket = (await _basket.GetById(data.BasketId)) ?? new BasketData(data.BasketId); // Step 3: Search if exist product into basket var product = currentBasket.Items.SingleOrDefault(i => i.ProductId == item.Id.ToString()); diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/OrderController.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/OrderController.cs index de3e4cc555..4b88c45b66 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/OrderController.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/OrderController.cs @@ -16,11 +16,11 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Controllers public class OrderController : ControllerBase { private readonly IBasketService _basketService; - private readonly IOrderApiClient _orderClient; - public OrderController(IBasketService basketService, IOrderApiClient orderClient) + private readonly IOrderingService _orderingService; + public OrderController(IBasketService basketService, IOrderingService orderingService) { _basketService = basketService; - _orderClient = orderClient; + _orderingService = orderingService; } [Route("draft/{basketId}")] @@ -34,14 +34,14 @@ public async Task> GetOrderDraftAsync(string basketId) return BadRequest("Need a valid basketid"); } // Get the basket data and build a order draft based on it - var basket = await _basketService.GetByIdAsync(basketId); + var basket = await _basketService.GetById(basketId); if (basket == null) { return BadRequest($"No basket found for id {basketId}"); } - return await _orderClient.GetOrderDraftFromBasketAsync(basket); + return await _orderingService.GetOrderDraftAsync(basket); } } } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile index fbce2f0ab3..2a3b551a24 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY scripts scripts/ diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs index e93ec157cc..45c1911046 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Filters/AuthorizeCheckOperationFilter.cs @@ -1,7 +1,7 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Filters { using Microsoft.AspNetCore.Authorization; - using Swashbuckle.AspNetCore.Swagger; + using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; using System.Collections.Generic; using System.Linq; @@ -10,7 +10,7 @@ namespace Basket.API.Infrastructure.Filters { public class AuthorizeCheckOperationFilter : IOperationFilter { - public void Apply(Operation operation, OperationFilterContext context) + public void Apply(OpenApiOperation operation, OperationFilterContext context) { // Check for authorize attribute var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() || @@ -18,14 +18,19 @@ public void Apply(Operation operation, OperationFilterContext context) if (!hasAuthorize) return; - operation.Responses.TryAdd("401", new Response { Description = "Unauthorized" }); - operation.Responses.TryAdd("403", new Response { Description = "Forbidden" }); + operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" }); + operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" }); - operation.Security = new List>> + var oAuthScheme = new OpenApiSecurityScheme { - new Dictionary> + Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } + }; + + operation.Security = new List + { + new OpenApiSecurityRequirement { - { "oauth2", new [] { "Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator" } } + [ oAuthScheme ] = new [] { "Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator" } } }; } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Models/BasketData.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Models/BasketData.cs index d29afb5c62..34c170e081 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Models/BasketData.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Models/BasketData.cs @@ -6,7 +6,7 @@ public class BasketData { public string BuyerId { get; set; } - public List Items { get; set; } + public List Items { get; set; } = new List(); public BasketData() { @@ -16,7 +16,6 @@ public BasketData() public BasketData(string buyerId) { BuyerId = buyerId; - Items = new List(); } } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Program.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Program.cs index 6589719fa2..b601d67f29 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Program.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Program.cs @@ -33,5 +33,6 @@ public static IWebHost BuildWebHost(string[] args) => .WriteTo.Console(); }) .Build(); + } } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Protos/basket.api b/src/ApiGateways/Web.Bff.Shopping/aggregator/Protos/basket.api deleted file mode 100644 index 1fc22bc99b..0000000000 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Protos/basket.api +++ /dev/null @@ -1,34 +0,0 @@ -syntax = "proto3"; - -option csharp_namespace = "GrpcBasket"; - -package BasketApi; - -service Basket { - rpc GetBasketById(BasketRequest) returns (CustomerBasketResponse); - rpc UpdateBasket(CustomerBasketRequest) returns (CustomerBasketResponse); -} - -message BasketRequest { - string id = 1; -} - -message CustomerBasketRequest { - string buyerid = 1; - repeated BasketItemResponse items = 2; -} - -message CustomerBasketResponse { - string buyerid = 1; - repeated BasketItemResponse items = 2; -} - -message BasketItemResponse { - string id = 1; - string productid = 2; - string productname = 3; - double unitprice = 4; - double oldunitprice = 5; - int32 quantity = 6; - string pictureurl = 7; -} \ No newline at end of file diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs index 92b96dec52..3e68816c19 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs @@ -5,91 +5,125 @@ using Newtonsoft.Json; using System.Net.Http; using System.Threading.Tasks; +using Grpc.Net.Client; +using System; +using System.Linq; +using GrpcBasket; +using Grpc.Core; namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services { public class BasketService : IBasketService { - private readonly HttpClient _apiClient; - private readonly ILogger _logger; + private readonly HttpClient _httpClient; private readonly UrlsConfig _urls; + private readonly ILogger _logger; - public BasketService(HttpClient httpClient,ILogger logger, IOptions config) + public BasketService(HttpClient httpClient, IOptions config, ILogger logger) { - _apiClient = httpClient; - _logger = logger; + _httpClient = httpClient; _urls = config.Value; + _logger = logger; } - public async Task GetByIdAsync(string id) + public async Task GetById(string id) { - - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ GetById @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); - using (var httpClientHandler = new HttpClientHandler()) + + using (var httpClientHandler = new HttpClientHandler()) { httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; using (var httpClient = new HttpClient(httpClientHandler)) { + //httpClient.BaseAddress = new Uri("http://10.0.75.1:5580"); + httpClient.BaseAddress = new Uri(_urls.GrpcBasket); - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Http2UnencryptedSupport disable @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); - - httpClient.BaseAddress = new Uri("http://localhost:5580"); + _logger.LogDebug("Creating grpc client for basket {@httpClient.BaseAddress} ", httpClient.BaseAddress); - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ {httpClient.BaseAddress} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", httpClient.BaseAddress); + var client = GrpcClient.Create(httpClient); - var client = GrpcClient.Create(httpClient); + _logger.LogDebug("grpc client created, request = {@id}", id); - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ client create @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + try + { - try{ + var response = await client.GetBasketByIdAsync(new BasketRequest { Id = id }); - var response = await client.GetBasketByIdAsync(new BasketRequest { Id = id }); - _logger.LogInformation("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ call grpc server @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + _logger.LogDebug("grpc response {@response}", response); - _logger.LogInformation("############## DATA: {@a}", response.Buyerid); - _logger.LogInformation("############## DATA:response {@response}", response); + return MapToBasketData(response); } catch (RpcException e) { - Console.WriteLine($"Error calling via grpc: {e.Status} - {e.Message}"); - _logger.logError($"Error calling via grpc: {e.Status} - {e.Message}"); - - } - - - //if (streaming.IsCompleted) - //{ - // _logger.LogInformation("############## DATA: {@a}", streaming.GetResult()); - //} - //var streaming = client.GetBasketById(new BasketRequest { Id = id }); + _logger.LogError($"Error calling via grpc: {e.Status} - {e.Message}"); + } + } + } + return null; + } - //var status = streaming.GetStatus(); + public async Task UpdateAsync(BasketData currentBasket) + { + _httpClient.BaseAddress = new Uri(_urls.Basket + UrlsConfig.BasketOperations.UpdateBasket()); - //if (status.StatusCode == Grpc.Core.StatusCode.OK) - //{ - // return null; - //} + var client = GrpcClient.Create(_httpClient); + var request = MapToCustomerBasketRequest(currentBasket); - return response; + await client.UpdateBasketAsync(request); + } - } - } + private BasketData MapToBasketData(CustomerBasketResponse customerBasketRequest) + { + if (customerBasketRequest == null) + { + return null; + } - // var data = await _apiClient.GetStringAsync(_urls.Basket + UrlsConfig.BasketOperations.GetItemById(id)); - // var basket = !string.IsNullOrEmpty(data) ? JsonConvert.DeserializeObject(data) : null; + var map = new BasketData + { + BuyerId = customerBasketRequest.Buyerid + }; - // return basket; + customerBasketRequest.Items.ToList().ForEach(item => map.Items.Add(new BasketDataItem + { + Id = item.Id, + OldUnitPrice = (decimal)item.Oldunitprice, + PictureUrl = item.Pictureurl, + ProductId = item.Productid, + ProductName = item.Productname, + Quantity = item.Quantity, + UnitPrice = (decimal)item.Unitprice + })); + + return map; } - public async Task UpdateAsync(BasketData currentBasket) + private CustomerBasketRequest MapToCustomerBasketRequest(BasketData basketData) { - var basketContent = new StringContent(JsonConvert.SerializeObject(currentBasket), System.Text.Encoding.UTF8, "application/json"); + if (basketData == null) + { + return null; + } - await _apiClient.PostAsync(_urls.Basket + UrlsConfig.BasketOperations.UpdateBasket(), basketContent); + var map = new CustomerBasketRequest + { + Buyerid = basketData.BuyerId + }; + + basketData.Items.ToList().ForEach(item => map.Items.Add(new BasketItemResponse + { + Id = item.Id, + Oldunitprice = (double)item.OldUnitPrice, + Pictureurl = item.PictureUrl, + Productid = item.ProductId, + Productname = item.ProductName, + Quantity = item.Quantity, + Unitprice = (double)item.UnitPrice + })); + + return map; } } } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/IBasketService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/IBasketService.cs index 046ef753d4..fba539b7a8 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/IBasketService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/IBasketService.cs @@ -5,7 +5,7 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services { public interface IBasketService { - Task GetByIdAsync(string id); + Task GetById(string id); Task UpdateAsync(BasketData currentBasket); } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/IOrderingService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/IOrderingService.cs new file mode 100644 index 0000000000..a20520747f --- /dev/null +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/IOrderingService.cs @@ -0,0 +1,10 @@ +using Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Models; +using System.Threading.Tasks; + +namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services +{ + public interface IOrderingService + { + Task GetOrderDraftAsync(BasketData basketData); + } +} \ No newline at end of file diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/OrderingService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/OrderingService.cs new file mode 100644 index 0000000000..bba3b851cf --- /dev/null +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/OrderingService.cs @@ -0,0 +1,113 @@ +using Grpc.Net.Client; +using Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Config; +using Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Models; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using System; +using System.Linq; +using System.Net.Http; +using System.Threading.Tasks; +using GrpcOrdering; +using Grpc.Core; + +namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services +{ + public class OrderingService : IOrderingService + { + private readonly HttpClient _httpClient; + private readonly UrlsConfig _urls; + private readonly ILogger _logger; + + public OrderingService(HttpClient httpClient, IOptions config, ILogger logger) + { + _httpClient = httpClient; + _urls = config.Value; + _logger = logger; + } + + public async Task GetOrderDraftAsync(BasketData basketData) + { + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); + + using (var httpClientHandler = new HttpClientHandler()) + { + httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; + using (var httpClient = new HttpClient(httpClientHandler)) + { + httpClient.BaseAddress = new Uri(_urls.GrpcOrdering); + + _logger.LogDebug(" Creating grpc client for ordering {@httpClient.BaseAddress}", httpClient.BaseAddress); + + var client = GrpcClient.Create(httpClient); + + _logger.LogDebug(" grpc client created, basketData={@basketData}", basketData); + + try + { + + var command = MapToOrderDraftCommand(basketData); + var response = await client.CreateOrderDraftFromBasketDataAsync(command); + + _logger.LogDebug(" grpc response: {@response}", response); + + return MapToResponse(response); + } + catch (RpcException e) + { + _logger.LogError($"Error calling via grpc to ordering: {e.Status} - {e.Message}"); + } + } + } + + return null; + } + + private OrderData MapToResponse(GrpcOrdering.OrderDraftDTO orderDraft) + { + if (orderDraft == null) + { + return null; + } + + var data = new OrderData + { + Total = (decimal)orderDraft.Total, + }; + + orderDraft.OrderItems.ToList().ForEach(o => data.OrderItems.Add(new OrderItemData + { + Discount = (decimal)o.Discount, + PictureUrl = o.PictureUrl, + ProductId = o.ProductId, + ProductName = o.ProductName, + UnitPrice = (decimal)o.UnitPrice, + Units = o.Units, + })); + + return data; + } + + private CreateOrderDraftCommand MapToOrderDraftCommand(BasketData basketData) + { + var command = new CreateOrderDraftCommand + { + BuyerId = basketData.BuyerId, + }; + + basketData.Items.ForEach(i => command.Items.Add(new BasketItem + { + Id = i.Id, + OldUnitPrice = (double)i.OldUnitPrice, + PictureUrl = i.PictureUrl, + ProductId = i.ProductId, + ProductName = i.ProductName, + Quantity = i.Quantity, + UnitPrice = (double)i.UnitPrice, + })); + + return command; + } + + } +} diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index 7c18f10ec2..9613fe4629 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -14,6 +14,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; +using Microsoft.OpenApi.Models; using Polly; using Polly.Extensions.Http; using Swashbuckle.AspNetCore.Swagger; @@ -62,19 +63,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UsePathBase(pathBase); } - app.UseHealthChecks("/hc", new HealthCheckOptions() - { - Predicate = _ => true, - ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse - }); - - app.UseHealthChecks("/liveness", new HealthCheckOptions - { - Predicate = r => r.Name.Contains("self") - }); - - app.UseCors("CorsPolicy"); - if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); @@ -85,18 +73,37 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseHsts(); } - app.UseAuthentication(); + app.UseCors("CorsPolicy"); app.UseHttpsRedirection(); - app.UseMvc(); - app.UseSwagger() - .UseSwaggerUI(c => + app.UseSwagger().UseSwaggerUI(c => + { + c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Purchase BFF V1"); + + c.OAuthClientId("webshoppingaggswaggerui"); + c.OAuthClientSecret(string.Empty); + c.OAuthRealm(string.Empty); + c.OAuthAppName("web shopping bff Swagger UI"); + }); + + app.UseRouting(); + app.UseAuthentication(); + app.UseAuthorization(); + + app.UseEndpoints(endpoints => + { + endpoints.MapDefaultControllerRoute(); + endpoints.MapControllers(); + endpoints.MapHealthChecks("/hc", new HealthCheckOptions() + { + Predicate = _ => true, + ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse + }); + endpoints.MapHealthChecks("/liveness", new HealthCheckOptions { - c.SwaggerEndpoint($"{ (!string.IsNullOrEmpty(pathBase) ? pathBase : string.Empty) }/swagger/v1/swagger.json", "Purchase BFF V1"); - //c.ConfigureOAuth2("Microsoft.eShopOnContainers.Web.Shopping.HttpAggregatorwaggerui", "", "", "Purchase BFF Swagger UI"); - c.OAuthClientId("webshoppingaggswaggerui"); - c.OAuthAppName("web shopping bff Swagger UI"); + Predicate = r => r.Name.Contains("self") }); + }); } } @@ -104,29 +111,20 @@ public static class ServiceCollectionExtensions { public static IServiceCollection AddCustomAuthentication(this IServiceCollection services, IConfiguration configuration) { - JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); + JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub"); + var identityUrl = configuration.GetValue("urls:identity"); services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; - }).AddJwtBearer(options => + }) + .AddJwtBearer(options => { options.Authority = identityUrl; options.RequireHttpsMetadata = false; options.Audience = "webshoppingagg"; - options.Events = new JwtBearerEvents() - { - OnAuthenticationFailed = async ctx => - { - int i = 0; - }, - OnTokenValidated = async ctx => - { - int i = 0; - } - }; }); return services; @@ -137,30 +135,35 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, services.AddOptions(); services.Configure(configuration.GetSection("urls")); - services.AddMvc() - .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); + services.AddControllers() + .AddNewtonsoftJson(); services.AddSwaggerGen(options => { options.DescribeAllEnumsAsStrings(); - options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info + + options.SwaggerDoc("v1", new OpenApiInfo { - Title = "Shopping Aggregator for Web Clients", + Title = "Shopping Aggregator for Mobile Clients", Version = "v1", - Description = "Shopping Aggregator for Web Clients", - TermsOfService = "Terms Of Service" + Description = "Shopping Aggregator for Mobile Clients" }); - options.AddSecurityDefinition("oauth2", new OAuth2Scheme + options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { - Type = "oauth2", - Flow = "implicit", - AuthorizationUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize", - TokenUrl = $"{configuration.GetValue("IdentityUrlExternal")}/connect/token", - Scopes = new Dictionary() + Type = SecuritySchemeType.OAuth2, + Flows = new OpenApiOAuthFlows() { - { "webshoppingagg", "Shopping Aggregator for Web Clients" }, - { "basket", "basket api" } + Implicit = new OpenApiOAuthFlow() + { + AuthorizationUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/authorize"), + TokenUrl = new Uri($"{configuration.GetValue("IdentityUrlExternal")}/connect/token"), + + Scopes = new Dictionary() + { + { "webshoppingagg", "Shopping Aggregator for Web Clients" } + } + } } }); @@ -204,6 +207,12 @@ public static IServiceCollection AddApplicationServices(this IServiceCollection .AddPolicyHandler(GetCircuitBreakerPolicy()) .AddDevspacesSupport(); + services.AddHttpClient() + .AddHttpMessageHandler() + .AddPolicyHandler(GetRetryPolicy()) + .AddPolicyHandler(GetCircuitBreakerPolicy()) + .AddDevspacesSupport(); + return services; } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj index ed51b48601..b712ad2709 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj @@ -33,10 +33,12 @@ - netcoreapp2.2 + $(NetCoreTargetVersion) Web.Shopping.HttpAggregator Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator ..\..\..\docker-compose.dcproj + false + true $(LangVersion) @@ -45,26 +47,32 @@ - - - - - - - - - - - - + + + - + + + + + + + + + + + + + + + + diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/appsettings.localhost.json b/src/ApiGateways/Web.Bff.Shopping/aggregator/appsettings.localhost.json index 57b5e894dd..ad33f34143 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/appsettings.localhost.json +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/appsettings.localhost.json @@ -3,6 +3,8 @@ "basket": "http://localhost:55105", "catalog": "http://localhost:55101", "orders": "http://localhost:55102", - "identity": "http://localhost:55105" + "identity": "http://localhost:55105", + "grpcBasket": "http://localhost:5580", + "grpcOrdering": "http://localhost:5581" } } diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index c166192517..16cf2f2b5a 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -19,6 +19,7 @@ 0.1.22-pre3 0.1.22-pre3 3.9.1 + 1.22.0 2.23.0 0.1.22-pre2 From 67af71d2ce4f6e9944430f12616794f4aa1a0c38 Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 28 Aug 2019 09:13:02 +0200 Subject: [PATCH 066/149] Add proto to catalog --- docker-compose.override.yml | 1 + .../aggregator/Config/UrlsConfig.cs | 2 + .../aggregator/Services/CatalogService.cs | 36 +++++- .../aggregator/Services/OrderingService.cs | 6 +- .../aggregator/appsettings.localhost.json | 1 + .../Catalog.API/Grpc/CatalogService.cs | 119 +++++++++++++++++- src/Services/Catalog/Catalog.API/Program.cs | 2 +- .../Catalog/Catalog.API/Proto/catalog.proto | 25 +++- 8 files changed, 178 insertions(+), 14 deletions(-) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 1719fc18db..a8fce70bad 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -306,6 +306,7 @@ services: - urls__orders=http://ordering.api - urls__identity=http://identity.api - urls__grpcBasket=http://10.0.75.1:5580 + - urls__grpcCatalog=http://10.0.75.1:9101 - urls__grpcOrdering=http://10.0.75.1:5581 - CatalogUrlHC=http://catalog.api/hc - OrderingUrlHC=http://ordering.api/hc diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Config/UrlsConfig.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Config/UrlsConfig.cs index 0f7a134836..dccccab358 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Config/UrlsConfig.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Config/UrlsConfig.cs @@ -11,6 +11,7 @@ public class CatalogOperations { // grpc call under REST must go trough port 80 public static string GetItemById(int id) => $"/api/v1/catalog/items/{id}"; + public static string GetItemById(string ids) => $"/api/v1/catalog/items/ids/{string.Join(',', ids)}"; // REST call standard must go through port 5000 public static string GetItemsById(IEnumerable ids) => $":5000/api/v1/catalog/items?ids={string.Join(',', ids)}"; } @@ -30,6 +31,7 @@ public class OrdersOperations public string Catalog { get; set; } public string Orders { get; set; } public string GrpcBasket { get; set; } + public string GrpcCatalog { get; set; } public string GrpcOrdering { get; set; } } } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs index 4c98c031e0..663baa1cf8 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs @@ -6,6 +6,11 @@ using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; +using CatalogApi; +using Grpc.Net.Client; +using System; +using static CatalogApi.Catalog; +using System.Linq; namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services { @@ -24,17 +29,38 @@ public CatalogService(HttpClient httpClient, ILogger logger, IOp public async Task GetCatalogItemAsync(int id) { - var uri=_urls.Catalog + UrlsConfig.CatalogOperations.GetItemById(id); - var stringContent = await _httpClient.GetStringAsync(uri); + _httpClient.BaseAddress = new Uri(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemById(id)); - return JsonConvert.DeserializeObject(stringContent); + var client = GrpcClient.Create(_httpClient); + var request = new CatalogItemRequest { Id = id }; + var response = await client.GetItemByIdAsync(request); + + return MapToCatalogItemResponse(response); } public async Task> GetCatalogItemsAsync(IEnumerable ids) { - var stringContent = await _httpClient.GetStringAsync(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemsById(ids)); + _httpClient.BaseAddress = new Uri(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemsById(ids)); + + var client = GrpcClient.Create(_httpClient); + var request = new CatalogItemsRequest { Ids = string.Join(",", ids), PageIndex = 1, PageSize = 10 }; + var response = await client.GetItemsByIdsAsync(request); + return response.Data.Select(this.MapToCatalogItemResponse); + //var stringContent = await _httpClient.GetStringAsync(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemsById(ids)); + //var catalogItems = JsonConvert.DeserializeObject(stringContent); - return JsonConvert.DeserializeObject(stringContent); + //return catalogItems; + } + + private CatalogItem MapToCatalogItemResponse(CatalogItemResponse catalogItemResponse) + { + return new CatalogItem + { + Id = catalogItemResponse.Id, + Name = catalogItemResponse.Name, + PictureUri = catalogItemResponse.PictureUri, + Price = (decimal)catalogItemResponse.Price + }; } } } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/OrderingService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/OrderingService.cs index bba3b851cf..1814e2d102 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/OrderingService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/OrderingService.cs @@ -45,13 +45,12 @@ public async Task GetOrderDraftAsync(BasketData basketData) try { - var command = MapToOrderDraftCommand(basketData); var response = await client.CreateOrderDraftFromBasketDataAsync(command); _logger.LogDebug(" grpc response: {@response}", response); - return MapToResponse(response); + return MapToResponse(response, basketData); } catch (RpcException e) { @@ -63,7 +62,7 @@ public async Task GetOrderDraftAsync(BasketData basketData) return null; } - private OrderData MapToResponse(GrpcOrdering.OrderDraftDTO orderDraft) + private OrderData MapToResponse(GrpcOrdering.OrderDraftDTO orderDraft, BasketData basketData) { if (orderDraft == null) { @@ -72,6 +71,7 @@ private OrderData MapToResponse(GrpcOrdering.OrderDraftDTO orderDraft) var data = new OrderData { + Buyer = basketData.BuyerId, Total = (decimal)orderDraft.Total, }; diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/appsettings.localhost.json b/src/ApiGateways/Web.Bff.Shopping/aggregator/appsettings.localhost.json index ad33f34143..57c5afc348 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/appsettings.localhost.json +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/appsettings.localhost.json @@ -5,6 +5,7 @@ "orders": "http://localhost:55102", "identity": "http://localhost:55105", "grpcBasket": "http://localhost:5580", + "grpcCatalog": "http://localhost:81", "grpcOrdering": "http://localhost:5581" } } diff --git a/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs b/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs index 97f40240fa..b25d3b1038 100644 --- a/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs +++ b/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs @@ -8,6 +8,7 @@ using Microsoft.eShopOnContainers.Services.Catalog.API; using Microsoft.eShopOnContainers.Services.Catalog.API.Infrastructure; using Microsoft.eShopOnContainers.Services.Catalog.API.Model; +using Microsoft.eShopOnContainers.Services.Catalog.API.ViewModel; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using static CatalogApi.Catalog; @@ -26,10 +27,10 @@ public CatalogService(CatalogContext dbContext, IOptions settin _logger = logger; } - public override async Task GetItemById(CatalogItemRequest request, ServerCallContext context) + public override async Task GetItemById(CatalogItemRequest request, ServerCallContext context) { _logger.LogInformation($"Begin grpc call CatalogService.GetItemById for product id {request.Id}"); - if (request.Id <=0) + if (request.Id <= 0) { context.Status = new Status(StatusCode.FailedPrecondition, $"Id must be > 0 (received {request.Id})"); return null; @@ -60,5 +61,119 @@ public override async Task GetItemById(CatalogItemRequest r context.Status = new Status(StatusCode.NotFound, $"Product with id {request.Id} do not exist"); return null; } + + public override async Task GetItemsByIds(CatalogItemsRequest request, ServerCallContext context) + { + if (!string.IsNullOrEmpty(request.Ids)) + { + var items = await GetItemsByIdsAsync(request.Ids); + + if (!items.Any()) + { + context.Status = new Status(StatusCode.NotFound, $"ids value invalid. Must be comma-separated list of numbers"); + } + context.Status = new Status(StatusCode.OK, string.Empty); + return this.MapToResponse(items); + } + + var totalItems = await _catalogContext.CatalogItems + .LongCountAsync(); + + var itemsOnPage = await _catalogContext.CatalogItems + .OrderBy(c => c.Name) + .Skip(request.PageSize * request.PageIndex) + .Take(request.PageSize) + .ToListAsync(); + + /* The "awesome" fix for testing Devspaces */ + + /* + foreach (var pr in itemsOnPage) { + pr.Name = "Awesome " + pr.Name; + } + + */ + + itemsOnPage = ChangeUriPlaceholder(itemsOnPage); + + var model = this.MapToResponse(itemsOnPage, totalItems, request.PageIndex, request.PageSize); + context.Status = new Status(StatusCode.OK, string.Empty); + + return model; + } + + private PaginatedItemsResponse MapToResponse(List items) + { + return this.MapToResponse(items, items.Count(), 1, items.Count()); + } + + private PaginatedItemsResponse MapToResponse(List items, long count, int pageIndex, int pageSize) + { + var result = new PaginatedItemsResponse() + { + Count = count, + PageIndex = pageIndex, + PageSize = pageSize, + }; + + items.ForEach(i => result.Data.Add(new CatalogItemResponse() + { + AvailableStock = i.AvailableStock, + Description = i.Description, + Id = i.Id, + MaxStockThreshold = i.MaxStockThreshold, + Name = i.Name, + OnReorder = i.OnReorder, + PictureFileName = i.PictureFileName, + PictureUri = i.PictureUri, + RestockThreshold = i.RestockThreshold, + CatalogBrand = new CatalogApi.CatalogBrand() + { + Id = i.CatalogBrand.Id, + Name = i.CatalogBrand.Brand, + }, + CatalogType = new CatalogApi.CatalogType() + { + Id = i.CatalogType.Id, + Type = i.CatalogType.Type, + }, + Price = (double)i.Price, + })); + + return result; + } + + + private async Task> GetItemsByIdsAsync(string ids) + { + var numIds = ids.Split(',').Select(id => (Ok: int.TryParse(id, out int x), Value: x)); + + if (!numIds.All(nid => nid.Ok)) + { + return new List(); + } + + var idsToSelect = numIds + .Select(id => id.Value); + + var items = await _catalogContext.CatalogItems.Where(ci => idsToSelect.Contains(ci.Id)).ToListAsync(); + + items = ChangeUriPlaceholder(items); + + return items; + } + + private List ChangeUriPlaceholder(List items) + { + var baseUri = _settings.PicBaseUrl; + var azureStorageEnabled = _settings.AzureStorageEnabled; + + foreach (var item in items) + { + item.FillProductUrl(baseUri, azureStorageEnabled: azureStorageEnabled); + } + + return items; + } } } diff --git a/src/Services/Catalog/Catalog.API/Program.cs b/src/Services/Catalog/Catalog.API/Program.cs index d28ee5a547..f3198e7bdd 100644 --- a/src/Services/Catalog/Catalog.API/Program.cs +++ b/src/Services/Catalog/Catalog.API/Program.cs @@ -105,7 +105,7 @@ private static Serilog.ILogger CreateSerilogLogger(IConfiguration configuration) private static (int httpPort, int grpcPort) GetDefinedPorts(IConfiguration config) { - var grpcPort = config.GetValue("GRPC_PORT", 5001); + var grpcPort = config.GetValue("GRPC_PORT", 81); var port = config.GetValue("PORT", 80); return (port, grpcPort); } diff --git a/src/Services/Catalog/Catalog.API/Proto/catalog.proto b/src/Services/Catalog/Catalog.API/Proto/catalog.proto index 09d9c6e384..adeeb4b261 100644 --- a/src/Services/Catalog/Catalog.API/Proto/catalog.proto +++ b/src/Services/Catalog/Catalog.API/Proto/catalog.proto @@ -10,6 +10,11 @@ package CatalogApi; message CatalogItemRequest { int32 id = 1; } +message CatalogItemsRequest { + string ids = 1; + int32 pageSize = 2; + int32 pageIndex = 3; +} message CatalogItemResponse { int32 id = 1; @@ -36,12 +41,26 @@ message CatalogType { string type = 2; } +message PaginatedItemsResponse { + int32 pageIndex = 1; + int32 pageSize = 2; + int64 count = 3; + repeated CatalogItemResponse data = 4; +} + service Catalog { rpc GetItemById (CatalogItemRequest) returns (CatalogItemResponse) { - /* >> + /* >> option (google.api.http) = { get: "/api/v1/catalog/items/{id}" }; -<< */ - } + << */ + } + rpc GetItemsByIds (CatalogItemsRequest) returns (PaginatedItemsResponse) { + /* >> + option (google.api.http) = { + get: "/api/v1/catalog/items/ids/{ids}" + }; + << */ + } } \ No newline at end of file From 11fe3fc42c9c6254b35cd588c6700865e5c1f424 Mon Sep 17 00:00:00 2001 From: eiximenis Date: Wed, 28 Aug 2019 10:30:55 +0200 Subject: [PATCH 067/149] Moved some files to ./src/ --- .../docker-compose-external.override.yml | 0 .../docker-compose-external.yml | 0 .../docker-compose-tests.override.yml | 0 .../docker-compose-tests.yml | 20 ++--- .../docker-compose-windows.prod.yml | 0 .../docker-compose.dcproj | 0 .../docker-compose.elk.yml | 0 .../docker-compose.nobuild.yml | 0 .../docker-compose.override.windows.yml | 0 .../docker-compose.override.yml | 10 +-- .../docker-compose.prod.yml | 8 +- .../docker-compose.windows.yml | 0 docker-compose.yml => src/docker-compose.yml | 40 ++++----- .../eShopOnContainers-ServicesAndWebApps.sln | 84 +++++++++---------- 14 files changed, 81 insertions(+), 81 deletions(-) rename docker-compose-external.override.yml => src/docker-compose-external.override.yml (100%) rename docker-compose-external.yml => src/docker-compose-external.yml (100%) rename docker-compose-tests.override.yml => src/docker-compose-tests.override.yml (100%) rename docker-compose-tests.yml => src/docker-compose-tests.yml (82%) rename docker-compose-windows.prod.yml => src/docker-compose-windows.prod.yml (100%) rename docker-compose.dcproj => src/docker-compose.dcproj (100%) rename docker-compose.elk.yml => src/docker-compose.elk.yml (100%) rename docker-compose.nobuild.yml => src/docker-compose.nobuild.yml (100%) rename docker-compose.override.windows.yml => src/docker-compose.override.windows.yml (100%) rename docker-compose.override.yml => src/docker-compose.override.yml (97%) rename docker-compose.prod.yml => src/docker-compose.prod.yml (98%) rename docker-compose.windows.yml => src/docker-compose.windows.yml (100%) rename docker-compose.yml => src/docker-compose.yml (79%) rename eShopOnContainers-ServicesAndWebApps.sln => src/eShopOnContainers-ServicesAndWebApps.sln (96%) diff --git a/docker-compose-external.override.yml b/src/docker-compose-external.override.yml similarity index 100% rename from docker-compose-external.override.yml rename to src/docker-compose-external.override.yml diff --git a/docker-compose-external.yml b/src/docker-compose-external.yml similarity index 100% rename from docker-compose-external.yml rename to src/docker-compose-external.yml diff --git a/docker-compose-tests.override.yml b/src/docker-compose-tests.override.yml similarity index 100% rename from docker-compose-tests.override.yml rename to src/docker-compose-tests.override.yml diff --git a/docker-compose-tests.yml b/src/docker-compose-tests.yml similarity index 82% rename from docker-compose-tests.yml rename to src/docker-compose-tests.yml index 7794d1a0ee..440e3e5c00 100644 --- a/docker-compose-tests.yml +++ b/src/docker-compose-tests.yml @@ -17,7 +17,7 @@ services: image: ${REGISTRY:-eshop}/identity-api-test:${TAG:-latest} build: context: . - dockerfile: src/Services/Identity/Identity.API/Dockerfile + dockerfile: Services/Identity/Identity.API/Dockerfile depends_on: - sql-data-test @@ -25,7 +25,7 @@ services: image: ${REGISTRY:-eshop}/basket-api-test:${TAG:-latest} build: context: . - dockerfile: src/Services/Basket/Basket.API/Dockerfile + dockerfile: Services/Basket/Basket.API/Dockerfile target: functionaltest depends_on: - basket-data-test @@ -38,7 +38,7 @@ services: image: ${REGISTRY:-eshop}/basket-api-test:${TAG:-latest} build: context: . - dockerfile: src/Services/Basket/Basket.API/Dockerfile + dockerfile: Services/Basket/Basket.API/Dockerfile target: unittest depends_on: - basket-data-test @@ -51,7 +51,7 @@ services: image: ${REGISTRY:-eshop}/catalog-api-test:${TAG:-latest} build: context: . - dockerfile: src/Services/Catalog/Catalog.API/Dockerfile + dockerfile: Services/Catalog/Catalog.API/Dockerfile target: functionaltest depends_on: - sql-data-test @@ -63,7 +63,7 @@ services: image: ${REGISTRY:-eshop}/catalog-api-test:${TAG:-latest} build: context: . - dockerfile: src/Services/Catalog/Catalog.API/Dockerfile + dockerfile: Services/Catalog/Catalog.API/Dockerfile target: unittest depends_on: - sql-data-test @@ -75,7 +75,7 @@ services: image: ${REGISTRY:-eshop}/ordering-api-test:${TAG:-latest} build: context: . - dockerfile: src/Services/Ordering/Ordering.API/Dockerfile + dockerfile: Services/Ordering/Ordering.API/Dockerfile target: functionaltest depends_on: - sql-data-test @@ -87,7 +87,7 @@ services: image: ${REGISTRY:-eshop}/ordering-api-test:${TAG:-latest} build: context: . - dockerfile: src/Services/Ordering/Ordering.API/Dockerfile + dockerfile: Services/Ordering/Ordering.API/Dockerfile target: unittest depends_on: - sql-data-test @@ -99,7 +99,7 @@ services: image: ${REGISTRY:-eshop}/marketing-api-test:${TAG:-latest} build: context: . - dockerfile: src/Services/Marketing/Marketing.API/Dockerfile + dockerfile: Services/Marketing/Marketing.API/Dockerfile target: functionaltest depends_on: - sql-data-test @@ -113,7 +113,7 @@ services: image: ${REGISTRY:-eshop}/payment-api-test:${TAG:-latest} build: context: . - dockerfile: src/Services/Payment/Payment.API/Dockerfile + dockerfile: Services/Payment/Payment.API/Dockerfile depends_on: - rabbitmq-test @@ -121,7 +121,7 @@ services: image: ${REGISTRY:-eshop}/locations-api-test:${TAG:-latest} build: context: . - dockerfile: src/Services/Location/Locations.API/Dockerfile + dockerfile: Services/Location/Locations.API/Dockerfile target: functionaltest depends_on: - nosql-data-test diff --git a/docker-compose-windows.prod.yml b/src/docker-compose-windows.prod.yml similarity index 100% rename from docker-compose-windows.prod.yml rename to src/docker-compose-windows.prod.yml diff --git a/docker-compose.dcproj b/src/docker-compose.dcproj similarity index 100% rename from docker-compose.dcproj rename to src/docker-compose.dcproj diff --git a/docker-compose.elk.yml b/src/docker-compose.elk.yml similarity index 100% rename from docker-compose.elk.yml rename to src/docker-compose.elk.yml diff --git a/docker-compose.nobuild.yml b/src/docker-compose.nobuild.yml similarity index 100% rename from docker-compose.nobuild.yml rename to src/docker-compose.nobuild.yml diff --git a/docker-compose.override.windows.yml b/src/docker-compose.override.windows.yml similarity index 100% rename from docker-compose.override.windows.yml rename to src/docker-compose.override.windows.yml diff --git a/docker-compose.override.yml b/src/docker-compose.override.yml similarity index 97% rename from docker-compose.override.yml rename to src/docker-compose.override.yml index a8fce70bad..fb4d2b6b78 100644 --- a/docker-compose.override.yml +++ b/src/docker-compose.override.yml @@ -225,7 +225,7 @@ services: ports: - "5200:80" volumes: - - ./src/ApiGateways/Mobile.Bff.Shopping/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration} + - ./ApiGateways/Mobile.Bff.Shopping/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration} mobilemarketingapigw: environment: @@ -242,7 +242,7 @@ services: ports: - "5201:80" volumes: - - ./src/ApiGateways/Mobile.Bff.Marketing/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration} + - ./ApiGateways/Mobile.Bff.Marketing/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration} webshoppingapigw: environment: @@ -259,7 +259,7 @@ services: ports: - "5202:80" volumes: - - ./src/ApiGateways/Web.Bff.Shopping/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration} + - ./ApiGateways/Web.Bff.Shopping/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration} webmarketingapigw: environment: @@ -276,7 +276,7 @@ services: ports: - "5203:80" volumes: - - ./src/ApiGateways/Web.Bff.Marketing/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration} + - ./ApiGateways/Web.Bff.Marketing/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration} mobileshoppingagg: environment: @@ -424,6 +424,6 @@ services: envoy: volumes: - - ./src/ApiGateways/Envoy/config:/etc/envoy + - ./ApiGateways/Envoy/config:/etc/envoy ports: - "51051:51051" \ No newline at end of file diff --git a/docker-compose.prod.yml b/src/docker-compose.prod.yml similarity index 98% rename from docker-compose.prod.yml rename to src/docker-compose.prod.yml index aed216ef9e..de88fd718f 100644 --- a/docker-compose.prod.yml +++ b/src/docker-compose.prod.yml @@ -249,7 +249,7 @@ services: - "5200:80" # Important: In a production environment your should remove the external port (5200) kept here for microservice debugging purposes. # The API Gateway redirects and access through the internal port (80). volumes: - - ./src/ApiGateways/Mobile.Bff.Shopping/apigw:/app/configuration + - ./ApiGateways/Mobile.Bff.Shopping/apigw:/app/configuration mobilemarketingapigw: environment: @@ -259,7 +259,7 @@ services: - "5201:80" # Important: In a production environment your should remove the external port (5201) kept here for microservice debugging purposes. # The API Gateway redirects and access through the internal port (80). volumes: - - ./src/ApiGateways/Mobile.Bff.Marketing/apigw:/app/configuration + - ./ApiGateways/Mobile.Bff.Marketing/apigw:/app/configuration webshoppingapigw: environment: @@ -269,7 +269,7 @@ services: - "5202:80" # Important: In a production environment your should remove the external port (5202) kept here for microservice debugging purposes. # The API Gateway redirects and access through the internal port (80). volumes: - - ./src/ApiGateways/Web.Bff.Shopping/apigw:/app/configuration + - ./ApiGateways/Web.Bff.Shopping/apigw:/app/configuration webmarketingapigw: environment: @@ -279,7 +279,7 @@ services: - "5203:80" # Important: In a production environment your should remove the external port (5203) kept here for microservice debugging purposes. # The API Gateway redirects and access through the internal port (80). volumes: - - ./src/ApiGateways/Web.Bff.Marketing/apigw:/app/configuration + - ./ApiGateways/Web.Bff.Marketing/apigw:/app/configuration mobileshoppingagg: environment: diff --git a/docker-compose.windows.yml b/src/docker-compose.windows.yml similarity index 100% rename from docker-compose.windows.yml rename to src/docker-compose.windows.yml diff --git a/docker-compose.yml b/src/docker-compose.yml similarity index 79% rename from docker-compose.yml rename to src/docker-compose.yml index 243fbf2c68..7322fe63a1 100644 --- a/docker-compose.yml +++ b/src/docker-compose.yml @@ -21,7 +21,7 @@ services: image: ${REGISTRY:-eshop}/identity.api:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Services/Identity/Identity.API/Dockerfile + dockerfile: Services/Identity/Identity.API/Dockerfile depends_on: - sql.data @@ -29,7 +29,7 @@ services: image: ${REGISTRY:-eshop}/basket.api:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Services/Basket/Basket.API/Dockerfile + dockerfile: Services/Basket/Basket.API/Dockerfile depends_on: - basket.data - identity.api @@ -39,7 +39,7 @@ services: image: ${REGISTRY:-eshop}/catalog.api:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Services/Catalog/Catalog.API/Dockerfile + dockerfile: Services/Catalog/Catalog.API/Dockerfile depends_on: - sql.data - rabbitmq @@ -48,7 +48,7 @@ services: image: ${REGISTRY:-eshop}/ordering.api:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Services/Ordering/Ordering.API/Dockerfile + dockerfile: Services/Ordering/Ordering.API/Dockerfile depends_on: - sql.data - rabbitmq @@ -57,7 +57,7 @@ services: image: ${REGISTRY:-eshop}/ordering.backgroundtasks:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile + dockerfile: Services/Ordering/Ordering.BackgroundTasks/Dockerfile depends_on: - sql.data - rabbitmq @@ -66,7 +66,7 @@ services: image: ${REGISTRY:-eshop}/marketing.api:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Services/Marketing/Marketing.API/Dockerfile + dockerfile: Services/Marketing/Marketing.API/Dockerfile depends_on: - sql.data - nosql.data @@ -77,7 +77,7 @@ services: image: ${REGISTRY:-eshop}/payment.api:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Services/Payment/Payment.API/Dockerfile + dockerfile: Services/Payment/Payment.API/Dockerfile depends_on: - rabbitmq @@ -85,7 +85,7 @@ services: image: ${REGISTRY:-eshop}/locations.api:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Services/Location/Locations.API/Dockerfile + dockerfile: Services/Location/Locations.API/Dockerfile depends_on: - nosql.data - rabbitmq @@ -94,7 +94,7 @@ services: image: ${REGISTRY:-eshop}/webhooks.api:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Services/Webhooks/Webhooks.API/Dockerfile + dockerfile: Services/Webhooks/Webhooks.API/Dockerfile depends_on: - sql.data @@ -102,7 +102,7 @@ services: image: ${REGISTRY:-eshop}/ocelotapigw:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/ApiGateways/ApiGw-Base/Dockerfile + dockerfile: ApiGateways/ApiGw-Base/Dockerfile depends_on: - nosql.data - sql.data @@ -117,7 +117,7 @@ services: image: ${REGISTRY:-eshop}/ocelotapigw:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/ApiGateways/ApiGw-Base/Dockerfile + dockerfile: ApiGateways/ApiGw-Base/Dockerfile depends_on: - nosql.data - sql.data @@ -132,7 +132,7 @@ services: image: ${REGISTRY:-eshop}/ocelotapigw:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/ApiGateways/ApiGw-Base/Dockerfile + dockerfile: ApiGateways/ApiGw-Base/Dockerfile depends_on: - nosql.data - sql.data @@ -147,7 +147,7 @@ services: image: ${REGISTRY:-eshop}/ocelotapigw:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/ApiGateways/ApiGw-Base/Dockerfile + dockerfile: ApiGateways/ApiGw-Base/Dockerfile depends_on: - nosql.data - sql.data @@ -162,7 +162,7 @@ services: image: ${REGISTRY:-eshop}/mobileshoppingagg:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile + dockerfile: ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile depends_on: - nosql.data - sql.data @@ -177,7 +177,7 @@ services: image: ${REGISTRY:-eshop}/webshoppingagg:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile + dockerfile: ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile depends_on: - nosql.data - sql.data @@ -192,7 +192,7 @@ services: image: ${REGISTRY:-eshop}/ordering.signalrhub:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Services/Ordering/Ordering.SignalrHub/Dockerfile + dockerfile: Services/Ordering/Ordering.SignalrHub/Dockerfile depends_on: - nosql.data - sql.data @@ -207,13 +207,13 @@ services: image: ${REGISTRY:-eshop}/webstatus:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Web/WebStatus/Dockerfile + dockerfile: Web/WebStatus/Dockerfile webspa: image: ${REGISTRY:-eshop}/webspa:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Web/WebSPA/Dockerfile + dockerfile: Web/WebSPA/Dockerfile args: NODE_IMAGE: ${NODE_IMAGE:-node:8.11} # depends_on: @@ -225,7 +225,7 @@ services: image: ${REGISTRY:-eshop}/webmvc:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Web/WebMVC/Dockerfile + dockerfile: Web/WebMVC/Dockerfile depends_on: - webshoppingagg - webshoppingapigw @@ -235,7 +235,7 @@ services: image: ${REGISTRY:-eshop}/webhooks.client:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: src/Web/WebhookClient/Dockerfile + dockerfile: Web/WebhookClient/Dockerfile depends_on: - webhooks.api diff --git a/eShopOnContainers-ServicesAndWebApps.sln b/src/eShopOnContainers-ServicesAndWebApps.sln similarity index 96% rename from eShopOnContainers-ServicesAndWebApps.sln rename to src/eShopOnContainers-ServicesAndWebApps.sln index 52f49f96c0..9ba773aa5c 100644 --- a/eShopOnContainers-ServicesAndWebApps.sln +++ b/src/eShopOnContainers-ServicesAndWebApps.sln @@ -30,47 +30,47 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ServicesTests", "ServicesTe EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Identity", "Identity", "{24CD3B53-141E-4A07-9B0D-796641E1CF78}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.API", "src\Services\Basket\Basket.API\Basket.API.csproj", "{2110CBB0-3B38-4EE4-A743-DF6968D80D90}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.API", "Services\Basket\Basket.API\Basket.API.csproj", "{2110CBB0-3B38-4EE4-A743-DF6968D80D90}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.API", "src\Services\Catalog\Catalog.API\Catalog.API.csproj", "{42681D9D-750A-4DF7-BD9F-9292CFD5C253}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.API", "Services\Catalog\Catalog.API\Catalog.API.csproj", "{42681D9D-750A-4DF7-BD9F-9292CFD5C253}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.API", "src\Services\Ordering\Ordering.API\Ordering.API.csproj", "{231226CE-690B-4979-8870-9A79D80928E2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.API", "Services\Ordering\Ordering.API\Ordering.API.csproj", "{231226CE-690B-4979-8870-9A79D80928E2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.Domain", "src\Services\Ordering\Ordering.Domain\Ordering.Domain.csproj", "{F5598DCB-6DDE-4661-AD9D-A55612DA7E76}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.Domain", "Services\Ordering\Ordering.Domain\Ordering.Domain.csproj", "{F5598DCB-6DDE-4661-AD9D-A55612DA7E76}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebMVC", "src\Web\WebMVC\WebMVC.csproj", "{F0333D8E-0B27-42B7-B2C6-78F3657624E2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebMVC", "Web\WebMVC\WebMVC.csproj", "{F0333D8E-0B27-42B7-B2C6-78F3657624E2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.Infrastructure", "src\Services\Ordering\Ordering.Infrastructure\Ordering.Infrastructure.csproj", "{95F1F07C-4D92-4742-BD07-E5B805AAB651}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.Infrastructure", "Services\Ordering\Ordering.Infrastructure\Ordering.Infrastructure.csproj", "{95F1F07C-4D92-4742-BD07-E5B805AAB651}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Identity.API", "src\Services\Identity\Identity.API\Identity.API.csproj", "{A579E108-5445-403D-A407-339AC4D1611B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Identity.API", "Services\Identity\Identity.API\Identity.API.csproj", "{A579E108-5445-403D-A407-339AC4D1611B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebSPA", "src\Web\WebSPA\WebSPA.csproj", "{F16E3C6A-1C94-4EAB-BE91-099618060B68}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebSPA", "Web\WebSPA\WebSPA.csproj", "{F16E3C6A-1C94-4EAB-BE91-099618060B68}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BuildingBlocks", "BuildingBlocks", "{DB0EFB20-B024-4E5E-A75C-52143C131D25}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EventBus", "EventBus", "{807BB76E-B2BB-47A2-A57B-3D1B20FF5E7F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventBus", "src\BuildingBlocks\EventBus\EventBus\EventBus.csproj", "{0044B293-1DCC-4224-B948-00CF6DC7F510}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventBus", "BuildingBlocks\EventBus\EventBus\EventBus.csproj", "{0044B293-1DCC-4224-B948-00CF6DC7F510}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventBusRabbitMQ", "src\BuildingBlocks\EventBus\EventBusRabbitMQ\EventBusRabbitMQ.csproj", "{8088F3FC-6787-45FA-A924-816EC81CBFAC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventBusRabbitMQ", "BuildingBlocks\EventBus\EventBusRabbitMQ\EventBusRabbitMQ.csproj", "{8088F3FC-6787-45FA-A924-816EC81CBFAC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IntegrationEventLogEF", "src\BuildingBlocks\EventBus\IntegrationEventLogEF\IntegrationEventLogEF.csproj", "{9EE28E45-1533-472B-8267-56C48855BA0E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IntegrationEventLogEF", "BuildingBlocks\EventBus\IntegrationEventLogEF\IntegrationEventLogEF.csproj", "{9EE28E45-1533-472B-8267-56C48855BA0E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebStatus", "src\Web\WebStatus\WebStatus.csproj", "{C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebStatus", "Web\WebStatus\WebStatus.csproj", "{C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Location", "Location", "{41139F64-4046-4F16-96B7-D941D96FA9C6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Locations.API", "src\Services\Location\Locations.API\Locations.API.csproj", "{E7581357-FC34-474C-B8F5-307EE3CE05EF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Locations.API", "Services\Location\Locations.API\Locations.API.csproj", "{E7581357-FC34-474C-B8F5-307EE3CE05EF}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Marketing", "Marketing", "{A5260DE0-1FDD-467E-9CC1-A028AB081CEE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Marketing.API", "src\Services\Marketing\Marketing.API\Marketing.API.csproj", "{DF395F85-B010-465D-857A-7EBCC512C0C2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Marketing.API", "Services\Marketing\Marketing.API\Marketing.API.csproj", "{DF395F85-B010-465D-857A-7EBCC512C0C2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventBusServiceBus", "src\BuildingBlocks\EventBus\EventBusServiceBus\EventBusServiceBus.csproj", "{69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventBusServiceBus", "BuildingBlocks\EventBus\EventBusServiceBus\EventBusServiceBus.csproj", "{69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebHost", "WebHost", "{1815B651-941C-466B-AE33-D1D7EEB8F77F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebHost.Customization", "src\BuildingBlocks\WebHostCustomization\WebHost.Customization\WebHost.Customization.csproj", "{15F4B3AA-89B6-4A0D-9051-414305974781}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebHost.Customization", "BuildingBlocks\WebHostCustomization\WebHost.Customization\WebHost.Customization.csproj", "{15F4B3AA-89B6-4A0D-9051-414305974781}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ApiGateways", "ApiGateways", "{77849D35-37D4-4802-81DC-9477B2775A40}" EndProject @@ -78,47 +78,47 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ApiGw-Base", "ApiGw-Base", EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile.Bff.Marketing", "Mobile.Bff.Marketing", "{DB813A36-11BA-41FE-B258-CA9A7152247B}" ProjectSection(SolutionItems) = preProject - src\ApiGateways\Mobile.Bff.Marketing\apigw\configuration.json = src\ApiGateways\Mobile.Bff.Marketing\apigw\configuration.json + ApiGateways\Mobile.Bff.Marketing\apigw\configuration.json = ApiGateways\Mobile.Bff.Marketing\apigw\configuration.json EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile.Bff.Shopping", "Mobile.Bff.Shopping", "{0189E4FB-6E2B-4F2E-9B1D-5473D23FC6DB}" ProjectSection(SolutionItems) = preProject - src\ApiGateways\Mobile.Bff.Shopping\apigw\configuration.json = src\ApiGateways\Mobile.Bff.Shopping\apigw\configuration.json + ApiGateways\Mobile.Bff.Shopping\apigw\configuration.json = ApiGateways\Mobile.Bff.Shopping\apigw\configuration.json EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web.Bff.Marketing", "Web.Bff.Marketing", "{F8F0921C-EE5D-4AED-A4D6-5BF5FAE02CB5}" ProjectSection(SolutionItems) = preProject - src\ApiGateways\Web.Bff.Marketing\apigw\configuration.json = src\ApiGateways\Web.Bff.Marketing\apigw\configuration.json + ApiGateways\Web.Bff.Marketing\apigw\configuration.json = ApiGateways\Web.Bff.Marketing\apigw\configuration.json EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web.Bff.Shopping", "Web.Bff.Shopping", "{28C0F5C8-4849-4035-80AB-45639424E73F}" ProjectSection(SolutionItems) = preProject - src\ApiGateways\Web.Bff.Shopping\apigw\configuration.json = src\ApiGateways\Web.Bff.Shopping\apigw\configuration.json + ApiGateways\Web.Bff.Shopping\apigw\configuration.json = ApiGateways\Web.Bff.Shopping\apigw\configuration.json EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OcelotApiGw", "src\ApiGateways\ApiGw-Base\OcelotApiGw.csproj", "{3F79558C-485D-49E1-BD3E-E12538D3D308}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OcelotApiGw", "ApiGateways\ApiGw-Base\OcelotApiGw.csproj", "{3F79558C-485D-49E1-BD3E-E12538D3D308}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mobile.Shopping.HttpAggregator", "src\ApiGateways\Mobile.Bff.Shopping\aggregator\Mobile.Shopping.HttpAggregator.csproj", "{BEA37D6D-4CF2-4AE8-9575-72388E54FBD0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mobile.Shopping.HttpAggregator", "ApiGateways\Mobile.Bff.Shopping\aggregator\Mobile.Shopping.HttpAggregator.csproj", "{BEA37D6D-4CF2-4AE8-9575-72388E54FBD0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Web.Shopping.HttpAggregator", "src\ApiGateways\Web.Bff.Shopping\aggregator\Web.Shopping.HttpAggregator.csproj", "{AF0828DB-8BDD-411A-AEEF-B780FBB8D8C1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Web.Shopping.HttpAggregator", "ApiGateways\Web.Bff.Shopping\aggregator\Web.Shopping.HttpAggregator.csproj", "{AF0828DB-8BDD-411A-AEEF-B780FBB8D8C1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.SignalrHub", "src\Services\Ordering\Ordering.SignalrHub\Ordering.SignalrHub.csproj", "{E1D2B260-4E7F-4A88-BC13-9910F7C44623}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.SignalrHub", "Services\Ordering\Ordering.SignalrHub\Ordering.SignalrHub.csproj", "{E1D2B260-4E7F-4A88-BC13-9910F7C44623}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.UnitTests", "src\Services\Basket\Basket.UnitTests\Basket.UnitTests.csproj", "{9D9CE4E4-1DD0-4961-861F-219731DE06CE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.UnitTests", "Services\Basket\Basket.UnitTests\Basket.UnitTests.csproj", "{9D9CE4E4-1DD0-4961-861F-219731DE06CE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.UnitTests", "src\Services\Catalog\Catalog.UnitTests\Catalog.UnitTests.csproj", "{791961C7-3F3E-434E-B2BA-B4D6B5E222B0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.UnitTests", "Services\Catalog\Catalog.UnitTests\Catalog.UnitTests.csproj", "{791961C7-3F3E-434E-B2BA-B4D6B5E222B0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.FunctionalTests", "src\Services\Basket\Basket.FunctionalTests\Basket.FunctionalTests.csproj", "{3F6202D0-2842-4C2F-98E1-9462709EAFBE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.FunctionalTests", "Services\Basket\Basket.FunctionalTests\Basket.FunctionalTests.csproj", "{3F6202D0-2842-4C2F-98E1-9462709EAFBE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.UnitTests", "src\Services\Ordering\Ordering.UnitTests\Ordering.UnitTests.csproj", "{B1182FD9-C245-4018-8412-C66F290C7F4C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.UnitTests", "Services\Ordering\Ordering.UnitTests\Ordering.UnitTests.csproj", "{B1182FD9-C245-4018-8412-C66F290C7F4C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.FunctionalTests", "src\Services\Catalog\Catalog.FunctionalTests\Catalog.FunctionalTests.csproj", "{38107691-A437-461D-A85C-ACD3AC7ACFAB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.FunctionalTests", "Services\Catalog\Catalog.FunctionalTests\Catalog.FunctionalTests.csproj", "{38107691-A437-461D-A85C-ACD3AC7ACFAB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Locations.FunctionalTests", "src\Services\Location\Locations.FunctionalTests\Locations.FunctionalTests.csproj", "{16F463AA-9CF6-44DC-B18C-7310CCF663FF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Locations.FunctionalTests", "Services\Location\Locations.FunctionalTests\Locations.FunctionalTests.csproj", "{16F463AA-9CF6-44DC-B18C-7310CCF663FF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.FunctionalTests", "src\Services\Ordering\Ordering.FunctionalTests\Ordering.FunctionalTests.csproj", "{DA7D3E03-D0B6-4591-8143-779D3E9F3F30}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.FunctionalTests", "Services\Ordering\Ordering.FunctionalTests\Ordering.FunctionalTests.csproj", "{DA7D3E03-D0B6-4591-8143-779D3E9F3F30}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Marketing.FunctionalTests", "src\Services\Marketing\Marketing.FunctionalTests\Marketing.FunctionalTests.csproj", "{94176D9B-9CAA-4762-8D12-1621E240EE34}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Marketing.FunctionalTests", "Services\Marketing\Marketing.FunctionalTests\Marketing.FunctionalTests.csproj", "{94176D9B-9CAA-4762-8D12-1621E240EE34}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoadTest", "test\ServicesTests\LoadTest\LoadTest.csproj", "{969E793C-C413-490E-9C9D-B2B46DA5AF32}" EndProject @@ -136,32 +136,32 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{120CABB3 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Payment", "Payment", "{C61C5CFE-4876-4A46-A96E-5BBF596A984A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Payment.API", "src\Services\Payment\Payment.API\Payment.API.csproj", "{0AB40131-8AD7-436F-9C6B-EDA59CFA3A84}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Payment.API", "Services\Payment\Payment.API\Payment.API.csproj", "{0AB40131-8AD7-436F-9C6B-EDA59CFA3A84}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Webhooks", "Webhooks", "{E0AA11C4-2873-461D-8F82-53392530FB7A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Webhooks.API", "src\Services\Webhooks\Webhooks.API\Webhooks.API.csproj", "{84E2016E-0435-44C6-8020-3D288AA38B2C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Webhooks.API", "Services\Webhooks\Webhooks.API\Webhooks.API.csproj", "{84E2016E-0435-44C6-8020-3D288AA38B2C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebhookClient", "src\Web\WebhookClient\WebhookClient.csproj", "{766D7E92-6AF0-476C-ADD5-282BF4D8C576}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebhookClient", "Web\WebhookClient\WebhookClient.csproj", "{766D7E92-6AF0-476C-ADD5-282BF4D8C576}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Devspace.Support", "Devspace.Support", "{68F5041D-51F2-4630-94B6-B49789F5E51A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Devspaces.Support", "src\BuildingBlocks\Devspaces.Support\Devspaces.Support.csproj", "{56C2EF0B-6BF2-41D9-BE07-6E6D08D06B35}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Devspaces.Support", "BuildingBlocks\Devspaces.Support\Devspaces.Support.csproj", "{56C2EF0B-6BF2-41D9-BE07-6E6D08D06B35}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Envoy", "Envoy", "{882A8F3A-C61F-4C44-86DD-A5A258714BF2}" ProjectSection(SolutionItems) = preProject - src\ApiGateways\Envoy\Dockerfile = src\ApiGateways\Envoy\Dockerfile + ApiGateways\Envoy\Dockerfile = ApiGateways\Envoy\Dockerfile EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "config", "config", "{3ABEEE8C-35E0-4185-9825-C44326151F5B}" ProjectSection(SolutionItems) = preProject - src\ApiGateways\Envoy\config\catalog.proto = src\ApiGateways\Envoy\config\catalog.proto - src\ApiGateways\Envoy\config\catalog.proto-descriptor.pb = src\ApiGateways\Envoy\config\catalog.proto-descriptor.pb - src\ApiGateways\Envoy\Dockerfile = src\ApiGateways\Envoy\Dockerfile - src\ApiGateways\Envoy\config\envoy.yaml = src\ApiGateways\Envoy\config\envoy.yaml + ApiGateways\Envoy\config\catalog.proto = ApiGateways\Envoy\config\catalog.proto + ApiGateways\Envoy\config\catalog.proto-descriptor.pb = ApiGateways\Envoy\config\catalog.proto-descriptor.pb + ApiGateways\Envoy\Dockerfile = ApiGateways\Envoy\Dockerfile + ApiGateways\Envoy\config\envoy.yaml = ApiGateways\Envoy\config\envoy.yaml EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ordering.BackgroundTasks", "src\Services\Ordering\Ordering.BackgroundTasks\Ordering.BackgroundTasks.csproj", "{D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ordering.BackgroundTasks", "Services\Ordering\Ordering.BackgroundTasks\Ordering.BackgroundTasks.csproj", "{D4DBA4A3-E4A5-4D9D-8ACF-F38F7D506191}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution From 011dc71a979202d043d02e441128db09054358f8 Mon Sep 17 00:00:00 2001 From: eiximenis Date: Wed, 28 Aug 2019 10:32:41 +0200 Subject: [PATCH 068/149] Moved .env to src --- .env => src/.env | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .env => src/.env (100%) diff --git a/.env b/src/.env similarity index 100% rename from .env rename to src/.env From 3fee58e6664a82941f322486808a0ae29aa636ba Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 28 Aug 2019 10:57:35 +0200 Subject: [PATCH 069/149] partial checkin --- .../aggregator/Services/BasketService.cs | 44 ++++++++++++-- .../aggregator/Services/CatalogService.cs | 37 +++++++++--- .../Catalog.API/Grpc/CatalogService.cs | 59 ++++++++++++------- .../Catalog/Catalog.API/Proto/catalog.proto | 8 +-- 4 files changed, 108 insertions(+), 40 deletions(-) diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs index 3e68816c19..2bfc30ce93 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs @@ -66,12 +66,48 @@ public async Task GetById(string id) public async Task UpdateAsync(BasketData currentBasket) { - _httpClient.BaseAddress = new Uri(_urls.Basket + UrlsConfig.BasketOperations.UpdateBasket()); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); + + using (var httpClientHandler = new HttpClientHandler()) + { + httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; + using (var httpClient = new HttpClient(httpClientHandler)) + { + httpClient.BaseAddress = new Uri(_urls.GrpcBasket); + + _logger.LogDebug("Creating grpc client for basket {@httpClient.BaseAddress} ", httpClient.BaseAddress); + + var client = GrpcClient.Create(httpClient); + + + try + { + + _logger.LogInformation("Grpc update basket currentBasket {@currentBasket}", currentBasket); + var request = MapToCustomerBasketRequest(currentBasket); + _logger.LogInformation("Grpc update basket request {@request}", request); + + await client.UpdateBasketAsync(request); + } + catch (RpcException e) + { + _logger.LogError($"Error calling via grpc: {e.Status} - {e.Message}"); + } + } + } + + + + + //_httpClient.BaseAddress = new Uri(_urls.Basket + UrlsConfig.BasketOperations.UpdateBasket()); - var client = GrpcClient.Create(_httpClient); - var request = MapToCustomerBasketRequest(currentBasket); + //var client = GrpcClient.Create(_httpClient); + //_logger.LogInformation("Grpc update basket currentBasket {@currentBasket}", currentBasket); + //var request = MapToCustomerBasketRequest(currentBasket); + //_logger.LogInformation("Grpc update basket request {@request}", request); - await client.UpdateBasketAsync(request); + //await client.UpdateBasketAsync(request); } private BasketData MapToBasketData(CustomerBasketResponse customerBasketRequest) diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs index 663baa1cf8..9a1c393b0e 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs @@ -11,6 +11,7 @@ using System; using static CatalogApi.Catalog; using System.Linq; +using Grpc.Core; namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services { @@ -40,16 +41,36 @@ public async Task GetCatalogItemAsync(int id) public async Task> GetCatalogItemsAsync(IEnumerable ids) { - _httpClient.BaseAddress = new Uri(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemsById(ids)); - var client = GrpcClient.Create(_httpClient); - var request = new CatalogItemsRequest { Ids = string.Join(",", ids), PageIndex = 1, PageSize = 10 }; - var response = await client.GetItemsByIdsAsync(request); - return response.Data.Select(this.MapToCatalogItemResponse); - //var stringContent = await _httpClient.GetStringAsync(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemsById(ids)); - //var catalogItems = JsonConvert.DeserializeObject(stringContent); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); + + using (var httpClientHandler = new HttpClientHandler()) + { + httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; + using (var httpClient = new HttpClient(httpClientHandler)) + { + httpClient.BaseAddress = new Uri(_urls.GrpcCatalog); + + _logger.LogInformation("Creating grpc client for CatalogClient {@httpClient.BaseAddress}, {@httpClient} ", httpClient.BaseAddress, httpClient); + + try + { + var client = GrpcClient.Create(httpClient); + var request = new CatalogItemsRequest { Ids = string.Join(",", ids), PageIndex = 1, PageSize = 10 }; + _logger.LogInformation("grpc client created, request = {@request}", request); + var response = await client.GetItemsByIdsAsync(request); + _logger.LogInformation("grpc response {@response}", response); + return response.Data.Select(this.MapToCatalogItemResponse); + } + catch (RpcException e) + { + _logger.LogError($"Error calling via grpc: {e.Status} - {e.Message}"); + } + } + } - //return catalogItems; + return null; } private CatalogItem MapToCatalogItemResponse(CatalogItemResponse catalogItemResponse) diff --git a/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs b/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs index b25d3b1038..9c620a4819 100644 --- a/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs +++ b/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs @@ -64,10 +64,12 @@ public override async Task GetItemById(CatalogItemRequest r public override async Task GetItemsByIds(CatalogItemsRequest request, ServerCallContext context) { + _logger.LogInformation("---------- GetItemsByIds request {@request}", request); if (!string.IsNullOrEmpty(request.Ids)) { var items = await GetItemsByIdsAsync(request.Ids); + _logger.LogInformation("---------- GetItemsByIds items {@items}", items); if (!items.Any()) { context.Status = new Status(StatusCode.NotFound, $"ids value invalid. Must be comma-separated list of numbers"); @@ -76,15 +78,18 @@ public override async Task GetItemsByIds(CatalogItemsReq return this.MapToResponse(items); } + _logger.LogInformation("---------- GetItemsByIds else"); var totalItems = await _catalogContext.CatalogItems .LongCountAsync(); + _logger.LogInformation("---------- GetItemsByIds totalItems {@totalItems}", totalItems); var itemsOnPage = await _catalogContext.CatalogItems .OrderBy(c => c.Name) .Skip(request.PageSize * request.PageIndex) .Take(request.PageSize) .ToListAsync(); + _logger.LogInformation("---------- GetItemsByIds itemsOnPage {@itemsOnPage}", itemsOnPage); /* The "awesome" fix for testing Devspaces */ /* @@ -95,8 +100,10 @@ public override async Task GetItemsByIds(CatalogItemsReq */ itemsOnPage = ChangeUriPlaceholder(itemsOnPage); + _logger.LogInformation("---------- GetItemsByIds itemsOnPage2 {@itemsOnPage}", itemsOnPage); var model = this.MapToResponse(itemsOnPage, totalItems, request.PageIndex, request.PageSize); + _logger.LogInformation("---------- GetItemsByIds model {@model}", model); context.Status = new Status(StatusCode.OK, string.Empty); return model; @@ -116,29 +123,39 @@ private PaginatedItemsResponse MapToResponse(List items, long count PageSize = pageSize, }; - items.ForEach(i => result.Data.Add(new CatalogItemResponse() + items.ForEach(i => { - AvailableStock = i.AvailableStock, - Description = i.Description, - Id = i.Id, - MaxStockThreshold = i.MaxStockThreshold, - Name = i.Name, - OnReorder = i.OnReorder, - PictureFileName = i.PictureFileName, - PictureUri = i.PictureUri, - RestockThreshold = i.RestockThreshold, - CatalogBrand = new CatalogApi.CatalogBrand() + var brand = i.CatalogBrand == null + ? null + : new CatalogApi.CatalogBrand() + { + Id = i.CatalogBrand.Id, + Name = i.CatalogBrand.Brand, + }; + var catalogType = i.CatalogType == null + ? null + : new CatalogApi.CatalogType() + { + Id = i.CatalogType.Id, + Type = i.CatalogType.Type, + }; + + result.Data.Add(new CatalogItemResponse() { - Id = i.CatalogBrand.Id, - Name = i.CatalogBrand.Brand, - }, - CatalogType = new CatalogApi.CatalogType() - { - Id = i.CatalogType.Id, - Type = i.CatalogType.Type, - }, - Price = (double)i.Price, - })); + AvailableStock = i.AvailableStock, + Description = i.Description, + Id = i.Id, + MaxStockThreshold = i.MaxStockThreshold, + Name = i.Name, + OnReorder = i.OnReorder, + PictureFileName = i.PictureFileName, + PictureUri = i.PictureUri, + RestockThreshold = i.RestockThreshold, + CatalogBrand = brand, + CatalogType = catalogType, + Price = (double)i.Price, + }); + }); return result; } diff --git a/src/Services/Catalog/Catalog.API/Proto/catalog.proto b/src/Services/Catalog/Catalog.API/Proto/catalog.proto index adeeb4b261..fa83d45c40 100644 --- a/src/Services/Catalog/Catalog.API/Proto/catalog.proto +++ b/src/Services/Catalog/Catalog.API/Proto/catalog.proto @@ -56,11 +56,5 @@ service Catalog { }; << */ } - rpc GetItemsByIds (CatalogItemsRequest) returns (PaginatedItemsResponse) { - /* >> - option (google.api.http) = { - get: "/api/v1/catalog/items/ids/{ids}" - }; - << */ - } + rpc GetItemsByIds (CatalogItemsRequest) returns (PaginatedItemsResponse) {} } \ No newline at end of file From 260bfcbc4596a8ffc2668588882f6e287c085d53 Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 28 Aug 2019 11:30:14 +0200 Subject: [PATCH 070/149] web bff endpoint /api/v1/Basket working in grpc --- .../aggregator/Services/BasketService.cs | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs index 2bfc30ce93..4389c43831 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs @@ -96,18 +96,6 @@ public async Task UpdateAsync(BasketData currentBasket) } } } - - - - - //_httpClient.BaseAddress = new Uri(_urls.Basket + UrlsConfig.BasketOperations.UpdateBasket()); - - //var client = GrpcClient.Create(_httpClient); - //_logger.LogInformation("Grpc update basket currentBasket {@currentBasket}", currentBasket); - //var request = MapToCustomerBasketRequest(currentBasket); - //_logger.LogInformation("Grpc update basket request {@request}", request); - - //await client.UpdateBasketAsync(request); } private BasketData MapToBasketData(CustomerBasketResponse customerBasketRequest) @@ -122,16 +110,22 @@ private BasketData MapToBasketData(CustomerBasketResponse customerBasketRequest) BuyerId = customerBasketRequest.Buyerid }; - customerBasketRequest.Items.ToList().ForEach(item => map.Items.Add(new BasketDataItem + customerBasketRequest.Items.ToList().ForEach(item => { - Id = item.Id, - OldUnitPrice = (decimal)item.Oldunitprice, - PictureUrl = item.Pictureurl, - ProductId = item.Productid, - ProductName = item.Productname, - Quantity = item.Quantity, - UnitPrice = (decimal)item.Unitprice - })); + if (item.Id != null) + { + map.Items.Add(new BasketDataItem + { + Id = item.Id, + OldUnitPrice = (decimal)item.Oldunitprice, + PictureUrl = item.Pictureurl, + ProductId = item.Productid, + ProductName = item.Productname, + Quantity = item.Quantity, + UnitPrice = (decimal)item.Unitprice + }); + } + }); return map; } @@ -148,16 +142,22 @@ private CustomerBasketRequest MapToCustomerBasketRequest(BasketData basketData) Buyerid = basketData.BuyerId }; - basketData.Items.ToList().ForEach(item => map.Items.Add(new BasketItemResponse + basketData.Items.ToList().ForEach(item => { - Id = item.Id, - Oldunitprice = (double)item.OldUnitPrice, - Pictureurl = item.PictureUrl, - Productid = item.ProductId, - Productname = item.ProductName, - Quantity = item.Quantity, - Unitprice = (double)item.UnitPrice - })); + if (item.Id != null) + { + map.Items.Add(new BasketItemResponse + { + Id = item.Id, + Oldunitprice = (double)item.OldUnitPrice, + Pictureurl = item.PictureUrl, + Productid = item.ProductId, + Productname = item.ProductName, + Quantity = item.Quantity, + Unitprice = (double)item.UnitPrice + }); + } + }); return map; } From 311e1a2bfd8eb14c37da4ed45d3e1fd87343466d Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 28 Aug 2019 12:03:09 +0200 Subject: [PATCH 071/149] refactoring the grpc client --- .../Controllers/BasketController.cs | 2 - .../aggregator/Services/BasketService.cs | 93 ++++++++----------- .../aggregator/Services/GrpcCallerService.cs | 71 ++++++++++++++ .../Web.Bff.Shopping/aggregator/Startup.cs | 4 +- 4 files changed, 114 insertions(+), 56 deletions(-) create mode 100644 src/ApiGateways/Web.Bff.Shopping/aggregator/Services/GrpcCallerService.cs diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs index a3be376117..5905ae2145 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs @@ -39,8 +39,6 @@ public async Task> UpdateAllBasketAsync([FromBody] Upda } // Retrieve the current basket - Log.Information("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ GetByIdAsync @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); - var basket = await _basket.GetById(data.BuyerId) ?? new BasketData(data.BuyerId); Log.Debug("get basket by id response={@response}", basket); diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs index 4389c43831..5274ddc490 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs @@ -28,74 +28,63 @@ public BasketService(HttpClient httpClient, IOptions config, ILogger public async Task GetById(string id) { - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); - - using (var httpClientHandler = new HttpClientHandler()) + return await GrpcCallerService.CallService(_urls.GrpcBasket, async httpClient => { - httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; - using (var httpClient = new HttpClient(httpClientHandler)) - { - //httpClient.BaseAddress = new Uri("http://10.0.75.1:5580"); - httpClient.BaseAddress = new Uri(_urls.GrpcBasket); - - _logger.LogDebug("Creating grpc client for basket {@httpClient.BaseAddress} ", httpClient.BaseAddress); + _logger.LogWarning("######################## grpc client created, request = {@id}", id); - var client = GrpcClient.Create(httpClient); - - _logger.LogDebug("grpc client created, request = {@id}", id); - - try - { + var client = GrpcClient.Create(httpClient); - var response = await client.GetBasketByIdAsync(new BasketRequest { Id = id }); + _logger.LogDebug("grpc client created, request = {@id}", id); + var response = await client.GetBasketByIdAsync(new BasketRequest { Id = id }); - _logger.LogDebug("grpc response {@response}", response); + _logger.LogDebug("grpc response {@response}", response); - return MapToBasketData(response); - } - catch (RpcException e) - { - _logger.LogError($"Error calling via grpc: {e.Status} - {e.Message}"); - } - } - } - - return null; + return MapToBasketData(response); + }); } public async Task UpdateAsync(BasketData currentBasket) { - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); - - using (var httpClientHandler = new HttpClientHandler()) + await GrpcCallerService.CallService(_urls.GrpcBasket, async httpClient => { - httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; - using (var httpClient = new HttpClient(httpClientHandler)) - { - httpClient.BaseAddress = new Uri(_urls.GrpcBasket); + var client = GrpcClient.Create(httpClient); + _logger.LogDebug("Grpc update basket currentBasket {@currentBasket}", currentBasket); + var request = MapToCustomerBasketRequest(currentBasket); + _logger.LogDebug("Grpc update basket request {@request}", request); - _logger.LogDebug("Creating grpc client for basket {@httpClient.BaseAddress} ", httpClient.BaseAddress); + return client.UpdateBasketAsync(request); + }); - var client = GrpcClient.Create(httpClient); + //AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + //AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); + //using (var httpClientHandler = new HttpClientHandler()) + //{ + // httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; + // using (var httpClient = new HttpClient(httpClientHandler)) + // { + // httpClient.BaseAddress = new Uri(_urls.GrpcBasket); - try - { + // _logger.LogDebug("Creating grpc client for basket {@httpClient.BaseAddress} ", httpClient.BaseAddress); - _logger.LogInformation("Grpc update basket currentBasket {@currentBasket}", currentBasket); - var request = MapToCustomerBasketRequest(currentBasket); - _logger.LogInformation("Grpc update basket request {@request}", request); + // var client = GrpcClient.Create(httpClient); - await client.UpdateBasketAsync(request); - } - catch (RpcException e) - { - _logger.LogError($"Error calling via grpc: {e.Status} - {e.Message}"); - } - } - } + + // try + // { + + // _logger.LogDebug("Grpc update basket currentBasket {@currentBasket}", currentBasket); + // var request = MapToCustomerBasketRequest(currentBasket); + // _logger.LogDebug("Grpc update basket request {@request}", request); + + // await client.UpdateBasketAsync(request); + // } + // catch (RpcException e) + // { + // _logger.LogError($"Error calling via grpc: {e.Status} - {e.Message}"); + // } + // } + //} } private BasketData MapToBasketData(CustomerBasketResponse customerBasketRequest) diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/GrpcCallerService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/GrpcCallerService.cs new file mode 100644 index 0000000000..7e0b61a2fc --- /dev/null +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/GrpcCallerService.cs @@ -0,0 +1,71 @@ +using System.Net.Http; +using System.Threading.Tasks; +using System; +using Grpc.Core; +using Serilog; + +namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services +{ + public static class GrpcCallerService + { + public static Task CallService(string urlGrpc, Func> func) + { + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); + + using (var httpClientHandler = new HttpClientHandler()) + { + httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; + using (var httpClient = new HttpClient(httpClientHandler)) + { + httpClient.BaseAddress = new Uri(urlGrpc); + Log.Debug("Creating grpc client base address {@httpClient.BaseAddress} ", httpClient.BaseAddress); + + try + { + return func(httpClient); + } + catch (RpcException e) + { + Log.Error($"Error calling via grpc: {e.Status} - {e.Message}"); + } + } + } + + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", false); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", false); + + return default; + } + + public static Task CallService(string urlGrpc, Func func) + { + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); + + using (var httpClientHandler = new HttpClientHandler()) + { + httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; + using (var httpClient = new HttpClient(httpClientHandler)) + { + httpClient.BaseAddress = new Uri(urlGrpc); + Log.Debug("Creating grpc client base address {@httpClient.BaseAddress} ", httpClient.BaseAddress); + + try + { + return func(httpClient); + } + catch (RpcException e) + { + Log.Error($"Error calling via grpc: {e.Status} - {e.Message}"); + } + } + } + + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", false); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", false); + + return default; + } + } +} diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index 9613fe4629..e16c4197e5 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -144,9 +144,9 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, options.SwaggerDoc("v1", new OpenApiInfo { - Title = "Shopping Aggregator for Mobile Clients", + Title = "Shopping Aggregator for Web Clients", Version = "v1", - Description = "Shopping Aggregator for Mobile Clients" + Description = "Shopping Aggregator for Web Clients" }); options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme From 454525d517abf07276260ae29b34a1916014a12a Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 28 Aug 2019 12:34:34 +0200 Subject: [PATCH 072/149] refactored the grpc client --- .../aggregator/Services/BasketService.cs | 45 ++---------- .../aggregator/Services/CatalogService.cs | 39 +++-------- .../aggregator/Services/GrpcCallerService.cs | 70 ++++++++++--------- .../aggregator/Services/OrderingService.cs | 42 +++-------- 4 files changed, 58 insertions(+), 138 deletions(-) diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs index 5274ddc490..3875f3bdbe 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs @@ -2,41 +2,35 @@ using Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Models; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Newtonsoft.Json; -using System.Net.Http; using System.Threading.Tasks; using Grpc.Net.Client; -using System; using System.Linq; using GrpcBasket; -using Grpc.Core; +using System.Net.Http; namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services { public class BasketService : IBasketService { - private readonly HttpClient _httpClient; private readonly UrlsConfig _urls; + public readonly HttpClient _httpClient; private readonly ILogger _logger; public BasketService(HttpClient httpClient, IOptions config, ILogger logger) { - _httpClient = httpClient; _urls = config.Value; + _httpClient = httpClient; _logger = logger; } + public async Task GetById(string id) { return await GrpcCallerService.CallService(_urls.GrpcBasket, async httpClient => { - _logger.LogWarning("######################## grpc client created, request = {@id}", id); - var client = GrpcClient.Create(httpClient); - _logger.LogDebug("grpc client created, request = {@id}", id); var response = await client.GetBasketByIdAsync(new BasketRequest { Id = id }); - _logger.LogDebug("grpc response {@response}", response); return MapToBasketData(response); @@ -54,37 +48,6 @@ await GrpcCallerService.CallService(_urls.GrpcBasket, async httpClient => return client.UpdateBasketAsync(request); }); - - //AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); - //AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); - - //using (var httpClientHandler = new HttpClientHandler()) - //{ - // httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; - // using (var httpClient = new HttpClient(httpClientHandler)) - // { - // httpClient.BaseAddress = new Uri(_urls.GrpcBasket); - - // _logger.LogDebug("Creating grpc client for basket {@httpClient.BaseAddress} ", httpClient.BaseAddress); - - // var client = GrpcClient.Create(httpClient); - - - // try - // { - - // _logger.LogDebug("Grpc update basket currentBasket {@currentBasket}", currentBasket); - // var request = MapToCustomerBasketRequest(currentBasket); - // _logger.LogDebug("Grpc update basket request {@request}", request); - - // await client.UpdateBasketAsync(request); - // } - // catch (RpcException e) - // { - // _logger.LogError($"Error calling via grpc: {e.Status} - {e.Message}"); - // } - // } - //} } private BasketData MapToBasketData(CustomerBasketResponse customerBasketRequest) diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs index 9a1c393b0e..5e3e4e2f0f 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs @@ -2,7 +2,6 @@ using Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Models; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Newtonsoft.Json; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; @@ -11,7 +10,6 @@ using System; using static CatalogApi.Catalog; using System.Linq; -using Grpc.Core; namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services { @@ -41,36 +39,15 @@ public async Task GetCatalogItemAsync(int id) public async Task> GetCatalogItemsAsync(IEnumerable ids) { - - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); - - using (var httpClientHandler = new HttpClientHandler()) + return await GrpcCallerService.CallService(_urls.GrpcCatalog, async httpClient => { - httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; - using (var httpClient = new HttpClient(httpClientHandler)) - { - httpClient.BaseAddress = new Uri(_urls.GrpcCatalog); - - _logger.LogInformation("Creating grpc client for CatalogClient {@httpClient.BaseAddress}, {@httpClient} ", httpClient.BaseAddress, httpClient); - - try - { - var client = GrpcClient.Create(httpClient); - var request = new CatalogItemsRequest { Ids = string.Join(",", ids), PageIndex = 1, PageSize = 10 }; - _logger.LogInformation("grpc client created, request = {@request}", request); - var response = await client.GetItemsByIdsAsync(request); - _logger.LogInformation("grpc response {@response}", response); - return response.Data.Select(this.MapToCatalogItemResponse); - } - catch (RpcException e) - { - _logger.LogError($"Error calling via grpc: {e.Status} - {e.Message}"); - } - } - } - - return null; + var client = GrpcClient.Create(httpClient); + var request = new CatalogItemsRequest { Ids = string.Join(",", ids), PageIndex = 1, PageSize = 10 }; + _logger.LogInformation("grpc client created, request = {@request}", request); + var response = await client.GetItemsByIdsAsync(request); + _logger.LogInformation("grpc response {@response}", response); + return response.Data.Select(this.MapToCatalogItemResponse); + }); } private CatalogItem MapToCatalogItemResponse(CatalogItemResponse catalogItemResponse) diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/GrpcCallerService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/GrpcCallerService.cs index 7e0b61a2fc..6400c97977 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/GrpcCallerService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/GrpcCallerService.cs @@ -8,28 +8,30 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services { public static class GrpcCallerService { - public static Task CallService(string urlGrpc, Func> func) + public static async Task CallService(string urlGrpc, Func> func) { AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); - using (var httpClientHandler = new HttpClientHandler()) + using var httpClientHandler = new HttpClientHandler { - httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; - using (var httpClient = new HttpClient(httpClientHandler)) - { - httpClient.BaseAddress = new Uri(urlGrpc); - Log.Debug("Creating grpc client base address {@httpClient.BaseAddress} ", httpClient.BaseAddress); + ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; } + }; - try - { - return func(httpClient); - } - catch (RpcException e) - { - Log.Error($"Error calling via grpc: {e.Status} - {e.Message}"); - } - } + using var httpClient = new HttpClient(httpClientHandler) + { + BaseAddress = new Uri(urlGrpc) + }; + + Log.Information("Creating grpc client base address urlGrpc ={@urlGrpc}, BaseAddress={@BaseAddress} ", urlGrpc, httpClient.BaseAddress); + + try + { + return await func(httpClient); + } + catch (RpcException e) + { + Log.Error($"Error calling via grpc: {e.Status} - {e.Message}"); } AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", false); @@ -38,34 +40,34 @@ public static Task CallService(string urlGrpc, Func func) + public static async Task CallService(string urlGrpc, Func func) { AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); - using (var httpClientHandler = new HttpClientHandler()) + using var httpClientHandler = new HttpClientHandler + { + ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; } + }; + + using var httpClient = new HttpClient(httpClientHandler) { - httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; - using (var httpClient = new HttpClient(httpClientHandler)) - { - httpClient.BaseAddress = new Uri(urlGrpc); - Log.Debug("Creating grpc client base address {@httpClient.BaseAddress} ", httpClient.BaseAddress); + BaseAddress = new Uri(urlGrpc) + }; + + Log.Debug("Creating grpc client base address {@httpClient.BaseAddress} ", httpClient.BaseAddress); - try - { - return func(httpClient); - } - catch (RpcException e) - { - Log.Error($"Error calling via grpc: {e.Status} - {e.Message}"); - } - } + try + { + await func(httpClient); + } + catch (RpcException e) + { + Log.Error($"Error calling via grpc: {e.Status} - {e.Message}"); } AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", false); AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", false); - - return default; } } } diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/OrderingService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/OrderingService.cs index 1814e2d102..6c23943534 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/OrderingService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/OrderingService.cs @@ -14,52 +14,30 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services { public class OrderingService : IOrderingService { - private readonly HttpClient _httpClient; private readonly UrlsConfig _urls; private readonly ILogger _logger; + public readonly HttpClient _httpClient; public OrderingService(HttpClient httpClient, IOptions config, ILogger logger) { - _httpClient = httpClient; _urls = config.Value; + _httpClient = httpClient; _logger = logger; } public async Task GetOrderDraftAsync(BasketData basketData) { - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); - - using (var httpClientHandler = new HttpClientHandler()) + return await GrpcCallerService.CallService(_urls.GrpcOrdering, async httpClient => { - httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; - using (var httpClient = new HttpClient(httpClientHandler)) - { - httpClient.BaseAddress = new Uri(_urls.GrpcOrdering); - - _logger.LogDebug(" Creating grpc client for ordering {@httpClient.BaseAddress}", httpClient.BaseAddress); - - var client = GrpcClient.Create(httpClient); + var client = GrpcClient.Create(httpClient); + _logger.LogDebug(" grpc client created, basketData={@basketData}", basketData); - _logger.LogDebug(" grpc client created, basketData={@basketData}", basketData); - - try - { - var command = MapToOrderDraftCommand(basketData); - var response = await client.CreateOrderDraftFromBasketDataAsync(command); - - _logger.LogDebug(" grpc response: {@response}", response); - - return MapToResponse(response, basketData); - } - catch (RpcException e) - { - _logger.LogError($"Error calling via grpc to ordering: {e.Status} - {e.Message}"); - } - } - } + var command = MapToOrderDraftCommand(basketData); + var response = await client.CreateOrderDraftFromBasketDataAsync(command); + _logger.LogDebug(" grpc response: {@response}", response); - return null; + return MapToResponse(response, basketData); + }); } private OrderData MapToResponse(GrpcOrdering.OrderDraftDTO orderDraft, BasketData basketData) From 870363861f526e05433eb4e9bccbac4b1b4882c3 Mon Sep 17 00:00:00 2001 From: eiximenis Date: Wed, 28 Aug 2019 14:11:29 +0200 Subject: [PATCH 073/149] Update Dockerfiles for use /src as build context root --- global.json | 1 - .dockerignore => src/.dockerignore | 0 .../Mobile.Bff.Shopping/aggregator/Dockerfile | 12 +++++------ .../Web.Bff.Shopping/aggregator/Dockerfile | 12 +++++------ NuGet.config => src/NuGet.config | 0 src/Services/Basket/Basket.API/Dockerfile | 16 +++++++-------- .../Basket/Basket.API/Dockerfile.develop | 12 +++++------ src/Services/Catalog/Catalog.API/Dockerfile | 20 +++++++++---------- .../Catalog/Catalog.API/Dockerfile.develop | 16 +++++++-------- src/Services/Identity/Identity.API/Dockerfile | 12 +++++------ .../Identity/Identity.API/Dockerfile.develop | 8 ++++---- .../Location/Locations.API/Dockerfile | 14 ++++++------- .../Location/Locations.API/Dockerfile.develop | 12 +++++------ .../Marketing/Marketing.API/Dockerfile | 14 ++++++------- .../Marketing.API/Dockerfile.develop | 14 ++++++------- src/Services/Ordering/Ordering.API/Dockerfile | 16 +++++++-------- .../Ordering/Ordering.API/Dockerfile.develop | 20 +++++++++---------- src/Services/Payment/Payment.API/Dockerfile | 12 +++++------ .../Payment/Payment.API/Dockerfile.develop | 14 ++++++------- src/Services/Webhooks/Webhooks.API/Dockerfile | 12 +++++------ .../Webhooks/Webhooks.API/Dockerfile.develop | 18 ++++++++--------- src/Web/WebMVC/Dockerfile | 12 +++++------ src/Web/WebMVC/Dockerfile.develop | 8 ++++---- src/Web/WebSPA/Dockerfile | 16 +++++++-------- src/Web/WebStatus/Dockerfile | 12 +++++------ src/Web/WebhookClient/Dockerfile | 12 +++++------ package-lock.json => src/package-lock.json | 0 {scripts => src/scripts}/restore-packages | 0 {scripts => src/scripts}/restore-packages.cmd | 0 29 files changed, 157 insertions(+), 158 deletions(-) delete mode 100644 global.json rename .dockerignore => src/.dockerignore (100%) rename NuGet.config => src/NuGet.config (100%) rename package-lock.json => src/package-lock.json (100%) rename {scripts => src/scripts}/restore-packages (100%) rename {scripts => src/scripts}/restore-packages.cmd (100%) diff --git a/global.json b/global.json deleted file mode 100644 index 9e26dfeeb6..0000000000 --- a/global.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/.dockerignore b/src/.dockerignore similarity index 100% rename from .dockerignore rename to src/.dockerignore diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile index 3d89c9b272..0572df7165 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile @@ -7,14 +7,14 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/ApiGateways/Mobile.Bff.Shopping/aggregator +WORKDIR /src/ApiGateways/Mobile.Bff.Shopping/aggregator RUN dotnet publish -c Release -o /app FROM build AS publish diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile index 2a3b551a24..82c8e88bdc 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile @@ -7,14 +7,14 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/ApiGateways/Web.Bff.Shopping/aggregator +WORKDIR /src/ApiGateways/Web.Bff.Shopping/aggregator RUN dotnet publish -c Release -o /app FROM build AS publish diff --git a/NuGet.config b/src/NuGet.config similarity index 100% rename from NuGet.config rename to src/NuGet.config diff --git a/src/Services/Basket/Basket.API/Dockerfile b/src/Services/Basket/Basket.API/Dockerfile index c70aa3a96a..de09bf1018 100644 --- a/src/Services/Basket/Basket.API/Dockerfile +++ b/src/Services/Basket/Basket.API/Dockerfile @@ -7,21 +7,21 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/Services/Basket/Basket.API +WORKDIR /src/Services/Basket/Basket.API RUN dotnet publish -c Release -o /app FROM build as unittest -WORKDIR /src/src/Services/Basket/Basket.UnitTests +WORKDIR /src/Services/Basket/Basket.UnitTests FROM build as functionaltest -WORKDIR /src/src/Services/Basket/Basket.FunctionalTests +WORKDIR /src/Services/Basket/Basket.FunctionalTests FROM build AS publish diff --git a/src/Services/Basket/Basket.API/Dockerfile.develop b/src/Services/Basket/Basket.API/Dockerfile.develop index 5ae5cc2359..428aa85dae 100644 --- a/src/Services/Basket/Basket.API/Dockerfile.develop +++ b/src/Services/Basket/Basket.API/Dockerfile.develop @@ -6,14 +6,14 @@ EXPOSE 80 WORKDIR /src -COPY ["src/BuildingBlocks/EventBus/EventBus/EventBus.csproj", "src/BuildingBlocks/EventBus/EventBus/"] -COPY ["src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "src/BuildingBlocks/EventBus/EventBusRabbitMQ/"] -COPY ["src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "src/BuildingBlocks/EventBus/EventBusServiceBus/"] -COPY ["src/Services/Basket/Basket.API/Basket.API.csproj", "src/Services/Basket/Basket.API/"] +COPY ["BuildingBlocks/EventBus/EventBus/EventBus.csproj", "BuildingBlocks/EventBus/EventBus/"] +COPY ["BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "BuildingBlocks/EventBus/EventBusRabbitMQ/"] +COPY ["BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "BuildingBlocks/EventBus/EventBusServiceBus/"] +COPY ["Services/Basket/Basket.API/Basket.API.csproj", "Services/Basket/Basket.API/"] -RUN dotnet restore src/Services/Basket/Basket.API/Basket.API.csproj -nowarn:msb3202,nu1503 +RUN dotnet restore Services/Basket/Basket.API/Basket.API.csproj -nowarn:msb3202,nu1503 COPY . . -WORKDIR /src/src/Services/Basket/Basket.API +WORKDIR /src/Services/Basket/Basket.API RUN dotnet build --no-restore -c $BUILD_CONFIGURATION ENTRYPOINT ["dotnet", "run", "--no-build", "--no-launch-profile", "-c", "$BUILD_CONFIGURATION", "--"] \ No newline at end of file diff --git a/src/Services/Catalog/Catalog.API/Dockerfile b/src/Services/Catalog/Catalog.API/Dockerfile index d9f06d64dc..1ba73b95cb 100644 --- a/src/Services/Catalog/Catalog.API/Dockerfile +++ b/src/Services/Catalog/Catalog.API/Dockerfile @@ -8,27 +8,27 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/Services/Catalog/Catalog.API +WORKDIR /src/Services/Catalog/Catalog.API RUN dotnet publish -c Release -o /app FROM build as unittest -WORKDIR /src/src/Services/Catalog/Catalog.UnitTests +WORKDIR /src/Services/Catalog/Catalog.UnitTests FROM build as functionaltest -WORKDIR /src/src/Services/Catalog/Catalog.FunctionalTests +WORKDIR /src/Services/Catalog/Catalog.FunctionalTests FROM build AS publish FROM base AS final WORKDIR /app COPY --from=publish /app . -COPY --from=build /src/src/Services/Catalog/Catalog.API/Proto /app/Proto -COPY --from=build /src/src/Services/Catalog/Catalog.API/eshop.pfx . +COPY --from=build /src/Services/Catalog/Catalog.API/Proto /app/Proto +COPY --from=build /src/Services/Catalog/Catalog.API/eshop.pfx . ENTRYPOINT ["dotnet", "Catalog.API.dll"] diff --git a/src/Services/Catalog/Catalog.API/Dockerfile.develop b/src/Services/Catalog/Catalog.API/Dockerfile.develop index 11034a2bc9..c158d2b97e 100644 --- a/src/Services/Catalog/Catalog.API/Dockerfile.develop +++ b/src/Services/Catalog/Catalog.API/Dockerfile.develop @@ -6,16 +6,16 @@ EXPOSE 80 WORKDIR /src -COPY ["src/BuildingBlocks/EventBus/EventBus/EventBus.csproj", "src/BuildingBlocks/EventBus/EventBus/"] -COPY ["src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "src/BuildingBlocks/EventBus/EventBusRabbitMQ/"] -COPY ["src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "src/BuildingBlocks/EventBus/EventBusServiceBus/"] -COPY ["src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj", "src/BuildingBlocks/EventBus/IntegrationEventLogEF/"] -COPY ["src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj", "src/BuildingBlocks/WebHostCustomization/WebHost.Customization/"] -COPY ["src/Services/Catalog/Catalog.API/Catalog.API.csproj", "src/Services/Catalog/Catalog.API/"] +COPY ["BuildingBlocks/EventBus/EventBus/EventBus.csproj", "BuildingBlocks/EventBus/EventBus/"] +COPY ["BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "BuildingBlocks/EventBus/EventBusRabbitMQ/"] +COPY ["BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "BuildingBlocks/EventBus/EventBusServiceBus/"] +COPY ["BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj", "BuildingBlocks/EventBus/IntegrationEventLogEF/"] +COPY ["BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj", "BuildingBlocks/WebHostCustomization/WebHost.Customization/"] +COPY ["Services/Catalog/Catalog.API/Catalog.API.csproj", "Services/Catalog/Catalog.API/"] -RUN dotnet restore src/Services/Catalog/Catalog.API/Catalog.API.csproj -nowarn:msb3202,nu1503 +RUN dotnet restore Services/Catalog/Catalog.API/Catalog.API.csproj -nowarn:msb3202,nu1503 COPY . . -WORKDIR "/src/src/Services/Catalog/Catalog.API" +WORKDIR "/src/Services/Catalog/Catalog.API" RUN dotnet build --no-restore -c $BUILD_CONFIGURATION ENTRYPOINT ["dotnet", "run", "--no-build", "--no-launch-profile", "-c", "$BUILD_CONFIGURATION", "--"] \ No newline at end of file diff --git a/src/Services/Identity/Identity.API/Dockerfile b/src/Services/Identity/Identity.API/Dockerfile index 0096fe7f48..564980f1ea 100644 --- a/src/Services/Identity/Identity.API/Dockerfile +++ b/src/Services/Identity/Identity.API/Dockerfile @@ -7,14 +7,14 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/Services/Identity/Identity.API +WORKDIR /src/Services/Identity/Identity.API RUN dotnet publish -c Release -o /app FROM build AS publish diff --git a/src/Services/Identity/Identity.API/Dockerfile.develop b/src/Services/Identity/Identity.API/Dockerfile.develop index 3ab1fbe7c5..e01f161ae1 100644 --- a/src/Services/Identity/Identity.API/Dockerfile.develop +++ b/src/Services/Identity/Identity.API/Dockerfile.develop @@ -5,11 +5,11 @@ ENV DOTNET_USE_POLLING_FILE_WATCHER=true EXPOSE 80 WORKDIR /src -COPY ["src/Services/Identity/Identity.API/Identity.API.csproj", "src/Services/Identity/Identity.API/"] -COPY ["src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj", "src/BuildingBlocks/WebHostCustomization/WebHost.Customization/"] -RUN dotnet restore src/Services/Identity/Identity.API/Identity.API.csproj -nowarn:msb3202,nu1503 +COPY ["Services/Identity/Identity.API/Identity.API.csproj", "Services/Identity/Identity.API/"] +COPY ["BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj", "BuildingBlocks/WebHostCustomization/WebHost.Customization/"] +RUN dotnet restore Services/Identity/Identity.API/Identity.API.csproj -nowarn:msb3202,nu1503 COPY . . -WORKDIR "/src/src/Services/Identity/Identity.API" +WORKDIR "/src/Services/Identity/Identity.API" RUN dotnet build --no-restore -c $BUILD_CONFIGURATION ENTRYPOINT ["dotnet", "run", "--no-build", "--no-launch-profile", "-c", "$BUILD_CONFIGURATION", "--"] diff --git a/src/Services/Location/Locations.API/Dockerfile b/src/Services/Location/Locations.API/Dockerfile index d61b5dbddc..9cf68a0a2a 100644 --- a/src/Services/Location/Locations.API/Dockerfile +++ b/src/Services/Location/Locations.API/Dockerfile @@ -7,18 +7,18 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/Services/Location/Locations.API +WORKDIR /src/Services/Location/Locations.API RUN dotnet publish -c Release -o /app FROM build as functionaltest -WORKDIR /src/src/Services/Location/Locations.FunctionalTests +WORKDIR /src/Services/Location/Locations.FunctionalTests FROM build AS publish diff --git a/src/Services/Location/Locations.API/Dockerfile.develop b/src/Services/Location/Locations.API/Dockerfile.develop index a847b6c309..2ab8b74afd 100644 --- a/src/Services/Location/Locations.API/Dockerfile.develop +++ b/src/Services/Location/Locations.API/Dockerfile.develop @@ -5,13 +5,13 @@ ENV DOTNET_USE_POLLING_FILE_WATCHER=true EXPOSE 80 WORKDIR /src -COPY ["src/Services/Location/Locations.API/Locations.API.csproj", "src/Services/Location/Locations.API/"] -COPY ["src/BuildingBlocks/EventBus/EventBus/EventBus.csproj", "src/BuildingBlocks/EventBus/EventBus/"] -COPY ["src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "src/BuildingBlocks/EventBus/EventBusRabbitMQ/"] -COPY ["src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "src/BuildingBlocks/EventBus/EventBusServiceBus/"] -RUN dotnet restore src/Services/Location/Locations.API/Locations.API.csproj -nowarn:msb3202,nu1503 +COPY ["Services/Location/Locations.API/Locations.API.csproj", "Services/Location/Locations.API/"] +COPY ["BuildingBlocks/EventBus/EventBus/EventBus.csproj", "BuildingBlocks/EventBus/EventBus/"] +COPY ["BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "BuildingBlocks/EventBus/EventBusRabbitMQ/"] +COPY ["BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "BuildingBlocks/EventBus/EventBusServiceBus/"] +RUN dotnet restore Services/Location/Locations.API/Locations.API.csproj -nowarn:msb3202,nu1503 COPY . . -WORKDIR "/src/src/Services/Location/Locations.API" +WORKDIR "/src/Services/Location/Locations.API" RUN dotnet build --no-restore -c $BUILD_CONFIGURATION ENTRYPOINT ["dotnet", "run", "--no-build", "--no-launch-profile", "-c", "$BUILD_CONFIGURATION", "--"] diff --git a/src/Services/Marketing/Marketing.API/Dockerfile b/src/Services/Marketing/Marketing.API/Dockerfile index 108b63f28e..d64e7e3967 100644 --- a/src/Services/Marketing/Marketing.API/Dockerfile +++ b/src/Services/Marketing/Marketing.API/Dockerfile @@ -7,18 +7,18 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/Services/Marketing/Marketing.API +WORKDIR /src/Services/Marketing/Marketing.API RUN dotnet publish -c Release -o /app FROM build as functionaltest -WORKDIR /src/src/Services/Marketing/Marketing.FunctionalTests +WORKDIR /src/Services/Marketing/Marketing.FunctionalTests FROM build AS publish diff --git a/src/Services/Marketing/Marketing.API/Dockerfile.develop b/src/Services/Marketing/Marketing.API/Dockerfile.develop index 60fc6dd7c6..2911c5fb7d 100644 --- a/src/Services/Marketing/Marketing.API/Dockerfile.develop +++ b/src/Services/Marketing/Marketing.API/Dockerfile.develop @@ -5,14 +5,14 @@ ENV DOTNET_USE_POLLING_FILE_WATCHER=true EXPOSE 80 WORKDIR /src -COPY ["src/Services/Marketing/Marketing.API/Marketing.API.csproj", "src/Services/Marketing/Marketing.API/"] -COPY ["src/BuildingBlocks/EventBus/EventBus/EventBus.csproj", "src/BuildingBlocks/EventBus/EventBus/"] -COPY ["src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "src/BuildingBlocks/EventBus/EventBusRabbitMQ/"] -COPY ["src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "src/BuildingBlocks/EventBus/EventBusServiceBus/"] -COPY ["src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj", "src/BuildingBlocks/WebHostCustomization/WebHost.Customization/"] -RUN dotnet restore src/Services/Marketing/Marketing.API/Marketing.API.csproj -nowarn:msb3202,nu1503 +COPY [Services/Marketing/Marketing.API/Marketing.API.csproj", "Services/Marketing/Marketing.API/"] +COPY [BuildingBlocks/EventBus/EventBus/EventBus.csproj", "BuildingBlocks/EventBus/EventBus/"] +COPY [BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "BuildingBlocks/EventBus/EventBusRabbitMQ/"] +COPY [BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "BuildingBlocks/EventBus/EventBusServiceBus/"] +COPY [BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj", "BuildingBlocks/WebHostCustomization/WebHost.Customization/"] +RUN dotnet restore Services/Marketing/Marketing.API/Marketing.API.csproj -nowarn:msb3202,nu1503 COPY . . -WORKDIR "/src/src/Services/Marketing/Marketing.API" +WORKDIR "/src/Services/Marketing/Marketing.API" RUN dotnet build --no-restore -c $BUILD_CONFIGURATION ENTRYPOINT ["dotnet", "run", "--no-build", "--no-launch-profile", "-c", "$BUILD_CONFIGURATION", "--"] diff --git a/src/Services/Ordering/Ordering.API/Dockerfile b/src/Services/Ordering/Ordering.API/Dockerfile index dcb0d30225..3591abd0cf 100644 --- a/src/Services/Ordering/Ordering.API/Dockerfile +++ b/src/Services/Ordering/Ordering.API/Dockerfile @@ -7,21 +7,21 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/Services/Ordering/Ordering.API +WORKDIR /src/Services/Ordering/Ordering.API RUN dotnet publish -c Release -o /app FROM build as unittest -WORKDIR /src/src/Services/Ordering/Ordering.UnitTests +WORKDIR /src/Services/Ordering/Ordering.UnitTests FROM build as functionaltest -WORKDIR /src/src/Services/Ordering/Ordering.FunctionalTests +WORKDIR /src/Services/Ordering/Ordering.FunctionalTests FROM build AS publish diff --git a/src/Services/Ordering/Ordering.API/Dockerfile.develop b/src/Services/Ordering/Ordering.API/Dockerfile.develop index f91a71bd89..72d98aa72e 100644 --- a/src/Services/Ordering/Ordering.API/Dockerfile.develop +++ b/src/Services/Ordering/Ordering.API/Dockerfile.develop @@ -5,18 +5,18 @@ ENV DOTNET_USE_POLLING_FILE_WATCHER=true EXPOSE 80 WORKDIR /src -COPY ["src/BuildingBlocks/EventBus/EventBus/EventBus.csproj", "src/BuildingBlocks/EventBus/EventBus/"] -COPY ["src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "src/BuildingBlocks/EventBus/EventBusRabbitMQ/"] -COPY ["src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "src/BuildingBlocks/EventBus/EventBusServiceBus/"] -COPY ["src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj", "src/BuildingBlocks/EventBus/IntegrationEventLogEF/"] -COPY ["src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj", "src/BuildingBlocks/WebHostCustomization/WebHost.Customization/"] -COPY ["src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj", "src/Services/Ordering/Ordering.Domain/"] -COPY ["src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj", "src/Services/Ordering/Ordering.Infrastructure/"] -COPY ["src/Services/Ordering/Ordering.API/Ordering.API.csproj", "src/Services/Ordering/Ordering.API/"] +COPY ["BuildingBlocks/EventBus/EventBus/EventBus.csproj", "BuildingBlocks/EventBus/EventBus/"] +COPY ["BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "BuildingBlocks/EventBus/EventBusRabbitMQ/"] +COPY ["BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "BuildingBlocks/EventBus/EventBusServiceBus/"] +COPY ["BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj", "BuildingBlocks/EventBus/IntegrationEventLogEF/"] +COPY ["BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj", "BuildingBlocks/WebHostCustomization/WebHost.Customization/"] +COPY ["Services/Ordering/Ordering.Domain/Ordering.Domain.csproj", "Services/Ordering/Ordering.Domain/"] +COPY ["Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj", "Services/Ordering/Ordering.Infrastructure/"] +COPY ["Services/Ordering/Ordering.API/Ordering.API.csproj", "Services/Ordering/Ordering.API/"] -RUN dotnet restore src/Services/Ordering/Ordering.API/Ordering.API.csproj +RUN dotnet restore Services/Ordering/Ordering.API/Ordering.API.csproj COPY . . -WORKDIR /src/src/Services/Ordering/Ordering.API +WORKDIR /src/Services/Ordering/Ordering.API RUN dotnet build --no-restore -c $BUILD_CONFIGURATION ENTRYPOINT ["dotnet", "run", "--no-build", "--no-launch-profile", "-c", "$BUILD_CONFIGURATION", "--"] \ No newline at end of file diff --git a/src/Services/Payment/Payment.API/Dockerfile b/src/Services/Payment/Payment.API/Dockerfile index 1f2ab41d11..cb4a7eb59e 100644 --- a/src/Services/Payment/Payment.API/Dockerfile +++ b/src/Services/Payment/Payment.API/Dockerfile @@ -7,14 +7,14 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/Services/Payment/Payment.API +WORKDIR /src/Services/Payment/Payment.API RUN dotnet publish -c Release -o /app FROM build AS publish diff --git a/src/Services/Payment/Payment.API/Dockerfile.develop b/src/Services/Payment/Payment.API/Dockerfile.develop index 4b959f4b38..585fbe48f5 100644 --- a/src/Services/Payment/Payment.API/Dockerfile.develop +++ b/src/Services/Payment/Payment.API/Dockerfile.develop @@ -5,15 +5,15 @@ ENV DOTNET_USE_POLLING_FILE_WATCHER=true EXPOSE 80 WORKDIR /src -COPY ["src/BuildingBlocks/EventBus/EventBus/EventBus.csproj", "src/BuildingBlocks/EventBus/EventBus/"] -COPY ["src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "src/BuildingBlocks/EventBus/EventBusRabbitMQ/"] -COPY ["src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "src/BuildingBlocks/EventBus/EventBusServiceBus/"] -COPY ["src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj", "src/BuildingBlocks/EventBus/IntegrationEventLogEF/"] -COPY ["src/Services/Payment/Payment.API/Payment.API.csproj", "src/Services/Payment/Payment.API/"] +COPY ["BuildingBlocks/EventBus/EventBus/EventBus.csproj", "BuildingBlocks/EventBus/EventBus/"] +COPY ["BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "BuildingBlocks/EventBus/EventBusRabbitMQ/"] +COPY ["BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "BuildingBlocks/EventBus/EventBusServiceBus/"] +COPY ["BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj", "BuildingBlocks/EventBus/IntegrationEventLogEF/"] +COPY ["Services/Payment/Payment.API/Payment.API.csproj", "Services/Payment/Payment.API/"] -RUN dotnet restore src/Services/Payment/Payment.API/Payment.API.csproj +RUN dotnet restore Services/Payment/Payment.API/Payment.API.csproj COPY . . -WORKDIR /src/src/Services/Payment/Payment.API +WORKDIR /src/Services/Payment/Payment.API RUN dotnet build --no-restore -c $BUILD_CONFIGURATION ENTRYPOINT ["dotnet", "run", "--no-build", "--no-launch-profile", "-c", "$BUILD_CONFIGURATION", "--"] \ No newline at end of file diff --git a/src/Services/Webhooks/Webhooks.API/Dockerfile b/src/Services/Webhooks/Webhooks.API/Dockerfile index 5d3f6da5a9..6c27341f76 100644 --- a/src/Services/Webhooks/Webhooks.API/Dockerfile +++ b/src/Services/Webhooks/Webhooks.API/Dockerfile @@ -7,14 +7,14 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR "/src/src/Services/Webhooks/Webhooks.API" +WORKDIR /src/Services/Webhooks/Webhooks.API RUN dotnet publish -c Release -o /app FROM build AS publish diff --git a/src/Services/Webhooks/Webhooks.API/Dockerfile.develop b/src/Services/Webhooks/Webhooks.API/Dockerfile.develop index 3cc1084f95..2c16150e46 100644 --- a/src/Services/Webhooks/Webhooks.API/Dockerfile.develop +++ b/src/Services/Webhooks/Webhooks.API/Dockerfile.develop @@ -6,17 +6,17 @@ EXPOSE 80 WORKDIR /src -COPY ["src/BuildingBlocks/EventBus/EventBus/EventBus.csproj", "src/BuildingBlocks/EventBus/EventBus/"] -COPY ["src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "src/BuildingBlocks/EventBus/EventBusRabbitMQ/"] -COPY ["src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "src/BuildingBlocks/EventBus/EventBusServiceBus/"] -COPY ["src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj", "src/BuildingBlocks/EventBus/IntegrationEventLogEF/"] -COPY ["src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj", "src/BuildingBlocks/WebHostCustomization/WebHost.Customization/"] -COPY ["src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj", "src/BuildingBlocks/Devspaces.Support/"] -COPY ["src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj", "src/Services/Webhooks/Webhooks.API/"] +COPY ["BuildingBlocks/EventBus/EventBus/EventBus.csproj", "BuildingBlocks/EventBus/EventBus/"] +COPY ["BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj", "BuildingBlocks/EventBus/EventBusRabbitMQ/"] +COPY ["BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj", "BuildingBlocks/EventBus/EventBusServiceBus/"] +COPY ["BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj", "BuildingBlocks/EventBus/IntegrationEventLogEF/"] +COPY ["BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj", "BuildingBlocks/WebHostCustomization/WebHost.Customization/"] +COPY ["BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj", "BuildingBlocks/Devspaces.Support/"] +COPY ["Services/Webhooks/Webhooks.API/Webhooks.API.csproj", "Services/Webhooks/Webhooks.API/"] -RUN dotnet restore src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj -nowarn:msb3202,nu1503 +RUN dotnet restore Services/Webhooks/Webhooks.API/Webhooks.API.csproj -nowarn:msb3202,nu1503 COPY . . -WORKDIR "/src/src/Services/Webhooks/Webhooks.API" +WORKDIR "/src/Services/Webhooks/Webhooks.API" RUN dotnet build --no-restore -c $BUILD_CONFIGURATION ENTRYPOINT ["dotnet", "run", "--no-build", "--no-launch-profile", "-c", "$BUILD_CONFIGURATION", "--"] \ No newline at end of file diff --git a/src/Web/WebMVC/Dockerfile b/src/Web/WebMVC/Dockerfile index c32a34295a..9dc27258fb 100644 --- a/src/Web/WebMVC/Dockerfile +++ b/src/Web/WebMVC/Dockerfile @@ -7,14 +7,14 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/Web/WebMVC +WORKDIR /src/Web/WebMVC RUN dotnet publish -c Release -o /app FROM build AS publish diff --git a/src/Web/WebMVC/Dockerfile.develop b/src/Web/WebMVC/Dockerfile.develop index 6ff9cc8699..172f6bf051 100644 --- a/src/Web/WebMVC/Dockerfile.develop +++ b/src/Web/WebMVC/Dockerfile.develop @@ -5,11 +5,11 @@ ENV DOTNET_USE_POLLING_FILE_WATCHER=true EXPOSE 80 WORKDIR /src -COPY ["src/Web/WebMVC/WebMVC.csproj", "src/Web/WebMVC/"] -COPY ["src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj", "src/BuildingBlocks/Devspaces.Support/"] -RUN dotnet restore "src/Web/WebMVC/WebMVC.csproj" +COPY ["Web/WebMVC/WebMVC.csproj", "Web/WebMVC/"] +COPY ["BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj", "BuildingBlocks/Devspaces.Support/"] +RUN dotnet restore "Web/WebMVC/WebMVC.csproj" COPY . . -WORKDIR "/src/src/Web/WebMVC" +WORKDIR "/src/Web/WebMVC" RUN dotnet build --no-restore "WebMVC.csproj" -c $BUILD_CONFIGURATION ENTRYPOINT ["dotnet", "run", "--no-build", "--no-launch-profile", "-c", "$BUILD_CONFIGURATION", "--"] \ No newline at end of file diff --git a/src/Web/WebSPA/Dockerfile b/src/Web/WebSPA/Dockerfile index 14617aaa79..f32b76e6ef 100644 --- a/src/Web/WebSPA/Dockerfile +++ b/src/Web/WebSPA/Dockerfile @@ -5,7 +5,7 @@ EXPOSE 80 FROM ${NODE_IMAGE} as node-build WORKDIR /web -COPY src/Web/WebSPA . +COPY Web/WebSPA . RUN npm install RUN npm run build:prod @@ -14,15 +14,15 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -COPY --from=node-build /web/wwwroot /src/src/Web/WebSPA/wwwroot/ -WORKDIR /src/src/Web/WebSPA +COPY --from=node-build /web/wwwroot /src/Web/WebSPA/wwwroot/ +WORKDIR /src/Web/WebSPA RUN dotnet publish -c Release -o /app FROM build AS publish diff --git a/src/Web/WebStatus/Dockerfile b/src/Web/WebStatus/Dockerfile index 35c81d594f..95fa8b1062 100644 --- a/src/Web/WebStatus/Dockerfile +++ b/src/Web/WebStatus/Dockerfile @@ -7,14 +7,14 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/Web/WebStatus +WORKDIR /src/Web/WebStatus RUN dotnet publish -c Release -o /app FROM build AS publish diff --git a/src/Web/WebhookClient/Dockerfile b/src/Web/WebhookClient/Dockerfile index b756936f76..d0ed6fb4ad 100644 --- a/src/Web/WebhookClient/Dockerfile +++ b/src/Web/WebhookClient/Dockerfile @@ -8,14 +8,14 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/Web/WebhookClient +WORKDIR /src/Web/WebhookClient RUN dotnet publish -c Release -o /app FROM build AS publish diff --git a/package-lock.json b/src/package-lock.json similarity index 100% rename from package-lock.json rename to src/package-lock.json diff --git a/scripts/restore-packages b/src/scripts/restore-packages similarity index 100% rename from scripts/restore-packages rename to src/scripts/restore-packages diff --git a/scripts/restore-packages.cmd b/src/scripts/restore-packages.cmd similarity index 100% rename from scripts/restore-packages.cmd rename to src/scripts/restore-packages.cmd From 63e20bb07f4edb88766eb503fea45bdfbbd43c77 Mon Sep 17 00:00:00 2001 From: ericuss Date: Wed, 28 Aug 2019 14:12:57 +0200 Subject: [PATCH 074/149] refactor mobile bff --- docker-compose.override.yml | 1 + .../aggregator/Config/UrlsConfig.cs | 1 + .../aggregator/Services/BasketService.cs | 52 ++++--------- .../aggregator/Services/CatalogService.cs | 26 ++++--- .../aggregator/Services/GrpcCallerService.cs | 73 +++++++++++++++++++ .../aggregator/Services/OrderingService.cs | 43 +++-------- .../aggregator/appsettings.json | 5 -- .../aggregator/appsettings.localhost.json | 1 + .../aggregator/Services/CatalogService.cs | 16 ++-- 9 files changed, 125 insertions(+), 93 deletions(-) create mode 100644 src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/GrpcCallerService.cs diff --git a/docker-compose.override.yml b/docker-compose.override.yml index a8fce70bad..8bd11cb914 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -286,6 +286,7 @@ services: - urls__orders=http://ordering.api - urls__identity=http://identity.api - urls__grpcBasket=http://10.0.75.1:5580 + - urls__grpcCatalog=http://10.0.75.1:9101 - urls__grpcOrdering=http://10.0.75.1:5581 - CatalogUrlHC=http://catalog.api/hc - OrderingUrlHC=http://ordering.api/hc diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Config/UrlsConfig.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Config/UrlsConfig.cs index 7fd7cb5f3f..c0bb9502e4 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Config/UrlsConfig.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Config/UrlsConfig.cs @@ -28,6 +28,7 @@ public class OrdersOperations public string Catalog { get; set; } public string Orders { get; set; } public string GrpcBasket { get; set; } + public string GrpcCatalog { get; set; } public string GrpcOrdering { get; set; } } } diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs index fa1fc9ffe3..80846ca3d3 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/BasketService.cs @@ -27,50 +27,28 @@ public BasketService(HttpClient httpClient, IOptions config, ILogger public async Task GetById(string id) { - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); - - using (var httpClientHandler = new HttpClientHandler()) + return await GrpcCallerService.CallService(_urls.GrpcBasket, async httpClient => { - httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; - using (var httpClient = new HttpClient(httpClientHandler)) - { - //httpClient.BaseAddress = new Uri("http://10.0.75.1:5580"); - httpClient.BaseAddress = new Uri(_urls.GrpcBasket); - - _logger.LogDebug("Creating grpc client for basket {@httpClient.BaseAddress} ", httpClient.BaseAddress); - - var client = GrpcClient.Create(httpClient); - - _logger.LogDebug("grpc client created, request = {@id}", id); - - try - { - - var response = await client.GetBasketByIdAsync(new BasketRequest { Id = id }); + var client = GrpcClient.Create(httpClient); + _logger.LogDebug("grpc client created, request = {@id}", id); + var response = await client.GetBasketByIdAsync(new BasketRequest { Id = id }); + _logger.LogDebug("grpc response {@response}", response); - _logger.LogDebug("grpc response {@response}", response); - - return MapToBasketData(response); - } - catch (RpcException e) - { - _logger.LogError($"Error calling via grpc: {e.Status} - {e.Message}"); - } - } - } - - return null; + return MapToBasketData(response); + }); } public async Task UpdateAsync(BasketData currentBasket) { - _httpClient.BaseAddress = new Uri(_urls.Basket + UrlsConfig.BasketOperations.UpdateBasket()); - - var client = GrpcClient.Create(_httpClient); - var request = MapToCustomerBasketRequest(currentBasket); + await GrpcCallerService.CallService(_urls.GrpcBasket, async httpClient => + { + var client = GrpcClient.Create(httpClient); + _logger.LogDebug("Grpc update basket currentBasket {@currentBasket}", currentBasket); + var request = MapToCustomerBasketRequest(currentBasket); + _logger.LogDebug("Grpc update basket request {@request}", request); - await client.UpdateBasketAsync(request); + return client.UpdateBasketAsync(request); + }); } private BasketData MapToBasketData(CustomerBasketResponse customerBasketRequest) diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/CatalogService.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/CatalogService.cs index fbcc8349b7..b03ad9bab9 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/CatalogService.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/CatalogService.cs @@ -3,9 +3,8 @@ using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Config; using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models; using Microsoft.Extensions.Options; -using Newtonsoft.Json; -using System; using System.Collections.Generic; +using System.Linq; using System.Net.Http; using System.Threading.Tasks; using static CatalogApi.Catalog; @@ -25,21 +24,26 @@ public CatalogService(HttpClient httpClient, IOptions config) public async Task GetCatalogItemAsync(int id) { - _httpClient.BaseAddress = new Uri(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemById(id)); - var client = GrpcClient.Create(_httpClient); - var request = new CatalogItemRequest { Id = id }; - var response = await client.GetItemByIdAsync(request); - - return MapToCatalogItemResponse(response); + return await GrpcCallerService.CallService(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemById(id), async httpClient => + { + var client = GrpcClient.Create(_httpClient); + var request = new CatalogItemRequest { Id = id }; + var response = await client.GetItemByIdAsync(request); + return MapToCatalogItemResponse(response); + }); } public async Task> GetCatalogItemsAsync(IEnumerable ids) { - var stringContent = await _httpClient.GetStringAsync(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemsById(ids)); - var catalogItems = JsonConvert.DeserializeObject(stringContent); - return catalogItems; + return await GrpcCallerService.CallService(_urls.GrpcCatalog, async httpClient => + { + var client = GrpcClient.Create(httpClient); + var request = new CatalogItemsRequest { Ids = string.Join(",", ids), PageIndex = 1, PageSize = 10 }; + var response = await client.GetItemsByIdsAsync(request); + return response.Data.Select(this.MapToCatalogItemResponse); + }); } private CatalogItem MapToCatalogItemResponse(CatalogItemResponse catalogItemResponse) diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/GrpcCallerService.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/GrpcCallerService.cs new file mode 100644 index 0000000000..e730be3278 --- /dev/null +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/GrpcCallerService.cs @@ -0,0 +1,73 @@ +using System.Net.Http; +using System.Threading.Tasks; +using System; +using Grpc.Core; +using Serilog; + +namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Services +{ + public static class GrpcCallerService + { + public static async Task CallService(string urlGrpc, Func> func) + { + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); + + using var httpClientHandler = new HttpClientHandler + { + ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; } + }; + + using var httpClient = new HttpClient(httpClientHandler) + { + BaseAddress = new Uri(urlGrpc) + }; + + Log.Information("Creating grpc client base address urlGrpc ={@urlGrpc}, BaseAddress={@BaseAddress} ", urlGrpc, httpClient.BaseAddress); + + try + { + return await func(httpClient); + } + catch (RpcException e) + { + Log.Error($"Error calling via grpc: {e.Status} - {e.Message}"); + } + + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", false); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", false); + + return default; + } + + public static async Task CallService(string urlGrpc, Func func) + { + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); + + using var httpClientHandler = new HttpClientHandler + { + ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; } + }; + + using var httpClient = new HttpClient(httpClientHandler) + { + BaseAddress = new Uri(urlGrpc) + }; + + Log.Debug("Creating grpc client base address {@httpClient.BaseAddress} ", httpClient.BaseAddress); + + try + { + await func(httpClient); + } + catch (RpcException e) + { + Log.Error($"Error calling via grpc: {e.Status} - {e.Message}"); + } + + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", false); + AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", false); + } + } +} diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/OrderingService.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/OrderingService.cs index f1e56c2ef4..d42c14344f 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/OrderingService.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/OrderingService.cs @@ -3,12 +3,10 @@ using Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Models; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using System; using System.Linq; using System.Net.Http; using System.Threading.Tasks; using GrpcOrdering; -using Grpc.Core; namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Services { @@ -27,43 +25,21 @@ public OrderingService(HttpClient httpClient, IOptions config, ILogg public async Task GetOrderDraftAsync(BasketData basketData) { - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); - using (var httpClientHandler = new HttpClientHandler()) + return await GrpcCallerService.CallService(_urls.GrpcOrdering, async httpClient => { - httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; - using (var httpClient = new HttpClient(httpClientHandler)) - { - httpClient.BaseAddress = new Uri(_urls.GrpcOrdering); + var client = GrpcClient.Create(httpClient); + _logger.LogDebug(" grpc client created, basketData={@basketData}", basketData); - _logger.LogDebug(" Creating grpc client for ordering {@httpClient.BaseAddress}", httpClient.BaseAddress); + var command = MapToOrderDraftCommand(basketData); + var response = await client.CreateOrderDraftFromBasketDataAsync(command); + _logger.LogDebug(" grpc response: {@response}", response); - var client = GrpcClient.Create(httpClient); - - _logger.LogDebug(" grpc client created, basketData={@basketData}", basketData); - - try - { - - var command = MapToOrderDraftCommand(basketData); - var response = await client.CreateOrderDraftFromBasketDataAsync(command); - - _logger.LogDebug(" grpc response: {@response}", response); - - return MapToResponse(response); - } - catch (RpcException e) - { - _logger.LogError($"Error calling via grpc to ordering: {e.Status} - {e.Message}"); - } - } - } - - return null; + return MapToResponse(response, basketData); + }); } - private OrderData MapToResponse(GrpcOrdering.OrderDraftDTO orderDraft) + private OrderData MapToResponse(GrpcOrdering.OrderDraftDTO orderDraft, BasketData basketData) { if (orderDraft == null) { @@ -72,6 +48,7 @@ private OrderData MapToResponse(GrpcOrdering.OrderDraftDTO orderDraft) var data = new OrderData { + Buyer = basketData.BuyerId, Total = (decimal)orderDraft.Total, }; diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.json b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.json index 95b8bad4c8..26bb0ac7ac 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.json +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.json @@ -1,9 +1,4 @@ { - "Kestrel": { - "EndpointDefaults": { - "Protocols": "Http2" - } - }, "Logging": { "IncludeScopes": false, "Debug": { diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.localhost.json b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.localhost.json index f14ca24b99..86fd1541d5 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.localhost.json +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/appsettings.localhost.json @@ -5,6 +5,7 @@ "orders": "http://localhost:55102", "identity": "http://localhost:55105", "grpcBasket": "http://localhost:5580", + "grpcCatalog": "http://localhost:81", "grpcOrdering": "http://localhost:5581" }, "IdentityUrlExternal": "http://localhost:5105", diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs index 5e3e4e2f0f..a03c67db2d 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/CatalogService.cs @@ -28,13 +28,15 @@ public CatalogService(HttpClient httpClient, ILogger logger, IOp public async Task GetCatalogItemAsync(int id) { - _httpClient.BaseAddress = new Uri(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemById(id)); - - var client = GrpcClient.Create(_httpClient); - var request = new CatalogItemRequest { Id = id }; - var response = await client.GetItemByIdAsync(request); - - return MapToCatalogItemResponse(response); + return await GrpcCallerService.CallService(_urls.GrpcCatalog, async httpClient => + { + var client = GrpcClient.Create(httpClient); + var request = new CatalogItemRequest { Id = id }; + _logger.LogInformation("grpc client created, request = {@request}", request); + var response = await client.GetItemByIdAsync(request); + _logger.LogInformation("grpc response {@response}", response); + return MapToCatalogItemResponse(response); + }); } public async Task> GetCatalogItemsAsync(IEnumerable ids) From f83b873ded1edea8f78bc01e98b4271d49b11e1d Mon Sep 17 00:00:00 2001 From: eiximenis Date: Wed, 28 Aug 2019 14:23:12 +0200 Subject: [PATCH 075/149] Deleted unneeded Dockerfile --- src/ApiGateways/Envoy/Dockerfile | 1 - 1 file changed, 1 deletion(-) delete mode 100644 src/ApiGateways/Envoy/Dockerfile diff --git a/src/ApiGateways/Envoy/Dockerfile b/src/ApiGateways/Envoy/Dockerfile deleted file mode 100644 index 0f714330f2..0000000000 --- a/src/ApiGateways/Envoy/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -FROM envoyproxy/envoy \ No newline at end of file From 7f88a71cce16f828bc811e534bb1d12ab6bb29d4 Mon Sep 17 00:00:00 2001 From: ericuss Date: Thu, 29 Aug 2019 09:38:03 +0200 Subject: [PATCH 076/149] update dockerfiles --- src/ApiGateways/ApiGw-Base/Dockerfile | 12 ++++++------ .../Ordering/Ordering.BackgroundTasks/Dockerfile | 13 +++++++------ .../Ordering/Ordering.SignalrHub/Dockerfile | 12 ++++++------ 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/ApiGateways/ApiGw-Base/Dockerfile b/src/ApiGateways/ApiGw-Base/Dockerfile index 7a5bb928cf..00da7c4617 100644 --- a/src/ApiGateways/ApiGw-Base/Dockerfile +++ b/src/ApiGateways/ApiGw-Base/Dockerfile @@ -6,14 +6,14 @@ FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/ApiGateways/ApiGw-Base/ +WORKDIR /src/ApiGateways/ApiGw-Base/ RUN dotnet publish -c Release -o /app FROM build AS publish diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile index 820f8d4b1c..87a7358270 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile @@ -7,14 +7,15 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ + COPY . . -WORKDIR /src/src/Services/Ordering/Ordering.BackgroundTasks +WORKDIR /src/Services/Ordering/Ordering.BackgroundTasks RUN dotnet publish -c Release -o /app FROM build AS publish diff --git a/src/Services/Ordering/Ordering.SignalrHub/Dockerfile b/src/Services/Ordering/Ordering.SignalrHub/Dockerfile index 15389786c0..3174a47817 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Dockerfile +++ b/src/Services/Ordering/Ordering.SignalrHub/Dockerfile @@ -7,14 +7,14 @@ WORKDIR /src COPY scripts scripts/ -COPY src/ApiGateways/*/*.csproj /src/csproj-files/ -COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/ -COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/ -COPY src/Services/*/*/*.csproj /src/csproj-files/ -COPY src/Web/*/*.csproj /src/csproj-files/ +COPY ApiGateways/*/*.csproj csproj-files/ +COPY ApiGateways/*/*/*.csproj csproj-files/ +COPY BuildingBlocks/*/*/*.csproj csproj-files/ +COPY Services/*/*/*.csproj csproj-files/ +COPY Web/*/*.csproj csproj-files/ COPY . . -WORKDIR /src/src/Services/Ordering/Ordering.SignalrHub +WORKDIR /src/Services/Ordering/Ordering.SignalrHub RUN dotnet publish -c Release -o /app FROM build AS publish From 4398b25fc1e4988b93dc5a2848fbb2ab019dbf2f Mon Sep 17 00:00:00 2001 From: ericuss Date: Thu, 29 Aug 2019 13:13:10 +0200 Subject: [PATCH 077/149] Fix mvc calls to grpc --- .../aggregator/Controllers/BasketController.cs | 10 ++++++---- .../aggregator/Services/BasketService.cs | 2 +- .../Basket/Basket.API/Controllers/BasketController.cs | 10 ---------- src/Services/Basket/Basket.API/Model/CustomerBasket.cs | 3 +-- src/Web/WebMVC/Controllers/CartController.cs | 4 ++-- 5 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs index 5905ae2145..429d6e82d1 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Controllers/BasketController.cs @@ -125,12 +125,14 @@ public async Task AddBasketItemAsync([FromBody] AddBasketItemReque var currentBasket = (await _basket.GetById(data.BasketId)) ?? new BasketData(data.BasketId); // Step 3: Search if exist product into basket var product = currentBasket.Items.SingleOrDefault(i => i.ProductId == item.Id.ToString()); - - if(product != null){ + + if (product != null) + { // Step 4: Update quantity for product product.Quantity += data.Quantity; } - else{ + else + { // Step 4: Merge current status with new product currentBasket.Items.Add(new BasketDataItem() { @@ -142,7 +144,7 @@ public async Task AddBasketItemAsync([FromBody] AddBasketItemReque Id = Guid.NewGuid().ToString() }); } - + // Step 5: Update basket await _basket.UpdateAsync(currentBasket); diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs index 3875f3bdbe..8eb8865fee 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/BasketService.cs @@ -46,7 +46,7 @@ await GrpcCallerService.CallService(_urls.GrpcBasket, async httpClient => var request = MapToCustomerBasketRequest(currentBasket); _logger.LogDebug("Grpc update basket request {@request}", request); - return client.UpdateBasketAsync(request); + return await client.UpdateBasketAsync(request); }); } diff --git a/src/Services/Basket/Basket.API/Controllers/BasketController.cs b/src/Services/Basket/Basket.API/Controllers/BasketController.cs index fca0333012..59f117a3b6 100644 --- a/src/Services/Basket/Basket.API/Controllers/BasketController.cs +++ b/src/Services/Basket/Basket.API/Controllers/BasketController.cs @@ -63,8 +63,6 @@ public async Task CheckoutAsync([FromBody]BasketCheckout basketChe basketCheckout.RequestId = (Guid.TryParse(requestId, out Guid guid) && guid != Guid.Empty) ? guid : basketCheckout.RequestId; - _logger.LogInformation("----- CheckoutAsync userId: {userId} ", userId); - var basket = await _repository.GetBasketAsync(userId); if (basket == null) @@ -72,14 +70,8 @@ public async Task CheckoutAsync([FromBody]BasketCheckout basketChe return BadRequest(); } - _logger.LogInformation("----- CheckoutAsync basket: {@basket} ", basket); - - _logger.LogInformation("----- CheckoutAsync user identity: {User} ", string.Join(':', ((ClaimsIdentity)User.Identity).Claims.Select(c => c.Type + " " + c.Value))); - var userName = User.FindFirst(x => x.Type == ClaimTypes.Name).Value; - _logger.LogInformation("----- CheckoutAsync userName: {@userName} ", userName); - var eventMessage = new UserCheckoutAcceptedIntegrationEvent(userId, userName, basketCheckout.City, basketCheckout.Street, basketCheckout.State, basketCheckout.Country, basketCheckout.ZipCode, basketCheckout.CardNumber, basketCheckout.CardHolderName, basketCheckout.CardExpiration, basketCheckout.CardSecurityNumber, basketCheckout.CardTypeId, basketCheckout.Buyer, basketCheckout.RequestId, basket); @@ -89,8 +81,6 @@ public async Task CheckoutAsync([FromBody]BasketCheckout basketChe // order creation process try { - _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", eventMessage.Id, Program.AppName, eventMessage); - _eventBus.Publish(eventMessage); } catch (Exception ex) diff --git a/src/Services/Basket/Basket.API/Model/CustomerBasket.cs b/src/Services/Basket/Basket.API/Model/CustomerBasket.cs index b075f3150d..9ae495d4f4 100644 --- a/src/Services/Basket/Basket.API/Model/CustomerBasket.cs +++ b/src/Services/Basket/Basket.API/Model/CustomerBasket.cs @@ -6,7 +6,7 @@ public class CustomerBasket { public string BuyerId { get; set; } - public List Items { get; set; } + public List Items { get; set; } = new List(); public CustomerBasket() { @@ -16,7 +16,6 @@ public CustomerBasket() public CustomerBasket(string customerId) { BuyerId = customerId; - Items = new List(); } } } diff --git a/src/Web/WebMVC/Controllers/CartController.cs b/src/Web/WebMVC/Controllers/CartController.cs index 6887c8d413..b05009cc7d 100644 --- a/src/Web/WebMVC/Controllers/CartController.cs +++ b/src/Web/WebMVC/Controllers/CartController.cs @@ -41,7 +41,7 @@ public async Task Index() return View(); } - + [HttpPost] public async Task Index(Dictionary quantities, string action) { @@ -72,7 +72,7 @@ public async Task AddToCart(CatalogItem productDetails) var user = _appUserParser.Parse(HttpContext.User); await _basketSvc.AddItemToBasket(user, productDetails.Id); } - return RedirectToAction("Index", "Catalog"); + return RedirectToAction("Index", "Catalog"); } catch (BrokenCircuitException) { From 10759109aba67d4cead55848ededa1993a753733 Mon Sep 17 00:00:00 2001 From: ericuss Date: Thu, 29 Aug 2019 16:16:24 +0200 Subject: [PATCH 078/149] temporal fix to get the order in local dbset of orders for UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs --- .../Repositories/OrderRepository.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs b/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs index 1047d6c7e1..c6d57b17bb 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs @@ -28,7 +28,7 @@ public OrderRepository(OrderingContext context) public Order Add(Order order) { return _context.Orders.Add(order).Entity; - + } public async Task GetAsync(int orderId) @@ -37,6 +37,14 @@ public async Task GetAsync(int orderId) .Orders .Include(x => x.Address) .FirstOrDefaultAsync(o => o.Id == orderId); + if (order == null) + { + + order = _context + .Orders + .Local + .FirstOrDefault(o => o.Id == orderId); + } if (order != null) { await _context.Entry(order) From e689cfd65e739070f58654d6240f4ec3346bb496 Mon Sep 17 00:00:00 2001 From: ericuss Date: Thu, 29 Aug 2019 16:17:06 +0200 Subject: [PATCH 079/149] add using --- .../Ordering.Infrastructure/Repositories/OrderRepository.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs b/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs index c6d57b17bb..4d4f64d7a7 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs @@ -3,6 +3,7 @@ using Microsoft.eShopOnContainers.Services.Ordering.Domain.Seedwork; using Ordering.Domain.Exceptions; using System; +using System.Linq; using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Repositories From ffe2884dc4c752ae5e522d2698b88500ce79ae75 Mon Sep 17 00:00:00 2001 From: ericuss Date: Fri, 30 Aug 2019 14:20:26 +0200 Subject: [PATCH 080/149] fix checkout process of mvc app --- .../OrderStartedIntegrationEventHandler.cs | 2 - ...ductPriceChangedIntegrationEventHandler.cs | 4 -- .../Catalog.API/Grpc/CatalogService.cs | 7 ---- .../CatalogIntegrationEventService.cs | 4 -- ...aitingValidationIntegrationEventHandler.cs | 2 - ...tusChangedToPaidIntegrationEventHandler.cs | 2 - .../Services/LocationsService.cs | 3 -- ...rLocationUpdatedIntegrationEventHandler.cs | 2 - .../Behaviors/ValidatorBehavior.cs | 2 - .../Commands/CreateOrderCommandHandler.cs | 2 - ...PaymentMethodVerifiedDomainEventHandler.cs | 1 - ...egateWhenOrderStartedDomainEventHandler.cs | 15 ++++---- ...ePeriodConfirmedIntegrationEventHandler.cs | 2 - ...derPaymentFailedIntegrationEventHandler.cs | 2 - ...rPaymentSuccededIntegrationEventHandler.cs | 2 - ...erStockConfirmedIntegrationEventHandler.cs | 2 - ...derStockRejectedIntegrationEventHandler.cs | 2 - ...CheckoutAcceptedIntegrationEventHandler.cs | 10 +---- .../OrderingIntegrationEventService.cs | 4 -- .../Controllers/OrdersController.cs | 6 +-- .../Ordering.API/Grpc/OrderingService.cs | 2 +- .../Tasks/GracePeriodManagerTask.cs | 2 - .../AggregatesModel/OrderAggregate/Order.cs | 7 ++-- .../OrderEntityTypeConfiguration.cs | 38 +++++++++++++++---- .../OrderItemEntityTypeConfiguration.cs | 25 +++++++++--- .../PaymentMethodEntityTypeConfiguration.cs | 28 +++++++++++--- .../Repositories/OrderRepository.cs | 1 - ...aitingValidationIntegrationEventHandler.cs | 2 - ...angedToCancelledIntegrationEventHandler.cs | 2 - ...tusChangedToPaidIntegrationEventHandler.cs | 2 - ...ChangedToShippedIntegrationEventHandler.cs | 2 - ...ToStockConfirmedIntegrationEventHandler.cs | 2 - ...angedToSubmittedIntegrationEventHandler.cs | 2 - ...ToStockConfirmedIntegrationEventHandler.cs | 4 -- .../WebMVC/Controllers/AccountController.cs | 2 - 35 files changed, 90 insertions(+), 107 deletions(-) diff --git a/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/OrderStartedIntegrationEventHandler.cs b/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/OrderStartedIntegrationEventHandler.cs index cb7b6a2d66..4fc2e2ec05 100644 --- a/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/OrderStartedIntegrationEventHandler.cs +++ b/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/OrderStartedIntegrationEventHandler.cs @@ -26,8 +26,6 @@ public async Task Handle(OrderStartedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - await _repository.DeleteBasketAsync(@event.UserId.ToString()); } } diff --git a/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/ProductPriceChangedIntegrationEventHandler.cs b/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/ProductPriceChangedIntegrationEventHandler.cs index c27200e6f9..d303e07719 100644 --- a/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/ProductPriceChangedIntegrationEventHandler.cs +++ b/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/ProductPriceChangedIntegrationEventHandler.cs @@ -26,8 +26,6 @@ public async Task Handle(ProductPriceChangedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - var userIds = _repository.GetUsers(); foreach (var id in userIds) @@ -46,8 +44,6 @@ private async Task UpdatePriceInBasketItems(int productId, decimal newPrice, dec if (itemsToUpdate != null) { - _logger.LogInformation("----- ProductPriceChangedIntegrationEventHandler - Updating items in basket for user: {BuyerId} ({@Items})", basket.BuyerId, itemsToUpdate); - foreach (var item in itemsToUpdate) { if (item.UnitPrice == oldPrice) diff --git a/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs b/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs index 9c620a4819..39d7828c2c 100644 --- a/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs +++ b/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs @@ -64,12 +64,10 @@ public override async Task GetItemById(CatalogItemRequest r public override async Task GetItemsByIds(CatalogItemsRequest request, ServerCallContext context) { - _logger.LogInformation("---------- GetItemsByIds request {@request}", request); if (!string.IsNullOrEmpty(request.Ids)) { var items = await GetItemsByIdsAsync(request.Ids); - _logger.LogInformation("---------- GetItemsByIds items {@items}", items); if (!items.Any()) { context.Status = new Status(StatusCode.NotFound, $"ids value invalid. Must be comma-separated list of numbers"); @@ -78,18 +76,15 @@ public override async Task GetItemsByIds(CatalogItemsReq return this.MapToResponse(items); } - _logger.LogInformation("---------- GetItemsByIds else"); var totalItems = await _catalogContext.CatalogItems .LongCountAsync(); - _logger.LogInformation("---------- GetItemsByIds totalItems {@totalItems}", totalItems); var itemsOnPage = await _catalogContext.CatalogItems .OrderBy(c => c.Name) .Skip(request.PageSize * request.PageIndex) .Take(request.PageSize) .ToListAsync(); - _logger.LogInformation("---------- GetItemsByIds itemsOnPage {@itemsOnPage}", itemsOnPage); /* The "awesome" fix for testing Devspaces */ /* @@ -100,10 +95,8 @@ public override async Task GetItemsByIds(CatalogItemsReq */ itemsOnPage = ChangeUriPlaceholder(itemsOnPage); - _logger.LogInformation("---------- GetItemsByIds itemsOnPage2 {@itemsOnPage}", itemsOnPage); var model = this.MapToResponse(itemsOnPage, totalItems, request.PageIndex, request.PageSize); - _logger.LogInformation("---------- GetItemsByIds model {@model}", model); context.Status = new Status(StatusCode.OK, string.Empty); return model; diff --git a/src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs b/src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs index bb3a23d409..e84de7e9e8 100644 --- a/src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs +++ b/src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs @@ -39,8 +39,6 @@ public async Task PublishThroughEventBusAsync(IntegrationEvent evt) { try { - _logger.LogInformation("----- Publishing integration event: {IntegrationEventId_published} from {AppName} - ({@IntegrationEvent})", evt.Id, Program.AppName, evt); - await _eventLogService.MarkEventAsInProgressAsync(evt.Id); _eventBus.Publish(evt); await _eventLogService.MarkEventAsPublishedAsync(evt.Id); @@ -54,8 +52,6 @@ public async Task PublishThroughEventBusAsync(IntegrationEvent evt) public async Task SaveEventAndCatalogContextChangesAsync(IntegrationEvent evt) { - _logger.LogInformation("----- CatalogIntegrationEventService - Saving changes and integrationEvent: {IntegrationEventId}", evt.Id); - //Use of an EF Core resiliency strategy when using multiple DbContexts within an explicit BeginTransaction(): //See: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency await ResilientTransaction.New(_catalogContext).ExecuteAsync(async () => diff --git a/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs b/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs index 493a271ccd..2c9fd337ce 100644 --- a/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs +++ b/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs @@ -32,8 +32,6 @@ public async Task Handle(OrderStatusChangedToAwaitingValidationIntegrationEvent { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - var confirmedOrderStockItems = new List(); foreach (var orderStockItem in @event.OrderStockItems) diff --git a/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs b/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs index 7d383254fb..e7520a6515 100644 --- a/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs +++ b/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs @@ -25,8 +25,6 @@ public async Task Handle(OrderStatusChangedToPaidIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - //we're not blocking stock/inventory foreach (var orderStockItem in @event.OrderStockItems) { diff --git a/src/Services/Location/Locations.API/Infrastructure/Services/LocationsService.cs b/src/Services/Location/Locations.API/Infrastructure/Services/LocationsService.cs index f6b9ed708d..dc91d0d50c 100644 --- a/src/Services/Location/Locations.API/Infrastructure/Services/LocationsService.cs +++ b/src/Services/Location/Locations.API/Infrastructure/Services/LocationsService.cs @@ -72,9 +72,6 @@ private void PublishNewUserLocationPositionIntegrationEvent(string userId, List< { var newUserLocations = MapUserLocationDetails(newLocations); var @event = new UserLocationUpdatedIntegrationEvent(userId, newUserLocations); - - _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - _eventBus.Publish(@event); } diff --git a/src/Services/Marketing/Marketing.API/IntegrationEvents/Handlers/UserLocationUpdatedIntegrationEventHandler.cs b/src/Services/Marketing/Marketing.API/IntegrationEvents/Handlers/UserLocationUpdatedIntegrationEventHandler.cs index 3d5e62e45c..5b93a17d0f 100644 --- a/src/Services/Marketing/Marketing.API/IntegrationEvents/Handlers/UserLocationUpdatedIntegrationEventHandler.cs +++ b/src/Services/Marketing/Marketing.API/IntegrationEvents/Handlers/UserLocationUpdatedIntegrationEventHandler.cs @@ -28,8 +28,6 @@ public async Task Handle(UserLocationUpdatedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - var userMarketingData = await _marketingDataRepository.GetAsync(@event.UserId); userMarketingData = userMarketingData ?? new MarketingData() { UserId = @event.UserId }; diff --git a/src/Services/Ordering/Ordering.API/Application/Behaviors/ValidatorBehavior.cs b/src/Services/Ordering/Ordering.API/Application/Behaviors/ValidatorBehavior.cs index 6fc12258b4..9be24e20f4 100644 --- a/src/Services/Ordering/Ordering.API/Application/Behaviors/ValidatorBehavior.cs +++ b/src/Services/Ordering/Ordering.API/Application/Behaviors/ValidatorBehavior.cs @@ -24,8 +24,6 @@ public async Task Handle(TRequest request, CancellationToken cancella { var typeName = request.GetGenericTypeName(); - _logger.LogInformation("----- Validating command {CommandType}", typeName); - var failures = _validators .Select(v => v.Validate(request)) .SelectMany(result => result.Errors) diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs b/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs index b2fff253df..1cbd215366 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs @@ -53,8 +53,6 @@ public async Task Handle(CreateOrderCommand message, CancellationToken can order.AddOrderItem(item.ProductId, item.ProductName, item.UnitPrice, item.Discount, item.PictureUrl, item.Units); } - _logger.LogInformation("----- Creating Order - Order: {@Order}", order); - _orderRepository.Add(order); return await _orderRepository.UnitOfWork diff --git a/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs index 32b9273683..4d3a3280c6 100644 --- a/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs @@ -27,7 +27,6 @@ public UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler( public async Task Handle(BuyerAndPaymentMethodVerifiedDomainEvent buyerPaymentMethodVerifiedEvent, CancellationToken cancellationToken) { var log = _logger.CreateLogger(); - log.LogInformation("----- Handling BuyerAndPaymentMethodVerifiedDomainEvent - buyerPaymentMethodVerifiedEvent: {@buyerPaymentMethodVerifiedEvent}", buyerPaymentMethodVerifiedEvent); var orderToUpdate = await _orderRepository.GetAsync(buyerPaymentMethodVerifiedEvent.OrderId); orderToUpdate.SetBuyerId(buyerPaymentMethodVerifiedEvent.Buyer.Id); orderToUpdate.SetPaymentId(buyerPaymentMethodVerifiedEvent.Payment.Id); diff --git a/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderStartedEvent/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderStartedEvent/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs index 054c20de50..5b8f19b001 100644 --- a/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderStartedEvent/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderStartedEvent/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs @@ -12,7 +12,7 @@ namespace Ordering.API.Application.DomainEventHandlers.OrderStartedEvent { - public class ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler + public class ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler : INotificationHandler { private readonly ILoggerFactory _logger; @@ -21,8 +21,8 @@ public class ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler private readonly IOrderingIntegrationEventService _orderingIntegrationEventService; public ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler( - ILoggerFactory logger, - IBuyerRepository buyerRepository, + ILoggerFactory logger, + IBuyerRepository buyerRepository, IIdentityService identityService, IOrderingIntegrationEventService orderingIntegrationEventService) { @@ -33,13 +33,13 @@ public ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler( } public async Task Handle(OrderStartedDomainEvent orderStartedEvent, CancellationToken cancellationToken) - { + { var cardTypeId = (orderStartedEvent.CardTypeId != 0) ? orderStartedEvent.CardTypeId : 1; var buyer = await _buyerRepository.FindAsync(orderStartedEvent.UserId); bool buyerOriginallyExisted = (buyer == null) ? false : true; if (!buyerOriginallyExisted) - { + { buyer = new Buyer(orderStartedEvent.UserId, orderStartedEvent.UserName); } @@ -51,8 +51,8 @@ public async Task Handle(OrderStartedDomainEvent orderStartedEvent, Cancellation orderStartedEvent.CardExpiration, orderStartedEvent.Order.Id); - var buyerUpdated = buyerOriginallyExisted ? - _buyerRepository.Update(buyer) : + var buyerUpdated = buyerOriginallyExisted ? + _buyerRepository.Update(buyer) : _buyerRepository.Add(buyer); await _buyerRepository.UnitOfWork @@ -60,7 +60,6 @@ await _buyerRepository.UnitOfWork var orderStatusChangedTosubmittedIntegrationEvent = new OrderStatusChangedToSubmittedIntegrationEvent(orderStartedEvent.Order.Id, orderStartedEvent.Order.OrderStatus.Name, buyer.Name); await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedTosubmittedIntegrationEvent); - _logger.CreateLogger() .LogTrace("Buyer {BuyerId} and related payment method were validated or updated for orderId: {OrderId}.", buyerUpdated.Id, orderStartedEvent.Order.Id); diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/GracePeriodConfirmedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/GracePeriodConfirmedIntegrationEventHandler.cs index 2e003b322c..e3df4d11d2 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/GracePeriodConfirmedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/GracePeriodConfirmedIntegrationEventHandler.cs @@ -37,8 +37,6 @@ public async Task Handle(GracePeriodConfirmedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - var command = new SetAwaitingValidationOrderStatusCommand(@event.OrderId); _logger.LogInformation( diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentFailedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentFailedIntegrationEventHandler.cs index a123dd891e..e54a14fb0e 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentFailedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentFailedIntegrationEventHandler.cs @@ -31,8 +31,6 @@ public async Task Handle(OrderPaymentFailedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - var command = new CancelOrderCommand(@event.OrderId); _logger.LogInformation( diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentSuccededIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentSuccededIntegrationEventHandler.cs index 9cc69e5e82..dc2c6b9cdb 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentSuccededIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentSuccededIntegrationEventHandler.cs @@ -31,8 +31,6 @@ public async Task Handle(OrderPaymentSuccededIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - var command = new SetPaidOrderStatusCommand(@event.OrderId); _logger.LogInformation( diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockConfirmedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockConfirmedIntegrationEventHandler.cs index 6438b01d0c..8572a09dd1 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockConfirmedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockConfirmedIntegrationEventHandler.cs @@ -31,8 +31,6 @@ public async Task Handle(OrderStockConfirmedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - var command = new SetStockConfirmedOrderStatusCommand(@event.OrderId); _logger.LogInformation( diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockRejectedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockRejectedIntegrationEventHandler.cs index b457211edf..1c6a3edd6f 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockRejectedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockRejectedIntegrationEventHandler.cs @@ -30,8 +30,6 @@ public async Task Handle(OrderStockRejectedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - var orderStockRejectedItems = @event.OrderStockItems .FindAll(c => !c.HasStock) .Select(c => c.ProductId) diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/UserCheckoutAcceptedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/UserCheckoutAcceptedIntegrationEventHandler.cs index a1452b23cd..f55542b34a 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/UserCheckoutAcceptedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/UserCheckoutAcceptedIntegrationEventHandler.cs @@ -35,11 +35,9 @@ public UserCheckoutAcceptedIntegrationEventHandler( /// /// public async Task Handle(UserCheckoutAcceptedIntegrationEvent @event) - { + { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - var result = false; if (@event.RequestId != Guid.Empty) @@ -62,11 +60,7 @@ public async Task Handle(UserCheckoutAcceptedIntegrationEvent @event) result = await _mediator.Send(requestCreateOrder); - if (result) - { - _logger.LogInformation("----- CreateOrderCommand suceeded - RequestId: {RequestId}", @event.RequestId); - } - else + if (!result) { _logger.LogWarning("CreateOrderCommand failed - RequestId: {RequestId}", @event.RequestId); } diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs index cb7ce55136..776b909272 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs @@ -45,8 +45,6 @@ public async Task PublishEventsThroughEventBusAsync(Guid transactionId) foreach (var logEvt in pendingLogEvents) { - _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", logEvt.EventId, Program.AppName, logEvt.IntegrationEvent); - try { await _eventLogService.MarkEventAsInProgressAsync(logEvt.EventId); @@ -64,8 +62,6 @@ public async Task PublishEventsThroughEventBusAsync(Guid transactionId) public async Task AddAndSaveEventAsync(IntegrationEvent evt) { - _logger.LogInformation("----- Enqueuing integration event {IntegrationEventId} to repository ({@IntegrationEvent})", evt.Id, evt); - await _eventLogService.SaveEventAsync(evt, _orderingContext.GetCurrentTransaction()); } } diff --git a/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs b/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs index 7a592bfb86..58640412bb 100644 --- a/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs +++ b/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs @@ -49,7 +49,7 @@ public async Task CancelOrderAsync([FromBody]CancelOrderCommand c { var requestCancelOrder = new IdentifiedCommand(command, guid); - _logger.LogInformation( + _logger.LogTrace( "----- Sending command: {CommandName} - {IdProperty}: {CommandId} ({@Command})", requestCancelOrder.GetGenericTypeName(), nameof(requestCancelOrder.Command.OrderNumber), @@ -79,7 +79,7 @@ public async Task ShipOrderAsync([FromBody]ShipOrderCommand comma { var requestShipOrder = new IdentifiedCommand(command, guid); - _logger.LogInformation( + _logger.LogTrace( "----- Sending command: {CommandName} - {IdProperty}: {CommandId} ({@Command})", requestShipOrder.GetGenericTypeName(), nameof(requestShipOrder.Command.OrderNumber), @@ -141,7 +141,7 @@ public async Task>> GetCardTypesAsync() [HttpPost] public async Task> CreateOrderDraftFromBasketDataAsync([FromBody] CreateOrderDraftCommand createOrderDraftCommand) { - _logger.LogInformation( + _logger.LogTrace( "----- Sending command: {CommandName} - {IdProperty}: {CommandId} ({@Command})", createOrderDraftCommand.GetGenericTypeName(), nameof(createOrderDraftCommand.BuyerId), diff --git a/src/Services/Ordering/Ordering.API/Grpc/OrderingService.cs b/src/Services/Ordering/Ordering.API/Grpc/OrderingService.cs index af59420e73..adc210a1aa 100644 --- a/src/Services/Ordering/Ordering.API/Grpc/OrderingService.cs +++ b/src/Services/Ordering/Ordering.API/Grpc/OrderingService.cs @@ -27,7 +27,7 @@ public OrderingService(IMediator mediator, ILogger logger) public override async Task CreateOrderDraftFromBasketData(CreateOrderDraftCommand createOrderDraftCommand, ServerCallContext context) { _logger.LogInformation($"Begin grpc call from method {context.Method} for ordering get order draft {createOrderDraftCommand}"); - _logger.LogInformation( + _logger.LogTrace( "----- Sending command: {CommandName} - {IdProperty}: {CommandId} ({@Command})", createOrderDraftCommand.GetGenericTypeName(), nameof(createOrderDraftCommand.BuyerId), diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs index 9d4c83c576..f70fdeb06c 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs @@ -55,8 +55,6 @@ private void CheckConfirmedGracePeriodOrders() { var confirmGracePeriodEvent = new GracePeriodConfirmedIntegrationEvent(orderId); - _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", confirmGracePeriodEvent.Id, _settings.SubscriptionClientName, confirmGracePeriodEvent); - _eventBus.Publish(confirmGracePeriodEvent); } } diff --git a/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs b/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs index 7da025d3a7..b5639ac50a 100644 --- a/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs +++ b/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs @@ -18,7 +18,7 @@ public class Order // Address is a Value Object pattern example persisted as EF Core 2.0 owned entity public Address Address { get; private set; } - public int? GetBuyerId => _buyerId; + public int? GetBuyerId { get { return this._buyerId; } } private int? _buyerId; public OrderStatus OrderStatus { get; private set; } @@ -26,7 +26,7 @@ public class Order private string _description; - + // Draft orders have this set to true. Currently we don't check anywhere the draft status of an Order, but we could do it if needed private bool _isDraft; @@ -46,7 +46,8 @@ public static Order NewDraft() return order; } - protected Order() { + protected Order() + { _orderItems = new List(); _isDraft = false; } diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs index c4c7fce38b..9bfccd64c4 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs @@ -27,10 +27,31 @@ public void Configure(EntityTypeBuilder orderConfiguration) a.WithOwner(); }); - orderConfiguration.Property("OrderDate").IsRequired(); - orderConfiguration.Property("BuyerId").IsRequired(false); - orderConfiguration.Property("OrderStatusId").IsRequired(); - orderConfiguration.Property("PaymentMethodId").IsRequired(false); + orderConfiguration + .Property("_buyerId") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("BuyerId") + .IsRequired(false); + + orderConfiguration + .Property("_orderDate") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("OrderDate") + .IsRequired(); + + orderConfiguration + .Property("_orderStatusId") + // .HasField("_orderStatusId") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("OrderStatusId") + .IsRequired(); + + orderConfiguration + .Property("_paymentMethodId") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("PaymentMethodId") + .IsRequired(false); + orderConfiguration.Property("Description").IsRequired(false); var navigation = orderConfiguration.Metadata.FindNavigation(nameof(Order.OrderItems)); @@ -41,18 +62,21 @@ public void Configure(EntityTypeBuilder orderConfiguration) orderConfiguration.HasOne() .WithMany() - .HasForeignKey("PaymentMethodId") + // .HasForeignKey("PaymentMethodId") + .HasForeignKey("_paymentMethodId") .IsRequired(false) .OnDelete(DeleteBehavior.Restrict); orderConfiguration.HasOne() .WithMany() .IsRequired(false) - .HasForeignKey("BuyerId"); + // .HasForeignKey("BuyerId"); + .HasForeignKey("_buyerId"); orderConfiguration.HasOne(o => o.OrderStatus) .WithMany() - .HasForeignKey("OrderStatusId"); + // .HasForeignKey("OrderStatusId"); + .HasForeignKey("_orderStatusId"); } } } diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderItemEntityTypeConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderItemEntityTypeConfiguration.cs index ca16eddad2..e4100eb0d8 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderItemEntityTypeConfiguration.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderItemEntityTypeConfiguration.cs @@ -22,22 +22,37 @@ public void Configure(EntityTypeBuilder orderItemConfiguration) orderItemConfiguration.Property("OrderId") .IsRequired(); - orderItemConfiguration.Property("Discount") + orderItemConfiguration + .Property("_discount") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("Discount") .IsRequired(); orderItemConfiguration.Property("ProductId") .IsRequired(); - orderItemConfiguration.Property("ProductName") + orderItemConfiguration + .Property("_productName") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("ProductName") .IsRequired(); - orderItemConfiguration.Property("UnitPrice") + orderItemConfiguration + .Property("_unitPrice") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("UnitPrice") .IsRequired(); - orderItemConfiguration.Property("Units") + orderItemConfiguration + .Property("_units") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("Units") .IsRequired(); - orderItemConfiguration.Property("PictureUrl") + orderItemConfiguration + .Property("_pictureUrl") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("PictureUrl") .IsRequired(false); } } diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/PaymentMethodEntityTypeConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/PaymentMethodEntityTypeConfiguration.cs index 871c2057e2..8343deb3b6 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/PaymentMethodEntityTypeConfiguration.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/PaymentMethodEntityTypeConfiguration.cs @@ -23,27 +23,43 @@ public void Configure(EntityTypeBuilder paymentConfiguration) paymentConfiguration.Property("BuyerId") .IsRequired(); - paymentConfiguration.Property("CardHolderName") + paymentConfiguration + .Property("_cardHolderName") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("CardHolderName") .HasMaxLength(200) .IsRequired(); - paymentConfiguration.Property("Alias") + paymentConfiguration + .Property("_alias") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("Alias") .HasMaxLength(200) .IsRequired(); - paymentConfiguration.Property("CardNumber") + paymentConfiguration + .Property("_cardNumber") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("CardNumber") .HasMaxLength(25) .IsRequired(); - paymentConfiguration.Property("Expiration") + paymentConfiguration + .Property("_expiration") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("Expiration") + .HasMaxLength(25) .IsRequired(); - paymentConfiguration.Property("CardTypeId") + paymentConfiguration + .Property("_cardTypeId") + .UsePropertyAccessMode(PropertyAccessMode.Field) + .HasColumnName("CardTypeId") .IsRequired(); paymentConfiguration.HasOne(p => p.CardType) .WithMany() - .HasForeignKey("CardTypeId"); + .HasForeignKey("_cardTypeId"); } } } diff --git a/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs b/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs index 4d4f64d7a7..f2e13577c8 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/Repositories/OrderRepository.cs @@ -40,7 +40,6 @@ public async Task GetAsync(int orderId) .FirstOrDefaultAsync(o => o.Id == orderId); if (order == null) { - order = _context .Orders .Local diff --git a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs index 0e2665232c..7a99d898cb 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs @@ -27,8 +27,6 @@ public async Task Handle(OrderStatusChangedToAwaitingValidationIntegrationEvent { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - await _hubContext.Clients .Group(@event.BuyerName) .SendAsync("UpdatedOrderState", new { OrderId = @event.OrderId, Status = @event.OrderStatus }); diff --git a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToCancelledIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToCancelledIntegrationEventHandler.cs index 6257bb237a..15d2cce471 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToCancelledIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToCancelledIntegrationEventHandler.cs @@ -28,8 +28,6 @@ public async Task Handle(OrderStatusChangedToCancelledIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - await _hubContext.Clients .Group(@event.BuyerName) .SendAsync("UpdatedOrderState", new { OrderId = @event.OrderId, Status = @event.OrderStatus }); diff --git a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs index 836e02d3c3..0d70edcbfd 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs @@ -26,8 +26,6 @@ public async Task Handle(OrderStatusChangedToPaidIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - await _hubContext.Clients .Group(@event.BuyerName) .SendAsync("UpdatedOrderState", new { OrderId = @event.OrderId, Status = @event.OrderStatus }); diff --git a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToShippedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToShippedIntegrationEventHandler.cs index 5b08d08b40..782ee1a111 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToShippedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToShippedIntegrationEventHandler.cs @@ -28,8 +28,6 @@ public async Task Handle(OrderStatusChangedToShippedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - await _hubContext.Clients .Group(@event.BuyerName) .SendAsync("UpdatedOrderState", new { OrderId = @event.OrderId, Status = @event.OrderStatus }); diff --git a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs index 3486277162..364c1c3072 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs @@ -29,8 +29,6 @@ public async Task Handle(OrderStatusChangedToStockConfirmedIntegrationEvent @eve { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - await _hubContext.Clients .Group(@event.BuyerName) .SendAsync("UpdatedOrderState", new { OrderId = @event.OrderId, Status = @event.OrderStatus }); diff --git a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToSubmittedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToSubmittedIntegrationEventHandler.cs index 422bc4a7ad..30183ef775 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToSubmittedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToSubmittedIntegrationEventHandler.cs @@ -29,8 +29,6 @@ public async Task Handle(OrderStatusChangedToSubmittedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - await _hubContext.Clients .Group(@event.BuyerName) .SendAsync("UpdatedOrderState", new { OrderId = @event.OrderId, Status = @event.OrderStatus }); diff --git a/src/Services/Payment/Payment.API/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs b/src/Services/Payment/Payment.API/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs index bbd4b14dec..7570bc117f 100644 --- a/src/Services/Payment/Payment.API/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs +++ b/src/Services/Payment/Payment.API/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs @@ -31,8 +31,6 @@ public async Task Handle(OrderStatusChangedToStockConfirmedIntegrationEvent @eve { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { - _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); - IntegrationEvent orderPaymentIntegrationEvent; //Business feature comment: @@ -50,8 +48,6 @@ public async Task Handle(OrderStatusChangedToStockConfirmedIntegrationEvent @eve orderPaymentIntegrationEvent = new OrderPaymentFailedIntegrationEvent(@event.OrderId); } - _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", orderPaymentIntegrationEvent.Id, Program.AppName, orderPaymentIntegrationEvent); - _eventBus.Publish(orderPaymentIntegrationEvent); await Task.CompletedTask; diff --git a/src/Web/WebMVC/Controllers/AccountController.cs b/src/Web/WebMVC/Controllers/AccountController.cs index 8b82498ba0..dfd4984c59 100644 --- a/src/Web/WebMVC/Controllers/AccountController.cs +++ b/src/Web/WebMVC/Controllers/AccountController.cs @@ -25,8 +25,6 @@ public AccountController(ILogger logger) var user = User as ClaimsPrincipal; var token = await HttpContext.GetTokenAsync("access_token"); - _logger.LogInformation("----- User {@User} authenticated into {AppName}", user, Program.AppName); - if (token != null) { ViewData["access_token"] = token; From f8c42c2fbe3d7db132a1857063c350e635e5cd2e Mon Sep 17 00:00:00 2001 From: ericuss Date: Mon, 2 Sep 2019 11:38:51 +0200 Subject: [PATCH 081/149] Migrate packages in preview7 to preview8 --- src/_build/dependencies.props | 36 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 16cf2f2b5a..dc33e8623e 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -23,7 +23,7 @@ 2.23.0 0.1.22-pre2 - 3.0.0-preview7.19362.4 + 3.0.0-preview8.19405.4 1.7.9 2.2.0 2.2.0 @@ -53,42 +53,42 @@ 2.6.1 1.0.2 3.0.0-preview4-19123-01 - 3.0.0-preview7.19365.7 + 3.0.0-preview8.19405.7 3.0.0-preview4-19123-01 3.0.0-preview4-19123-01 3.0.0-alpha1-10670 2.2.0-preview2-35157 3.0.0-alpha1-34847 - 3.0.0-preview7.19365.7 - 3.0.0-preview7.19365.7 + 3.0.0-preview8.19405.7 + 3.0.0-preview8.19405.7 2.2.0 1.0.0 2.2.0 3.0.0-preview4-19123-01 3.0.0-preview6.19307.2 - 3.0.0-preview7.19365.7 - 3.0.0-preview7.19365.7 - 3.0.0-preview7.19365.7 + 3.0.0-preview8.19405.7 + 3.0.0-preview8.19405.7 + 3.0.0-preview8.19405.7 3.0.0-preview4-19123-01 3.0.0-preview4-19123-01 7.5.0 3.0.0 4.5.0 - 4.7.0-preview7.19362.9 - 3.0.0-preview7.19362.6 - 3.0.0-preview7.19362.6 - 3.0.0-preview7.19362.6 - 3.0.0-preview7.19362.6 - 3.0.0-preview7.19362.6 - 3.0.0-preview7.19362.9 - 3.0.0-preview7.19365.7 - 3.0.0-preview7.19362.4 + 4.7.0-preview8.19405.3 + 3.0.0-preview8.19405.11 + 3.0.0-preview8.19405.11 + 3.0.0-preview8.19405.11 + 3.0.0-preview8.19405.11 + 3.0.0-preview8.19405.11 + 3.0.0-preview8.19405.3 + 3.0.0-preview8.19405.7 + 3.0.0-preview8.19405.4 2.2.0 2.2.0 2.2.0 2.2.0 2.2.0 - 3.0.0-preview7.19362.4 + 3.0.0-preview8.19405.4 16.0.1 2.9.0-beta2 2.9.0-beta2 @@ -96,7 +96,7 @@ 2.9.0-beta2 4.10.1 12.0.2 - 3.0.0-preview7.19365.7 + 3.0.0-preview8.19405.7 12.0.1 6.0.1 3.0.0-preview3.4 From 16710627155525e37ad88f90e2766843e5957cf1 Mon Sep 17 00:00:00 2001 From: ericuss Date: Tue, 3 Sep 2019 16:07:05 +0200 Subject: [PATCH 082/149] fix identity server --- .../Identity.API/IWebHostExtensions.cs | 79 +++++++++++++++++++ .../Identity/Identity.API/Identity.API.csproj | 13 ++- 2 files changed, 85 insertions(+), 7 deletions(-) create mode 100644 src/Services/Identity/Identity.API/IWebHostExtensions.cs diff --git a/src/Services/Identity/Identity.API/IWebHostExtensions.cs b/src/Services/Identity/Identity.API/IWebHostExtensions.cs new file mode 100644 index 0000000000..aff262b73b --- /dev/null +++ b/src/Services/Identity/Identity.API/IWebHostExtensions.cs @@ -0,0 +1,79 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Polly; +using System; +using System.Data.SqlClient; + +namespace Microsoft.AspNetCore.Hosting +{ + public static class IWebHostExtensions + { + public static bool IsInKubernetes(this IWebHost webHost) + { + var cfg = webHost.Services.GetService(); + var orchestratorType = cfg.GetValue("OrchestratorType"); + return orchestratorType?.ToUpper() == "K8S"; + } + + public static IWebHost MigrateDbContext(this IWebHost webHost, Action seeder) where TContext : DbContext + { + var underK8s = webHost.IsInKubernetes(); + + using (var scope = webHost.Services.CreateScope()) + { + var services = scope.ServiceProvider; + var logger = services.GetRequiredService>(); + var context = services.GetService(); + + try + { + logger.LogInformation("Migrating database associated with context {DbContextName}", typeof(TContext).Name); + + if (underK8s) + { + InvokeSeeder(seeder, context, services); + } + else + { + var retries = 10; + var retry = Policy.Handle() + .WaitAndRetry( + retryCount: retries, + sleepDurationProvider: retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), + onRetry: (exception, timeSpan, retry, ctx) => + { + logger.LogWarning(exception, "[{prefix}] Exception {ExceptionType} with message {Message} detected on attempt {retry} of {retries}", nameof(TContext), exception.GetType().Name, exception.Message, retry, retries); + }); + + //if the sql server container is not created on run docker compose this + //migration can't fail for network related exception. The retry options for DbContext only + //apply to transient exceptions + // Note that this is NOT applied when running some orchestrators (let the orchestrator to recreate the failing service) + retry.Execute(() => InvokeSeeder(seeder, context, services)); + } + + logger.LogInformation("Migrated database associated with context {DbContextName}", typeof(TContext).Name); + } + catch (Exception ex) + { + logger.LogError(ex, "An error occurred while migrating the database used on context {DbContextName}", typeof(TContext).Name); + if (underK8s) + { + throw; // Rethrow under k8s because we rely on k8s to re-run the pod + } + } + } + + return webHost; + } + + private static void InvokeSeeder(Action seeder, TContext context, IServiceProvider services) + where TContext : DbContext + { + context.Database.Migrate(); + seeder(context, services); + } + } +} diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index ed9900f5c4..068cc8a14a 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -19,6 +19,8 @@ + + @@ -27,13 +29,14 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive + @@ -41,8 +44,8 @@ - - + + - - + - + + + + + + - + \ No newline at end of file diff --git a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj index 269a133f23..8d0081e180 100644 --- a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj +++ b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj @@ -16,21 +16,19 @@ - - - - - + + + + + all runtime; build; native; contentfiles; analyzers - + - - diff --git a/src/Services/Basket/Basket.FunctionalTests/BasketScenarios.cs b/src/Services/Basket/Basket.FunctionalTests/BasketScenarios.cs index 09ea14ff33..c5eacfa4e7 100644 --- a/src/Services/Basket/Basket.FunctionalTests/BasketScenarios.cs +++ b/src/Services/Basket/Basket.FunctionalTests/BasketScenarios.cs @@ -5,7 +5,6 @@ using System.Net.Http; using System.Text; using System.Threading.Tasks; -using WebMVC.Services.ModelDTOs; using Xunit; namespace Basket.FunctionalTests @@ -74,7 +73,7 @@ string BuildBasket() string BuildCheckout() { - var checkoutBasket = new BasketDTO() + var checkoutBasket = new { City = "city", Street = "street", diff --git a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj index 54d753de98..019d5bdfc8 100644 --- a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj +++ b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj @@ -10,17 +10,17 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers - - + + diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.csproj b/src/Services/Catalog/Catalog.API/Catalog.API.csproj index 0b32dea4b3..3d64e1181f 100644 --- a/src/Services/Catalog/Catalog.API/Catalog.API.csproj +++ b/src/Services/Catalog/Catalog.API/Catalog.API.csproj @@ -42,30 +42,30 @@ - - - + + + - - - - - - - - - + + + + + + + + + - - - + + + - - - + + + - + diff --git a/src/Services/Catalog/Catalog.API/Infrastructure/CatalogContextSeed.cs b/src/Services/Catalog/Catalog.API/Infrastructure/CatalogContextSeed.cs index ab88002ce8..cd1ea4ab1c 100644 --- a/src/Services/Catalog/Catalog.API/Infrastructure/CatalogContextSeed.cs +++ b/src/Services/Catalog/Catalog.API/Infrastructure/CatalogContextSeed.cs @@ -6,6 +6,7 @@ using Microsoft.Extensions.Options; using Model; using Polly; + using Polly.Retry; using System; using System.Collections.Generic; using System.Data.SqlClient; @@ -369,7 +370,7 @@ private void GetCatalogItemPictures(string contentRootPath, string picturePath) } } - private Policy CreatePolicy( ILogger logger, string prefix,int retries = 3) + private AsyncRetryPolicy CreatePolicy( ILogger logger, string prefix,int retries = 3) { return Policy.Handle(). WaitAndRetryAsync( diff --git a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj index 9db9a3c377..22ca355327 100644 --- a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj +++ b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj @@ -33,11 +33,11 @@ - - - - - + + + + + all runtime; build; native; contentfiles; analyzers diff --git a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj index e603d61064..29729d05d5 100644 --- a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj +++ b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj @@ -9,15 +9,15 @@ - - - - + + + + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index d18cb4b199..27eda89f57 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -16,36 +16,39 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + - - - + + + - - + + - + $(NetCoreTargetVersion) @@ -59,7 +27,6 @@ - diff --git a/src/Web/WebMVC/Controllers/CartController.cs b/src/Web/WebMVC/Controllers/CartController.cs index b05009cc7d..78cec56701 100644 --- a/src/Web/WebMVC/Controllers/CartController.cs +++ b/src/Web/WebMVC/Controllers/CartController.cs @@ -2,7 +2,6 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.eShopOnContainers.WebMVC.Services; using Microsoft.eShopOnContainers.WebMVC.ViewModels; -using Polly.CircuitBreaker; using System; using System.Collections.Generic; using System.Threading.Tasks; @@ -32,10 +31,9 @@ public async Task Index() return View(vm); } - catch (BrokenCircuitException) + catch (Exception ex) { - // Catch error when Basket.api is in circuit-opened mode - HandleBrokenCircuitException(); + HandleException(ex); } return View(); @@ -54,10 +52,9 @@ public async Task Index(Dictionary quantities, strin return RedirectToAction("Create", "Order"); } } - catch (BrokenCircuitException) + catch (Exception ex) { - // Catch error when Basket.api is in circuit-opened mode - HandleBrokenCircuitException(); + HandleException(ex); } return View(); @@ -74,18 +71,18 @@ public async Task AddToCart(CatalogItem productDetails) } return RedirectToAction("Index", "Catalog"); } - catch (BrokenCircuitException) + catch (Exception ex) { // Catch error when Basket.api is in circuit-opened mode - HandleBrokenCircuitException(); + HandleException(ex); } return RedirectToAction("Index", "Catalog", new { errorMsg = ViewBag.BasketInoperativeMsg }); } - private void HandleBrokenCircuitException() + private void HandleException(Exception ex) { - ViewBag.BasketInoperativeMsg = "Basket Service is inoperative, please try later on. (Business Msg Due to Circuit-Breaker)"; + ViewBag.BasketInoperativeMsg = $"Basket Service is inoperative {ex.GetType().Name} - {ex.Message}"; } } } diff --git a/src/Web/WebMVC/Controllers/OrderController.cs b/src/Web/WebMVC/Controllers/OrderController.cs index 6249492dac..f308d0bdce 100644 --- a/src/Web/WebMVC/Controllers/OrderController.cs +++ b/src/Web/WebMVC/Controllers/OrderController.cs @@ -2,7 +2,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.eShopOnContainers.WebMVC.Services; using Microsoft.eShopOnContainers.WebMVC.ViewModels; -using Polly.CircuitBreaker; +using System; using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.WebMVC.Controllers @@ -47,9 +47,9 @@ public async Task Checkout(Order model) return RedirectToAction("Index"); } } - catch (BrokenCircuitException) + catch (Exception ex) { - ModelState.AddModelError("Error", "It was not possible to create a new order, please try later on. (Business Msg Due to Circuit-Breaker)"); + ModelState.AddModelError("Error", $"It was not possible to create a new order, please try later on ({ex.GetType().Name} - {ex.Message})"); } return View("Create", model); diff --git a/src/Web/WebMVC/Startup.cs b/src/Web/WebMVC/Startup.cs index 7f4abb55f8..bfba906621 100644 --- a/src/Web/WebMVC/Startup.cs +++ b/src/Web/WebMVC/Startup.cs @@ -15,8 +15,6 @@ using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using Microsoft.IdentityModel.Logging; -using Polly; -using Polly.Extensions.Http; using StackExchange.Redis; using System; using System.IdentityModel.Tokens.Jwt; @@ -146,7 +144,7 @@ public static IServiceCollection AddCustomMvc(this IServiceCollection services, return services; } - // Adds all Http client services (like Service-Agents) using resilient Http requests based on HttpClient factory and Polly's policies + // Adds all Http client services public static IServiceCollection AddHttpClientServices(this IServiceCollection services, IConfiguration configuration) { services.AddSingleton(); @@ -162,32 +160,22 @@ public static IServiceCollection AddHttpClientServices(this IServiceCollection s services.AddHttpClient() .SetHandlerLifetime(TimeSpan.FromMinutes(5)) //Sample. Default lifetime is 2 minutes .AddHttpMessageHandler() - .AddPolicyHandler(GetRetryPolicy()) - .AddPolicyHandler(GetCircuitBreakerPolicy()) .AddDevspacesSupport(); services.AddHttpClient() - .AddPolicyHandler(GetRetryPolicy()) - .AddPolicyHandler(GetCircuitBreakerPolicy()) .AddDevspacesSupport(); services.AddHttpClient() .AddHttpMessageHandler() .AddHttpMessageHandler() - .AddPolicyHandler(GetRetryPolicy()) - .AddPolicyHandler(GetCircuitBreakerPolicy()) .AddDevspacesSupport(); services.AddHttpClient() .AddHttpMessageHandler() - .AddPolicyHandler(GetRetryPolicy()) - .AddPolicyHandler(GetCircuitBreakerPolicy()) .AddDevspacesSupport(); services.AddHttpClient() .AddHttpMessageHandler() - .AddPolicyHandler(GetRetryPolicy()) - .AddPolicyHandler(GetCircuitBreakerPolicy()) .AddDevspacesSupport(); //add custom application services @@ -235,19 +223,5 @@ public static IServiceCollection AddCustomAuthentication(this IServiceCollection return services; } - - static IAsyncPolicy GetRetryPolicy() - { - return HttpPolicyExtensions - .HandleTransientHttpError() - .OrResult(msg => msg.StatusCode == System.Net.HttpStatusCode.NotFound) - .WaitAndRetryAsync(6, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))); - } - static IAsyncPolicy GetCircuitBreakerPolicy() - { - return HttpPolicyExtensions - .HandleTransientHttpError() - .CircuitBreakerAsync(5, TimeSpan.FromSeconds(30)); - } } } diff --git a/src/Web/WebMVC/ViewComponents/Cart.cs b/src/Web/WebMVC/ViewComponents/Cart.cs index 05c7dac50e..6cd8bf2d5b 100644 --- a/src/Web/WebMVC/ViewComponents/Cart.cs +++ b/src/Web/WebMVC/ViewComponents/Cart.cs @@ -6,7 +6,6 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using Polly.CircuitBreaker; namespace Microsoft.eShopOnContainers.WebMVC.ViewComponents { @@ -25,9 +24,8 @@ public async Task InvokeAsync(ApplicationUser user) vm.ItemsCount = itemsInCart; return View(vm); } - catch (BrokenCircuitException) + catch { - // Catch error when Basket.api is in circuit-opened mode ViewBag.IsBasketInoperative = true; } diff --git a/src/Web/WebMVC/ViewComponents/CartList.cs b/src/Web/WebMVC/ViewComponents/CartList.cs index 60fe863d45..88d1f9abba 100644 --- a/src/Web/WebMVC/ViewComponents/CartList.cs +++ b/src/Web/WebMVC/ViewComponents/CartList.cs @@ -5,7 +5,6 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using Polly.CircuitBreaker; namespace Microsoft.eShopOnContainers.WebMVC.ViewComponents { @@ -23,10 +22,9 @@ public async Task InvokeAsync(ApplicationUser user) vm = await GetItemsAsync(user); return View(vm); } - catch (BrokenCircuitException) + catch (Exception ex) { - // Catch error when Basket.api is in circuit-opened mode - ViewBag.BasketInoperativeMsg = "Basket Service is inoperative, please try later on. (Business Msg Due to Circuit-Breaker)"; + ViewBag.BasketInoperativeMsg = $"Basket Service is inoperative, please try later on. ({ex.GetType().Name} - {ex.Message}))"; } return View(vm); diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj index f161a94778..f5da398b35 100644 --- a/src/Web/WebMVC/WebMVC.csproj +++ b/src/Web/WebMVC/WebMVC.csproj @@ -31,7 +31,6 @@ - From 0df81ff5d26cae6fb57de77d714388ed96651461 Mon Sep 17 00:00:00 2001 From: eiximenis Date: Tue, 15 Oct 2019 11:23:25 +0200 Subject: [PATCH 107/149] Removing unneeded files. Making compatible FailingMiddleware & Healthchecks --- k8s/basket-data.yaml | 29 - k8s/deployments.yaml | 923 ------------------ k8s/eshop-namespace.yaml | 5 - k8s/ingress.yaml | 59 -- k8s/keystore-data.yaml | 29 - k8s/linkerd/basket-api-sp.yaml | 42 + k8s/linkerd/catalog-api-sp.yaml | 47 + k8s/nosql-data.yaml | 30 - k8s/rabbitmq.yaml | 30 - k8s/services.yaml | 195 ---- k8s/sql-data.yaml | 35 - .../Middlewares/FailingMiddleware.cs | 15 +- .../Middlewares/FailingOptions.cs | 2 + src/Services/Basket/Basket.API/Program.cs | 5 +- 14 files changed, 108 insertions(+), 1338 deletions(-) delete mode 100644 k8s/basket-data.yaml delete mode 100644 k8s/deployments.yaml delete mode 100644 k8s/eshop-namespace.yaml delete mode 100644 k8s/ingress.yaml delete mode 100644 k8s/keystore-data.yaml create mode 100644 k8s/linkerd/basket-api-sp.yaml create mode 100644 k8s/linkerd/catalog-api-sp.yaml delete mode 100644 k8s/nosql-data.yaml delete mode 100644 k8s/rabbitmq.yaml delete mode 100644 k8s/services.yaml delete mode 100644 k8s/sql-data.yaml diff --git a/k8s/basket-data.yaml b/k8s/basket-data.yaml deleted file mode 100644 index b48e73fed5..0000000000 --- a/k8s/basket-data.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: basket-data - name: basket-data -spec: - ports: - - port: 6379 - selector: - app: eshop - component: basket-data ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: basket-data -spec: - template: - metadata: - labels: - app: eshop - component: basket-data - spec: - containers: - - name: basket-data - image: redis - diff --git a/k8s/deployments.yaml b/k8s/deployments.yaml deleted file mode 100644 index ca97df9ebf..0000000000 --- a/k8s/deployments.yaml +++ /dev/null @@ -1,923 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: basket -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: basket - spec: - containers: - - name: basket - image: eshop/basket.api - imagePullPolicy: Always - env: - - name: PATH_BASE - value: /basket-api - - name: ConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: basket__ConnectionString - - name: EventBusConnection - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EventBusConnection - - name: AzureServiceBusEnabled - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__UseAzureServiceBus - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: IdentityUrl - valueFrom: - configMapKeyRef: - name: urls - key: identity_e - - name: UseLoadTest - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EnableLoadTest - - name: OrchestratorType - value: 'K8S' - ports: - - containerPort: 80 - - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: catalog -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: catalog - spec: - containers: - - name: catalog - image: eshop/catalog.api - imagePullPolicy: Always - env: - - name: PATH_BASE - value: /catalog-api - - name: ConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: catalog__ConnectionString - - name: PicBaseUrl - valueFrom: - configMapKeyRef: - name: urls - key: PicBaseUrl - - name: AzureStorageEnabled - valueFrom: - configMapKeyRef: - name: externalcfg - key: catalog__AzureStorageEnabled - - name: EventBusConnection - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EventBusConnection - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: OrchestratorType - value: 'K8S' - ports: - - containerPort: 80 - - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: identity -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: identity - spec: - containers: - - name: identity - image: eshop/identity.api - imagePullPolicy: Always - env: - - name: PATH_BASE - value: /identity - - name: ConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: identity__ConnectionString - - name: DPConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: keystore - - name: IsClusterEnv - value: 'True' - - name: MvcClient - valueFrom: - configMapKeyRef: - name: urls - key: mvc_e - - name: SpaClient - valueFrom: - configMapKeyRef: - name: urls - key: spa_e - - name: LocationApiClient - valueFrom: - configMapKeyRef: - name: urls - key: locations_e - - name: MarketingApiClient - valueFrom: - configMapKeyRef: - name: urls - key: marketing_e - - name: BasketApiClient - valueFrom: - configMapKeyRef: - name: urls - key: basket_e - - name: OrderingApiClient - valueFrom: - configMapKeyRef: - name: urls - key: ordering_e - - name: MobileShoppingAggClient - valueFrom: - configMapKeyRef: - name: urls - key: mobileshoppingagg_e - - name: WebShoppingAggClient - valueFrom: - configMapKeyRef: - name: urls - key: webshoppingagg_e - - name: XamarinCallback - valueFrom: - configMapKeyRef: - name: urls - key: xamarin_callback_e - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: OrchestratorType - value: 'K8S' - ports: - - containerPort: 80 - - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: ordering -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: ordering - spec: - containers: - - name: ordering - image: eshop/ordering.api - imagePullPolicy: Always - env: - - name: PATH_BASE - value: /ordering-api - - name: ConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: ordering__ConnectionString - - name: EventBusConnection - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EventBusConnection - - name: AzureServiceBusEnabled - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__UseAzureServiceBus - - name: IdentityUrl - valueFrom: - configMapKeyRef: - name: urls - key: identity_e - - name: CheckUpdateTime - valueFrom: - configMapKeyRef: - name: externalcfg - key: GracePeriodManager__CheckUpdateTime - - name: GracePeriodTime - valueFrom: - configMapKeyRef: - name: externalcfg - key: GracePeriodManager__GracePeriodTime - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: UseLoadTest - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EnableLoadTest - - name: OrchestratorType - value: 'K8S' - ports: - - containerPort: 80 - - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: ordering-backgroundtasks -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: ordering-backgroundtasks - spec: - containers: - - name: ordering-backgroundtasks - image: eshop/ordering.backgroundtasks - imagePullPolicy: Always - env: - - name: ConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: ordering__ConnectionString - - name: EventBusConnection - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EventBusConnection - - name: AzureServiceBusEnabled - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__UseAzureServiceBus - - name: CheckUpdateTime - valueFrom: - configMapKeyRef: - name: externalcfg - key: GracePeriodManager__CheckUpdateTime - - name: GracePeriodTime - valueFrom: - configMapKeyRef: - name: externalcfg - key: GracePeriodManager__GracePeriodTime - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: UseLoadTest - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EnableLoadTest - - name: OrchestratorType - value: 'K8S' - ports: - - containerPort: 80 - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: ordering-signalrhub -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: ordering-signalrhub - spec: - containers: - - name: ordering-signalrhub - image: eshop/ordering.signalrhub - imagePullPolicy: Always - env: - - name: EventBusConnection - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EventBusConnection - - name: IdentityUrl - valueFrom: - configMapKeyRef: - name: urls - key: identity_e - - name: AzureServiceBusEnabled - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__UseAzureServiceBus - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: OrchestratorType - value: 'K8S' - - name: IsClusterEnv - value: 'True' - - name: SignalrStoreConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: keystore - ports: - - containerPort: 80 - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: locations -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: locations - spec: - containers: - - name: locations - image: eshop/locations.api - imagePullPolicy: Always - env: - - name: PATH_BASE - value: /locations-api - - name: ConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: locations__ConnectionString - - name: Database - valueFrom: - configMapKeyRef: - name: externalcfg - key: locations__Database - - name: AzureServiceBusEnabled - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__UseAzureServiceBus - - name: EventBusConnection - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EventBusConnection - - name: IdentityUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: identity - - name: IdentityUrlExternal - valueFrom: - configMapKeyRef: - name: urls - key: identity_e - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: UseLoadTest - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EnableLoadTest - - name: OrchestratorType - value: 'K8S' - ports: - - containerPort: 80 - - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: marketing -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: marketing - spec: - containers: - - name: marketing - image: eshop/marketing.api - imagePullPolicy: Always - env: - - name: PATH_BASE - value: /marketing-api - - name: ConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: marketing__ConnectionString - - name: MongoConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: marketing__MongoConnectionString - - name: MongoDatabase - valueFrom: - configMapKeyRef: - name: externalcfg - key: marketing__MongoDatabase - - name: AzureServiceBusEnabled - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__UseAzureServiceBus - - name: EventBusConnection - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EventBusConnection - - name: IdentityUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: identity - - name: IdentityUrlExternal - valueFrom: - configMapKeyRef: - name: urls - key: identity_e - - name: PicBaseUrl - valueFrom: - configMapKeyRef: - name: urls - key: Marketing_PicBaseUrl - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: UseLoadTest - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EnableLoadTest - - name: OrchestratorType - value: 'K8S' - ports: - - containerPort: 80 - - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: payment -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: payment - spec: - containers: - - name: payment - image: eshop/payment.api - imagePullPolicy: Always - env: - - name: PATH_BASE - value: /payment-api - - name: AzureServiceBusEnabled - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__UseAzureServiceBus - - name: EventBusConnection - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EventBusConnection - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: OrchestratorType - value: 'K8S' - ports: - - containerPort: 80 - - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: webmvc -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: webmvc - spec: - containers: - - name: webmvc - image: eshop/webmvc - imagePullPolicy: Always - env: - - name: PATH_BASE - value: /webmvc - - name: DPConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: keystore - - name: IsClusterEnv - value: 'True' - - name: PurchaseUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: apigwws - - name: ExternalPurchaseUrl - valueFrom: - configMapKeyRef: - name: urls - key: webshoppingapigw_e - - name: CallBackUrl - valueFrom: - configMapKeyRef: - name: urls - key: mvc_e - - name: IdentityUrl - valueFrom: - configMapKeyRef: - name: urls - key: identity_e - - name: MarketingUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: apigwwm - - name: BasketUrlHC - valueFrom: - configMapKeyRef: - name: internalurls - key: basket__hc - - name: CatalogUrlHC - valueFrom: - configMapKeyRef: - name: internalurls - key: catalog__hc - - name: IdentityUrlHC - valueFrom: - configMapKeyRef: - name: internalurls - key: identity__hc - - name: OrderingUrlHC - valueFrom: - configMapKeyRef: - name: internalurls - key: ordering__hc - - name: MarketingUrlHC - valueFrom: - configMapKeyRef: - name: internalurls - key: marketing__hc - - name: PaymentUrlHC - valueFrom: - configMapKeyRef: - name: internalurls - key: payment__hc - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: UseLoadTest - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__EnableLoadTest - - name: OrchestratorType - value: 'K8S' - - name: SignalrHubUrl - valueFrom: - configMapKeyRef: - name: urls - key: webshoppingapigw_e - ports: - - containerPort: 80 - - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: webstatus -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: webstatus - spec: - containers: - - name: webstatus - image: eshop/webstatus - imagePullPolicy: Always - env: - - name: PATH_BASE - value: /webstatus - - name: BasketUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: basket__hc - - name: CatalogUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: catalog__hc - - name: IdentityUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: identity__hc - - name: OrderingUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: ordering__hc - - name: LocationsUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: locations__hc - - name: MarketingUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: marketing__hc - - name: mvc - valueFrom: - configMapKeyRef: - name: internalurls - key: mvc__hc - - name: spa - valueFrom: - configMapKeyRef: - name: internalurls - key: spa__hc - - name: PaymentUrl - valueFrom: - configMapKeyRef: - name: internalurls - key: payment__hc - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: OrchestratorType - value: 'K8S' - ports: - - containerPort: 80 - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: webspa -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: webspa - spec: - containers: - - name: webspa - image: eshop/webspa - imagePullPolicy: Always - env: - - name: ASPNETCORE_URLS - value: http://0.0.0.0:80 - - name: DPConnectionString - valueFrom: - configMapKeyRef: - name: externalcfg - key: keystore - - name: IsClusterEnv - value: 'True' - - name: PurchaseUrl - valueFrom: - configMapKeyRef: - name: urls - key: webshoppingapigw_e - - name: CallBackUrl - valueFrom: - configMapKeyRef: - name: urls - key: spa_e - - name: IdentityUrl - valueFrom: - configMapKeyRef: - name: urls - key: identity_e - - name: MarketingUrl - valueFrom: - configMapKeyRef: - name: urls - key: marketingapigw_e - - name: BasketUrlHC - valueFrom: - configMapKeyRef: - name: internalurls - key: basket__hc - - name: CatalogUrlHC - valueFrom: - configMapKeyRef: - name: internalurls - key: catalog__hc - - name: IdentityUrlHC - valueFrom: - configMapKeyRef: - name: internalurls - key: identity__hc - - name: OrderingUrlHC - valueFrom: - configMapKeyRef: - name: internalurls - key: ordering__hc - - name: MarketingUrlHC - valueFrom: - configMapKeyRef: - name: internalurls - key: marketing__hc - - name: PaymentUrlHC - valueFrom: - configMapKeyRef: - name: internalurls - key: payment__hc - - name: ApplicationInsights__InstrumentationKey - valueFrom: - configMapKeyRef: - name: externalcfg - key: all__InstrumentationKey - - name: OrchestratorType - value: 'K8S' - - name: SignalrHubUrl - valueFrom: - configMapKeyRef: - name: urls - key: webshoppingapigw_e - ports: - - containerPort: 80 - - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: webshoppingagg -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: webshoppingagg - spec: - containers: - - name: webshoppingagg - image: eshop/webshoppingagg - imagePullPolicy: Always - env: - - name: ASPNETCORE_URLS - value: http://0.0.0.0:80 - - name: urls__basket - valueFrom: - configMapKeyRef: - name: internalurls - key: basket - - name: urls__catalog - valueFrom: - configMapKeyRef: - name: internalurls - key: catalog - - name: urls__orders - valueFrom: - configMapKeyRef: - name: internalurls - key: ordering - - name: urls__identity - valueFrom: - configMapKeyRef: - name: internalurls - key: identity - ports: - - containerPort: 80 - imagePullSecrets: - - name: registry-key ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: mobileshoppingagg -spec: - paused: true - template: - metadata: - labels: - app: eshop - component: mobileshoppingagg - spec: - containers: - - name: mobileshoppingagg - image: eshop/mobileshoppingagg - imagePullPolicy: Always - env: - - name: ASPNETCORE_URLS - value: http://0.0.0.0:80 - - name: urls__basket - valueFrom: - configMapKeyRef: - name: internalurls - key: basket - - name: urls__catalog - valueFrom: - configMapKeyRef: - name: internalurls - key: catalog - - name: urls__orders - valueFrom: - configMapKeyRef: - name: internalurls - key: ordering - - name: urls__identity - valueFrom: - configMapKeyRef: - name: internalurls - key: identity - ports: - - containerPort: 80 - imagePullSecrets: - - name: registry-key ---- diff --git a/k8s/eshop-namespace.yaml b/k8s/eshop-namespace.yaml deleted file mode 100644 index c7eebb7a0f..0000000000 --- a/k8s/eshop-namespace.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: eshop - \ No newline at end of file diff --git a/k8s/ingress.yaml b/k8s/ingress.yaml deleted file mode 100644 index b5773bb257..0000000000 --- a/k8s/ingress.yaml +++ /dev/null @@ -1,59 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Ingress -metadata: - labels: - app: eshop - component: frontend - name: eshop-ingress - annotations: - ingress.kubernetes.io/ssl-redirect: "false" -spec: - rules: - - http: - paths: - - path: /identity - backend: - serviceName: identity - servicePort: 80 - - path: /webmvc - backend: - serviceName: webmvc - servicePort: 80 - - path: /webstatus - backend: - serviceName: webstatus - servicePort: 80 - - path: /webshoppingapigw - backend: - serviceName: ocelotapigw-ws - servicePort: 80 - - path: /webmarketingapigw - backend: - serviceName: ocelotapigw-wm - servicePort: 80 - - path: /mobilemarketingapigw - backend: - serviceName: ocelotapigw-mm - servicePort: 80 - - path: /mobileshoppingapigw - backend: - serviceName: ocelotapigw-ms - servicePort: 80 - - path: /webshoppingagg - backend: - serviceName: webshoppingagg - servicePort: 80 - - path: /mobileshoppingagg - backend: - serviceName: mobileshoppingagg - servicePort: 80 - - path: /payment-api - backend: - serviceName: payment - servicePort: 80 - - path: / - backend: - serviceName: webspa - servicePort: 80 - - diff --git a/k8s/keystore-data.yaml b/k8s/keystore-data.yaml deleted file mode 100644 index 0e2dfa9b92..0000000000 --- a/k8s/keystore-data.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: keystore-data - name: keystore-data -spec: - ports: - - port: 6379 - selector: - app: eshop - component: keystore-data ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: keystore-data -spec: - template: - metadata: - labels: - app: eshop - component: keystore-data - spec: - containers: - - name: keystore-data - image: redis - diff --git a/k8s/linkerd/basket-api-sp.yaml b/k8s/linkerd/basket-api-sp.yaml new file mode 100644 index 0000000000..6b23bdb9f5 --- /dev/null +++ b/k8s/linkerd/basket-api-sp.yaml @@ -0,0 +1,42 @@ +apiVersion: linkerd.io/v1alpha2 +kind: ServiceProfile +metadata: + creationTimestamp: null + name: basket-api.default.svc.cluster.local + namespace: default +spec: + routes: + - condition: + method: GET + pathRegex: /basket-api/api/v1/basket/[^/]* + name: GET Basket {id} + isRetryable: true + - condition: + method: GET + pathRegex: /hc + name: GET /hc + isRetryable: false + - condition: + method: GET + pathRegex: /liveness + name: GET /liveness + isRetryable: false + - condition: + method: POST + pathRegex: /BasketApi\.Basket/GetBasketById + name: POST /BasketApi.Basket/GetBasketById + isRetryable: true + - condition: + method: POST + pathRegex: /BasketApi\.Basket/UpdateBasket + name: POST /BasketApi.Basket/UpdateBasket + isRetryable: true + - condition: + method: POST + pathRegex: /basket-api/api/v1/basket/checkout + name: POST /v1/basket/checkout + isRetryable: true + retryBudget: + retryRatio: 0.2 + minRetriesPerSecond: 10 + ttl: 10s \ No newline at end of file diff --git a/k8s/linkerd/catalog-api-sp.yaml b/k8s/linkerd/catalog-api-sp.yaml new file mode 100644 index 0000000000..6e9afa4725 --- /dev/null +++ b/k8s/linkerd/catalog-api-sp.yaml @@ -0,0 +1,47 @@ +apiVersion: linkerd.io/v1alpha2 +kind: ServiceProfile +metadata: + creationTimestamp: null + name: catalog-api.default.svc.cluster.local + namespace: default +spec: + routes: + - condition: + method: GET + pathRegex: /catalog-api/api/v1/catalog/catalogbrands + name: GET /v1/catalog/catalogbrands + isRetryable: true + - condition: + method: GET + pathRegex: /catalog-api/api/v1/catalog/catalogtypes + name: GET /v1/catalog/catalogtypes + isRetryable: true + - condition: + method: GET + pathRegex: /catalog-api/api/v1/catalog/items + name: GET /v1/catalog/items + isRetryable: true + - condition: + method: GET + pathRegex: /api/v1/catalog/items/[^/]*/pic/ + name: GET /v1/catalog/items/{id}/pic/ + isRetryable: false + - condition: + method: GET + pathRegex: /hc + name: GET /hc + isRetryable: false + - condition: + method: GET + pathRegex: /liveness + isRetryable: false + name: GET /liveness + - condition: + method: POST + pathRegex: /CatalogApi\.Catalog/GetItemsByIds + name: POST /CatalogApi.Catalog/GetItemsByIds + isRetryable: true + retryBudget: + retryRatio: 0.2 + minRetriesPerSecond: 10 + ttl: 10s \ No newline at end of file diff --git a/k8s/nosql-data.yaml b/k8s/nosql-data.yaml deleted file mode 100644 index 5dfb67c6e4..0000000000 --- a/k8s/nosql-data.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: nosql-data - name: nosql-data -spec: - ports: - - port: 27017 - selector: - app: eshop - component: nosql-data ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: nosql-data -spec: - template: - metadata: - labels: - app: eshop - component: nosql-data - spec: - containers: - - name: nosql-data - image: mongo - ports: - - containerPort: 27017 diff --git a/k8s/rabbitmq.yaml b/k8s/rabbitmq.yaml deleted file mode 100644 index d2a7de9069..0000000000 --- a/k8s/rabbitmq.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: rabbitmq - name: rabbitmq -spec: - ports: - - port: 5672 - selector: - app: eshop - component: rabbitmq ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: rabbitmq -spec: - template: - metadata: - labels: - app: eshop - component: rabbitmq - spec: - containers: - - name: rabbitmq - image: rabbitmq:3-management - ports: - - containerPort: 5672 diff --git a/k8s/services.yaml b/k8s/services.yaml deleted file mode 100644 index ad537eaf00..0000000000 --- a/k8s/services.yaml +++ /dev/null @@ -1,195 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: basket - name: basket -spec: - ports: - - port: 80 - selector: - app: eshop - component: basket ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: catalog - name: catalog -spec: - ports: - - port: 80 - selector: - app: eshop - component: catalog ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: identity - name: identity -spec: - ports: - - port: 80 - selector: - app: eshop - component: identity ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: ordering - name: ordering -spec: - ports: - - port: 80 - selector: - app: eshop - component: ordering ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: ordering-backgroundtasks - name: ordering-background -spec: - ports: - - port: 80 - selector: - app: eshop - component: ordering-backgroundtasks ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: ordering-signalrhub - name: ordering-signalrhub -spec: - ports: - - port: 80 - selector: - app: eshop - component: ordering-signalrhub ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: locations - name: locations -spec: - ports: - - port: 80 - selector: - app: eshop - component: locations ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: payment - name: payment -spec: - ports: - - port: 80 - selector: - app: eshop - component: payment ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: marketing - name: marketing -spec: - ports: - - port: 80 - selector: - app: eshop - component: marketing ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: webshoppingagg - name: webshoppingagg -spec: - ports: - - port: 80 - selector: - app: eshop - component: webshoppingagg ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: mobileshoppingagg - name: mobileshoppingagg -spec: - ports: - - port: 80 - selector: - app: eshop - component: mobileshoppingagg ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: webmvc - name: webmvc -spec: - ports: - - port: 80 - selector: - app: eshop - component: webmvc ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: webstatus - name: webstatus -spec: - ports: - - port: 80 - selector: - app: eshop - component: webstatus ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: webspa - name: webspa -spec: - ports: - - port: 80 - selector: - app: eshop - component: webspa diff --git a/k8s/sql-data.yaml b/k8s/sql-data.yaml deleted file mode 100644 index 245622e83a..0000000000 --- a/k8s/sql-data.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - app: eshop - component: sql-data - name: sql-data -spec: - ports: - - port: 1433 - selector: - app: eshop - component: sql-data ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: sql-data -spec: - template: - metadata: - labels: - app: eshop - component: sql-data - spec: - containers: - - name: sql-data - image: microsoft/mssql-server-linux:2017-latest - env: - - name: ACCEPT_EULA - value: "Y" - - name: MSSQL_PID - value: Developer - - name: MSSQL_SA_PASSWORD - value: Pass@word diff --git a/src/Services/Basket/Basket.API/Infrastructure/Middlewares/FailingMiddleware.cs b/src/Services/Basket/Basket.API/Infrastructure/Middlewares/FailingMiddleware.cs index 875749b5fa..852c61d1f9 100644 --- a/src/Services/Basket/Basket.API/Infrastructure/Middlewares/FailingMiddleware.cs +++ b/src/Services/Basket/Basket.API/Infrastructure/Middlewares/FailingMiddleware.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Logging; using System; using System.Linq; using System.Threading.Tasks; @@ -10,11 +11,13 @@ public class FailingMiddleware private readonly RequestDelegate _next; private bool _mustFail; private readonly FailingOptions _options; - public FailingMiddleware(RequestDelegate next, FailingOptions options) + private readonly ILogger _logger; + public FailingMiddleware(RequestDelegate next, ILogger logger, FailingOptions options) { _next = next; _options = options; _mustFail = false; + _logger = logger; } public async Task Invoke(HttpContext context) { @@ -27,6 +30,7 @@ public async Task Invoke(HttpContext context) if (MustFail(context)) { + _logger.LogInformation($"Response for path {path} will fail."); context.Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError; context.Response.ContentType = "text/plain"; await context.Response.WriteAsync("Failed due to FailingMiddleware enabled."); @@ -74,8 +78,15 @@ private async Task SendOkResponse(HttpContext context, string message) private bool MustFail(HttpContext context) { + var rpath = context.Request.Path.Value; + + if (_options.NotFilteredPaths.Any(p => p.Equals(rpath, StringComparison.InvariantCultureIgnoreCase))) + { + return false; + } + return _mustFail && - (_options.EndpointPaths.Any(x => x == context.Request.Path.Value) + (_options.EndpointPaths.Any(x => x == rpath) || _options.EndpointPaths.Count == 0); } } diff --git a/src/Services/Basket/Basket.API/Infrastructure/Middlewares/FailingOptions.cs b/src/Services/Basket/Basket.API/Infrastructure/Middlewares/FailingOptions.cs index 45989832c1..63e1e55256 100644 --- a/src/Services/Basket/Basket.API/Infrastructure/Middlewares/FailingOptions.cs +++ b/src/Services/Basket/Basket.API/Infrastructure/Middlewares/FailingOptions.cs @@ -6,5 +6,7 @@ public class FailingOptions { public string ConfigPath = "/Failing"; public List EndpointPaths { get; set; } = new List(); + + public List NotFilteredPaths {get; set;} = new List(); } } diff --git a/src/Services/Basket/Basket.API/Program.cs b/src/Services/Basket/Basket.API/Program.cs index de1b54c2b8..ac7294c15d 100644 --- a/src/Services/Basket/Basket.API/Program.cs +++ b/src/Services/Basket/Basket.API/Program.cs @@ -60,7 +60,10 @@ private static IWebHost BuildWebHost(IConfiguration configuration, string[] args }); }) - .UseFailing(options => options.ConfigPath = "/Failing") + .UseFailing(options => { + options.ConfigPath = "/Failing"; + options.NotFilteredPaths.AddRange(new[] {"/hc","/liveness"}); + }) .UseStartup() .UseApplicationInsights() .UseContentRoot(Directory.GetCurrentDirectory()) From e4df0336e58ee204f4b84dc7f03248606327bbfd Mon Sep 17 00:00:00 2001 From: eiximenis Date: Wed, 16 Oct 2019 10:26:43 +0200 Subject: [PATCH 108/149] Changes in compose config for docker-compose up running ok. Added volumes for data --- .../Envoy/config/mobilemarketing/envoy.yaml | 28 +++++++++- .../Envoy/config/mobileshopping/envoy.yaml | 54 ++++++++++++++---- .../Envoy/config/webmarketing/envoy.yaml | 32 +++++++++-- .../Envoy/config/webshopping/envoy.yaml | 56 +++++++++++++++---- src/docker-compose.override.yml | 40 +++++++++---- 5 files changed, 169 insertions(+), 41 deletions(-) diff --git a/src/ApiGateways/Envoy/config/mobilemarketing/envoy.yaml b/src/ApiGateways/Envoy/config/mobilemarketing/envoy.yaml index 324d903abf..54b1afa060 100644 --- a/src/ApiGateways/Envoy/config/mobilemarketing/envoy.yaml +++ b/src/ApiGateways/Envoy/config/mobilemarketing/envoy.yaml @@ -23,17 +23,39 @@ static_resources: domains: - "*" routes: - - match: + - name: "m-short" + match: prefix: "/m/" route: + auto_host_rewrite: true prefix_rewrite: "/marketing-api/" cluster: marketing - - match: + - name: "m-long" + match: prefix: "/marketing-api/" route: + auto_host_rewrite: true cluster: marketing http_filters: - - name: envoy.router + - name: envoy.router + access_log: + - name: envoy.file_access_log + filter: + not_health_check_filter: {} + config: + json_format: + time: "%START_TIME%" + protocol: "%PROTOCOL%" + duration: "%DURATION%" + request_method: "%REQ(:METHOD)%" + request_host: "%REQ(HOST)%" + path: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%" + response_flags: "%RESPONSE_FLAGS%" + route_name: "%ROUTE_NAME%" + upstream_host: "%UPSTREAM_HOST%" + upstream_cluster: "%UPSTREAM_CLUSTER%" + upstream_local_address: "%UPSTREAM_LOCAL_ADDRESS%" + path: "/tmp/access.log" clusters: - name: marketing connect_timeout: 0.25s diff --git a/src/ApiGateways/Envoy/config/mobileshopping/envoy.yaml b/src/ApiGateways/Envoy/config/mobileshopping/envoy.yaml index 4d9f449cb4..373806b06e 100644 --- a/src/ApiGateways/Envoy/config/mobileshopping/envoy.yaml +++ b/src/ApiGateways/Envoy/config/mobileshopping/envoy.yaml @@ -23,44 +23,76 @@ static_resources: domains: - "*" routes: - - match: + - name: "c-short" + match: prefix: "/c/" route: + auto_host_rewrite: true prefix_rewrite: "/catalog-api/" cluster: catalog - - match: + - name: "c-long" + match: prefix: "/catalog-api/" route: + auto_host_rewrite: true cluster: catalog - - match: + - name: "o-short" + match: prefix: "/o/" route: + auto_host_rewrite: true prefix_rewrite: "/ordering-api/" cluster: ordering - - match: + - name: "o-long" + match: prefix: "/ordering-api/" route: + auto_host_rewrite: true cluster: ordering - - match: + - name: "b-short" + match: prefix: "/b/" route: + auto_host_rewrite: true prefix_rewrite: "/basket-api/" cluster: basket - - match: + - name: "b-long" + match: prefix: "/basket-api/" route: + auto_host_rewrite: true cluster: basket - - match: + - name: "agg" + match: prefix: "/" route: + auto_host_rewrite: true prefix_rewrite: "/" cluster: shoppingagg http_filters: - name: envoy.router + access_log: + - name: envoy.file_access_log + filter: + not_health_check_filter: {} + config: + json_format: + time: "%START_TIME%" + protocol: "%PROTOCOL%" + duration: "%DURATION%" + request_method: "%REQ(:METHOD)%" + request_host: "%REQ(HOST)%" + path: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%" + response_flags: "%RESPONSE_FLAGS%" + route_name: "%ROUTE_NAME%" + upstream_host: "%UPSTREAM_HOST%" + upstream_cluster: "%UPSTREAM_CLUSTER%" + upstream_local_address: "%UPSTREAM_LOCAL_ADDRESS%" + path: "/tmp/access.log" clusters: - name: shoppingagg connect_timeout: 0.25s - type: logical_dns + type: strict_dns lb_policy: round_robin hosts: - socket_address: @@ -68,7 +100,7 @@ static_resources: port_value: 80 - name: catalog connect_timeout: 0.25s - type: logical_dns + type: strict_dns lb_policy: round_robin hosts: - socket_address: @@ -76,7 +108,7 @@ static_resources: port_value: 80 - name: basket connect_timeout: 0.25s - type: logical_dns + type: strict_dns lb_policy: round_robin hosts: - socket_address: @@ -84,7 +116,7 @@ static_resources: port_value: 80 - name: ordering connect_timeout: 0.25s - type: logical_dns + type: strict_dns lb_policy: round_robin hosts: - socket_address: diff --git a/src/ApiGateways/Envoy/config/webmarketing/envoy.yaml b/src/ApiGateways/Envoy/config/webmarketing/envoy.yaml index 324d903abf..c6f3421de4 100644 --- a/src/ApiGateways/Envoy/config/webmarketing/envoy.yaml +++ b/src/ApiGateways/Envoy/config/webmarketing/envoy.yaml @@ -23,21 +23,43 @@ static_resources: domains: - "*" routes: - - match: + - name: "m-short" + match: prefix: "/m/" route: + auto_host_rewrite: true prefix_rewrite: "/marketing-api/" cluster: marketing - - match: + - name: "m-long" + match: prefix: "/marketing-api/" route: + auto_host_rewrite: true cluster: marketing http_filters: - - name: envoy.router + - name: envoy.router + access_log: + - name: envoy.file_access_log + filter: + not_health_check_filter: {} + config: + json_format: + time: "%START_TIME%" + protocol: "%PROTOCOL%" + duration: "%DURATION%" + request_method: "%REQ(:METHOD)%" + request_host: "%REQ(HOST)%" + path: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%" + response_flags: "%RESPONSE_FLAGS%" + route_name: "%ROUTE_NAME%" + upstream_host: "%UPSTREAM_HOST%" + upstream_cluster: "%UPSTREAM_CLUSTER%" + upstream_local_address: "%UPSTREAM_LOCAL_ADDRESS%" + path: "/tmp/access.log" clusters: - name: marketing connect_timeout: 0.25s - type: logical_dns + type: strict_dns lb_policy: round_robin hosts: - socket_address: @@ -45,7 +67,7 @@ static_resources: port_value: 80 - name: locations connect_timeout: 0.25s - type: logical_dns + type: strict_dns lb_policy: round_robin hosts: - socket_address: diff --git a/src/ApiGateways/Envoy/config/webshopping/envoy.yaml b/src/ApiGateways/Envoy/config/webshopping/envoy.yaml index 4d9f449cb4..1491f37af2 100644 --- a/src/ApiGateways/Envoy/config/webshopping/envoy.yaml +++ b/src/ApiGateways/Envoy/config/webshopping/envoy.yaml @@ -23,44 +23,76 @@ static_resources: domains: - "*" routes: - - match: + - name: "c-short" + match: prefix: "/c/" route: + auto_host_rewrite: true prefix_rewrite: "/catalog-api/" cluster: catalog - - match: + - name: "c-long" + match: prefix: "/catalog-api/" route: + auto_host_rewrite: true cluster: catalog - - match: + - name: "o-short" + match: prefix: "/o/" route: + auto_host_rewrite: true prefix_rewrite: "/ordering-api/" cluster: ordering - - match: + - name: "o-long" + match: prefix: "/ordering-api/" route: + auto_host_rewrite: true cluster: ordering - - match: + - name: "b-short" + match: prefix: "/b/" route: + auto_host_rewrite: true prefix_rewrite: "/basket-api/" cluster: basket - - match: + - name: "b-long" + match: prefix: "/basket-api/" route: + auto_host_rewrite: true cluster: basket - - match: + - name: "agg" + match: prefix: "/" route: + auto_host_rewrite: true prefix_rewrite: "/" cluster: shoppingagg http_filters: - - name: envoy.router + - name: envoy.router + access_log: + - name: envoy.file_access_log + filter: + not_health_check_filter: {} + config: + json_format: + time: "%START_TIME%" + protocol: "%PROTOCOL%" + duration: "%DURATION%" + request_method: "%REQ(:METHOD)%" + request_host: "%REQ(HOST)%" + path: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%" + response_flags: "%RESPONSE_FLAGS%" + route_name: "%ROUTE_NAME%" + upstream_host: "%UPSTREAM_HOST%" + upstream_cluster: "%UPSTREAM_CLUSTER%" + upstream_local_address: "%UPSTREAM_LOCAL_ADDRESS%" + path: "/tmp/access.log" clusters: - name: shoppingagg connect_timeout: 0.25s - type: logical_dns + type: strict_dns lb_policy: round_robin hosts: - socket_address: @@ -68,7 +100,7 @@ static_resources: port_value: 80 - name: catalog connect_timeout: 0.25s - type: logical_dns + type: strict_dns lb_policy: round_robin hosts: - socket_address: @@ -76,7 +108,7 @@ static_resources: port_value: 80 - name: basket connect_timeout: 0.25s - type: logical_dns + type: strict_dns lb_policy: round_robin hosts: - socket_address: @@ -84,7 +116,7 @@ static_resources: port_value: 80 - name: ordering connect_timeout: 0.25s - type: logical_dns + type: strict_dns lb_policy: round_robin hosts: - socket_address: diff --git a/src/docker-compose.override.yml b/src/docker-compose.override.yml index a6fa6c4830..564ff4eb9d 100644 --- a/src/docker-compose.override.yml +++ b/src/docker-compose.override.yml @@ -19,15 +19,20 @@ services: - ACCEPT_EULA=Y ports: - "5433:1433" + volumes: + - eshop-sqldata:/var/opt/mssql nosqldata: ports: - "27017:27017" + volumes: + - eshop-nosqldata:/data/db basketdata: ports: - "6379:6379" - + volumes: + - eshop-basketdata:/data rabbitmq: ports: - "15672:15672" @@ -69,10 +74,12 @@ services: - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} - UseLoadTest=${USE_LOADTEST:-False} - + - PATH_BASE=/basket-api + - GRPC_PORT=81 + - PORT=80 ports: - "5103:80" - - "5580:5001" + - "9103:81" catalog-api: environment: @@ -91,6 +98,7 @@ services: - OrchestratorType=${ORCHESTRATOR_TYPE} - GRPC_PORT=81 - PORT=80 + - PATH_BASE=/catalog-api ports: - "5101:80" - "9101:81" @@ -113,9 +121,12 @@ services: - UseLoadTest=${USE_LOADTEST:-False} - Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose - Serilog__MinimumLevel__Override__ordering-api=Verbose + - PATH_BASE=/ordering-api + - GRPC_PORT=81 + - PORT=80 ports: - "5102:80" - - "5581:5001" + - "9102:81" ordering-backgroundtasks: environment: @@ -157,6 +168,7 @@ services: - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} - UseLoadTest=${USE_LOADTEST:-False} + - PATH_BASE=/marketing-api ports: - "5110:80" @@ -190,6 +202,7 @@ services: - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} - UseLoadTest=${USE_LOADTEST:-False} + - PATH_BASE=/locations-api ports: - "5109:80" @@ -241,9 +254,9 @@ services: - urls__catalog=http://catalog-api - urls__orders=http://ordering-api - urls__identity=http://identity-api - - urls__grpcBasket=http://10.0.75.1:5580 - - urls__grpcCatalog=http://10.0.75.1:9101 - - urls__grpcOrdering=http://10.0.75.1:5581 + - urls__grpcBasket=http://basket-api:81 + - urls__grpcCatalog=http://catalog-api:81 + - urls__grpcOrdering=http://ordering-api:81 - CatalogUrlHC=http://catalog-api/hc - OrderingUrlHC=http://ordering-api/hc - IdentityUrlHC=http://identity-api/hc @@ -262,9 +275,9 @@ services: - urls__catalog=http://catalog-api - urls__orders=http://ordering-api - urls__identity=http://identity-api - - urls__grpcBasket=http://10.0.75.1:5580 - - urls__grpcCatalog=http://10.0.75.1:9101 - - urls__grpcOrdering=http://10.0.75.1:5581 + - urls__grpcBasket=http://basket-api:81 + - urls__grpcCatalog=http://catalog-api:81 + - urls__grpcOrdering=http://ordering-api:81 - CatalogUrlHC=http://catalog-api/hc - OrderingUrlHC=http://ordering-api/hc - IdentityUrlHC=http://identity-api/hc @@ -366,4 +379,11 @@ services: - SelfUrl=http://webhooks-client/ ports: - "5114:80" +volumes: + eshop-sqldata: + external: false + eshop-nosqldata: + external: false + eshop-basketdata: + external: false From 34a0c03434f1ccebe8cf70b02ad60aa4bf9d3974 Mon Sep 17 00:00:00 2001 From: eiximenis Date: Thu, 31 Oct 2019 09:45:18 +0100 Subject: [PATCH 109/149] Update dockerfile.develop to net3 --- k8s/helm/deploy-all.ps1 | 2 +- .../Mobile.Bff.Shopping/aggregator/Dockerfile.develop | 2 +- src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile.develop | 2 +- src/Services/Basket/Basket.API/Dockerfile.develop | 2 +- src/Services/Catalog/Catalog.API/Dockerfile.develop | 2 +- src/Services/Identity/Identity.API/Dockerfile.develop | 2 +- src/Services/Location/Locations.API/Dockerfile.develop | 2 +- src/Services/Marketing/Marketing.API/Dockerfile.develop | 2 +- src/Services/Ordering/Ordering.API/Dockerfile.develop | 2 +- src/Services/Ordering/Ordering.SignalrHub/Dockerfile.develop | 2 +- src/Services/Payment/Payment.API/Dockerfile.develop | 2 +- src/Services/Webhooks/Webhooks.API/Dockerfile.develop | 2 +- src/Web/WebMVC/Dockerfile.develop | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/k8s/helm/deploy-all.ps1 b/k8s/helm/deploy-all.ps1 index a30cc10b9d..ae49de6253 100644 --- a/k8s/helm/deploy-all.ps1 +++ b/k8s/helm/deploy-all.ps1 @@ -11,7 +11,7 @@ Param( [parameter(Mandatory=$false)][string]$aksRg="", [parameter(Mandatory=$false)][string]$imageTag="latest", [parameter(Mandatory=$false)][bool]$useLocalk8s=$false, - [parameter(Mandatory=$false)][bool]$useMesh=$true, + [parameter(Mandatory=$false)][bool]$useMesh=$false, [parameter(Mandatory=$false)][string][ValidateSet('Always','IfNotPresent','Never', IgnoreCase=$false)]$imagePullPolicy="Always", [parameter(Mandatory=$false)][string]$chartsToDeploy="*", [parameter(Mandatory=$false)][string]$ingressMeshAnnotationsFile="ingress_values_linkerd.yaml" diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile.develop b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile.develop index c4330c3704..4cfe352f00 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile.develop +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile.develop @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.2-sdk +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster ARG BUILD_CONFIGURATION=Debug ENV ASPNETCORE_ENVIRONMENT=Development ENV DOTNET_USE_POLLING_FILE_WATCHER=true diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile.develop b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile.develop index 3d0d16dd3a..79f5317774 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile.develop +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile.develop @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.2-sdk +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster ARG BUILD_CONFIGURATION=Debug ENV ASPNETCORE_ENVIRONMENT=Development ENV DOTNET_USE_POLLING_FILE_WATCHER=true diff --git a/src/Services/Basket/Basket.API/Dockerfile.develop b/src/Services/Basket/Basket.API/Dockerfile.develop index 428aa85dae..66ea6a07db 100644 --- a/src/Services/Basket/Basket.API/Dockerfile.develop +++ b/src/Services/Basket/Basket.API/Dockerfile.develop @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.2-sdk +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster ARG BUILD_CONFIGURATION=Debug ENV ASPNETCORE_ENVIRONMENT=Development ENV DOTNET_USE_POLLING_FILE_WATCHER=true diff --git a/src/Services/Catalog/Catalog.API/Dockerfile.develop b/src/Services/Catalog/Catalog.API/Dockerfile.develop index c158d2b97e..bb79af28d2 100644 --- a/src/Services/Catalog/Catalog.API/Dockerfile.develop +++ b/src/Services/Catalog/Catalog.API/Dockerfile.develop @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.2-sdk +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster ARG BUILD_CONFIGURATION=Debug ENV ASPNETCORE_ENVIRONMENT=Development ENV DOTNET_USE_POLLING_FILE_WATCHER=true diff --git a/src/Services/Identity/Identity.API/Dockerfile.develop b/src/Services/Identity/Identity.API/Dockerfile.develop index e01f161ae1..7463540082 100644 --- a/src/Services/Identity/Identity.API/Dockerfile.develop +++ b/src/Services/Identity/Identity.API/Dockerfile.develop @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.2-sdk +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster ARG BUILD_CONFIGURATION=Debug ENV ASPNETCORE_ENVIRONMENT=Development ENV DOTNET_USE_POLLING_FILE_WATCHER=true diff --git a/src/Services/Location/Locations.API/Dockerfile.develop b/src/Services/Location/Locations.API/Dockerfile.develop index 2ab8b74afd..ab1f7bfb8e 100644 --- a/src/Services/Location/Locations.API/Dockerfile.develop +++ b/src/Services/Location/Locations.API/Dockerfile.develop @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.2-sdk +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster ARG BUILD_CONFIGURATION=Debug ENV ASPNETCORE_ENVIRONMENT=Development ENV DOTNET_USE_POLLING_FILE_WATCHER=true diff --git a/src/Services/Marketing/Marketing.API/Dockerfile.develop b/src/Services/Marketing/Marketing.API/Dockerfile.develop index 2911c5fb7d..8425f47c1a 100644 --- a/src/Services/Marketing/Marketing.API/Dockerfile.develop +++ b/src/Services/Marketing/Marketing.API/Dockerfile.develop @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.2-sdk +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster ARG BUILD_CONFIGURATION=Debug ENV ASPNETCORE_ENVIRONMENT=Development ENV DOTNET_USE_POLLING_FILE_WATCHER=true diff --git a/src/Services/Ordering/Ordering.API/Dockerfile.develop b/src/Services/Ordering/Ordering.API/Dockerfile.develop index 72d98aa72e..70fbab4bf2 100644 --- a/src/Services/Ordering/Ordering.API/Dockerfile.develop +++ b/src/Services/Ordering/Ordering.API/Dockerfile.develop @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.2-sdk +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster ARG BUILD_CONFIGURATION=Debug ENV ASPNETCORE_ENVIRONMENT=Development ENV DOTNET_USE_POLLING_FILE_WATCHER=true diff --git a/src/Services/Ordering/Ordering.SignalrHub/Dockerfile.develop b/src/Services/Ordering/Ordering.SignalrHub/Dockerfile.develop index d96223149a..d55d319b16 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Dockerfile.develop +++ b/src/Services/Ordering/Ordering.SignalrHub/Dockerfile.develop @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.2-sdk +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster ARG BUILD_CONFIGURATION=Debug ENV ASPNETCORE_ENVIRONMENT=Development ENV DOTNET_USE_POLLING_FILE_WATCHER=true diff --git a/src/Services/Payment/Payment.API/Dockerfile.develop b/src/Services/Payment/Payment.API/Dockerfile.develop index 585fbe48f5..0b671a94f7 100644 --- a/src/Services/Payment/Payment.API/Dockerfile.develop +++ b/src/Services/Payment/Payment.API/Dockerfile.develop @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.2-sdk +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster ARG BUILD_CONFIGURATION=Debug ENV ASPNETCORE_ENVIRONMENT=Development ENV DOTNET_USE_POLLING_FILE_WATCHER=true diff --git a/src/Services/Webhooks/Webhooks.API/Dockerfile.develop b/src/Services/Webhooks/Webhooks.API/Dockerfile.develop index 2c16150e46..9dbc57a1f6 100644 --- a/src/Services/Webhooks/Webhooks.API/Dockerfile.develop +++ b/src/Services/Webhooks/Webhooks.API/Dockerfile.develop @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.2-sdk +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster ARG BUILD_CONFIGURATION=Debug ENV ASPNETCORE_ENVIRONMENT=Development ENV DOTNET_USE_POLLING_FILE_WATCHER=true diff --git a/src/Web/WebMVC/Dockerfile.develop b/src/Web/WebMVC/Dockerfile.develop index 172f6bf051..0e4a5dc812 100644 --- a/src/Web/WebMVC/Dockerfile.develop +++ b/src/Web/WebMVC/Dockerfile.develop @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.2-sdk +FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster ARG BUILD_CONFIGURATION=Debug ENV ASPNETCORE_ENVIRONMENT=Development ENV DOTNET_USE_POLLING_FILE_WATCHER=true From d2d33da437241fad49a0f0aa1c66e64ff2a185a7 Mon Sep 17 00:00:00 2001 From: eiximenis Date: Thu, 31 Oct 2019 11:03:37 +0100 Subject: [PATCH 110/149] Readme updated to net3 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 839e2f186b..6dfd3bd0cb 100644 --- a/README.md +++ b/README.md @@ -29,8 +29,8 @@ Dev branch contains the latest "stable" code, and their images are tagged with ` **NEWS / ANNOUNCEMENTS** Do you want to be up-to-date on .NET Architecture guidance and reference apps like eShopOnContainers? --> Subscribe by "WATCHING" this new GitHub repo: https://github.com/dotnet-architecture/News -## Updated for .NET Core 2.2 "wave" of technologies -eShopOnContainers is updated to .NET Core 2.x (currently updated to 2.2) "wave" of technologies. Not just compilation but also new recommended code in EF Core, ASP.NET Core, and other new related versions. +## Updated for .NET Core 3.0 +eShopOnContainers is updated to .NET Core 3.0 "wave" of technologies. Not just compilation but also new recommended code in EF Core, ASP.NET Core, and other new related versions. The **dockerfiles** in the solution have also been updated and now support [**Docker Multi-Stage**](https://blogs.msdn.microsoft.com/stevelasker/2017/09/11/net-and-multistage-dockerfiles/) since mid-December 2017. From 87f38fd934326ec050fb5706a6f6189c69440efc Mon Sep 17 00:00:00 2001 From: eiximenis Date: Thu, 31 Oct 2019 11:06:42 +0100 Subject: [PATCH 111/149] fixed path in azure devops build --- build/azure-devops/buildimages.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build/azure-devops/buildimages.yaml b/build/azure-devops/buildimages.yaml index fc2a41e723..fc97aaaea0 100644 --- a/build/azure-devops/buildimages.yaml +++ b/build/azure-devops/buildimages.yaml @@ -36,7 +36,7 @@ jobs: dockerComposeCommand: 'build ${{ parameters.services }}' containerregistrytype: Container Registry dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} - dockerComposeFile: docker-compose.yml + dockerComposeFile: src/docker-compose.yml qualifyImageNames: true projectName: "" dockerComposeFileArgs: | @@ -47,7 +47,7 @@ jobs: dockerComposeCommand: 'push ${{ parameters.services }}' containerregistrytype: Container Registry dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} - dockerComposeFile: docker-compose.yml + dockerComposeFile: src/docker-compose.yml qualifyImageNames: true projectName: "" dockerComposeFileArgs: | @@ -71,7 +71,7 @@ jobs: dockerComposeCommand: 'build ${{ parameters.services }}' containerregistrytype: Container Registry dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} - dockerComposeFile: docker-compose.yml + dockerComposeFile: src/docker-compose.yml qualifyImageNames: true projectName: "" dockerComposeFileArgs: | @@ -84,7 +84,7 @@ jobs: dockerComposeCommand: 'push ${{ parameters.services }}' containerregistrytype: Container Registry dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} - dockerComposeFile: docker-compose.yml + dockerComposeFile: src/docker-compose.yml qualifyImageNames: true projectName: "" dockerComposeFileArgs: | From b34b8d24034a467355d4cf39ae2701e9ac23e5d2 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Wed, 6 Nov 2019 11:14:19 +0000 Subject: [PATCH 112/149] Sort package references --- .../Mobile.Shopping.HttpAggregator.csproj | 6 +++--- .../Web.Shopping.HttpAggregator.csproj | 8 ++++---- .../EventBus.Tests/EventBus.Tests.csproj | 2 +- .../IntegrationEventLogEF.csproj | 5 +++-- .../WebHost.Customization.csproj | 4 ++-- .../Clients.Grpc.Caller.csproj | 1 + .../eShopOnContainers.Core.csproj | 7 ++++--- .../eShopOnContainers.UnitTests.csproj | 3 ++- .../Basket/Basket.API/Basket.API.csproj | 4 ++-- .../Basket.FunctionalTests.csproj | 7 +++---- .../Basket.UnitTests/Basket.UnitTests.csproj | 13 ++++++------ .../Catalog/Catalog.API/Catalog.API.csproj | 9 ++++----- .../Catalog.FunctionalTests.csproj | 5 ++--- .../Catalog.UnitTests.csproj | 9 ++++----- .../Identity/Identity.API/Identity.API.csproj | 20 ++++++------------- .../Locations.API/Locations.API.csproj | 5 +++-- .../Locations.FunctionalTests.csproj | 5 ++--- .../AzureFunctions/marketing-functions.csproj | 4 +++- .../Marketing.API/Marketing.API.csproj | 8 +++++--- .../Marketing.FunctionalTests.csproj | 5 ++--- .../Ordering/Ordering.API/Ordering.API.csproj | 15 +++++++------- .../Ordering.BackgroundTasks.csproj | 9 ++++----- .../Ordering.Domain/Ordering.Domain.csproj | 2 +- .../Ordering.FunctionalTests.csproj | 3 +-- .../Ordering.Infrastructure.csproj | 2 +- .../Ordering.SignalrHub.csproj | 8 +++----- .../Ordering.UnitTests.csproj | 11 +++++----- .../Payment/Payment.API/Payment.API.csproj | 3 ++- .../Webhooks/Webhooks.API/Webhooks.API.csproj | 13 ++++++------ src/Web/WebMVC/WebMVC.csproj | 20 ++++++------------- src/Web/WebSPA/WebSPA.csproj | 12 +---------- src/Web/WebStatus/WebStatus.csproj | 6 ++++-- src/Web/WebhookClient/WebhookClient.csproj | 5 ++--- 33 files changed, 107 insertions(+), 132 deletions(-) diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj index 060cf3a3be..31d56dda76 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj @@ -15,18 +15,18 @@ - - + + + - diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj index 86b660e216..0f8ae5efe1 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj @@ -15,19 +15,19 @@ - - + + - + + - diff --git a/src/BuildingBlocks/EventBus/EventBus.Tests/EventBus.Tests.csproj b/src/BuildingBlocks/EventBus/EventBus.Tests/EventBus.Tests.csproj index ef1a920e98..1d3f2bc0f7 100644 --- a/src/BuildingBlocks/EventBus/EventBus.Tests/EventBus.Tests.csproj +++ b/src/BuildingBlocks/EventBus/EventBus.Tests/EventBus.Tests.csproj @@ -6,8 +6,8 @@ - + diff --git a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj index 793171c783..14b8670590 100644 --- a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj +++ b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj @@ -6,15 +6,16 @@ - all runtime; build; native; contentfiles; analyzers; buildtransitive + - + + diff --git a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj index 4352c2dee2..38ab6b2852 100644 --- a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj +++ b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj @@ -6,16 +6,16 @@ - - all runtime; build; native; contentfiles; analyzers; buildtransitive + + diff --git a/src/Clients/Clients.Grpc.Caller/Clients.Grpc.Caller.csproj b/src/Clients/Clients.Grpc.Caller/Clients.Grpc.Caller.csproj index 379eb2de1d..7cf9039822 100644 --- a/src/Clients/Clients.Grpc.Caller/Clients.Grpc.Caller.csproj +++ b/src/Clients/Clients.Grpc.Caller/Clients.Grpc.Caller.csproj @@ -10,6 +10,7 @@ + diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj index 99606079fb..8b77f5733a 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/eShopOnContainers.Core.csproj @@ -5,15 +5,16 @@ - - + + + - + diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.UnitTests/eShopOnContainers.UnitTests.csproj b/src/Mobile/eShopOnContainers/eShopOnContainers.UnitTests/eShopOnContainers.UnitTests.csproj index d5c8bdb3b0..f31ca2aed8 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.UnitTests/eShopOnContainers.UnitTests.csproj +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.UnitTests/eShopOnContainers.UnitTests.csproj @@ -6,9 +6,10 @@ - + + diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index 769260d442..df260ed7e0 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -21,8 +21,8 @@ - + @@ -36,8 +36,8 @@ - + diff --git a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj index 8d0081e180..5e9e5c036f 100644 --- a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj +++ b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj @@ -17,15 +17,14 @@ - - + + all runtime; build; native; contentfiles; analyzers - - + diff --git a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj index 019d5bdfc8..92731fb9cc 100644 --- a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj +++ b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj @@ -7,20 +7,19 @@ - - + - - + + - + + all runtime; build; native; contentfiles; analyzers - - + diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.csproj b/src/Services/Catalog/Catalog.API/Catalog.API.csproj index 3d64e1181f..662c55c083 100644 --- a/src/Services/Catalog/Catalog.API/Catalog.API.csproj +++ b/src/Services/Catalog/Catalog.API/Catalog.API.csproj @@ -42,16 +42,15 @@ - - - - + + + @@ -62,8 +61,8 @@ - + diff --git a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj index 22ca355327..5e7fcefbee 100644 --- a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj +++ b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj @@ -34,14 +34,13 @@ - - + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj index 29729d05d5..44b5660c1c 100644 --- a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj +++ b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj @@ -7,17 +7,16 @@ - - + - + + all runtime; build; native; contentfiles; analyzers - - + diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index 27eda89f57..f2e7bec58d 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -19,17 +19,19 @@ - - - + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -44,21 +46,11 @@ - + - - - - diff --git a/src/Services/Location/Locations.API/Locations.API.csproj b/src/Services/Location/Locations.API/Locations.API.csproj index 789c518b74..517586eb47 100644 --- a/src/Services/Location/Locations.API/Locations.API.csproj +++ b/src/Services/Location/Locations.API/Locations.API.csproj @@ -8,6 +8,7 @@ true $(LangVersion) + @@ -24,14 +25,14 @@ - + - + diff --git a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj index 97670c9d1b..1e3e15e8ad 100644 --- a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj +++ b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj @@ -18,14 +18,13 @@ - - + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Marketing/Infrastructure/AzureFunctions/marketing-functions.csproj b/src/Services/Marketing/Infrastructure/AzureFunctions/marketing-functions.csproj index e159feb69e..33e93b6259 100644 --- a/src/Services/Marketing/Infrastructure/AzureFunctions/marketing-functions.csproj +++ b/src/Services/Marketing/Infrastructure/AzureFunctions/marketing-functions.csproj @@ -2,11 +2,13 @@ net461 + - + + diff --git a/src/Services/Marketing/Marketing.API/Marketing.API.csproj b/src/Services/Marketing/Marketing.API/Marketing.API.csproj index f0b370ba4f..339da9be29 100644 --- a/src/Services/Marketing/Marketing.API/Marketing.API.csproj +++ b/src/Services/Marketing/Marketing.API/Marketing.API.csproj @@ -22,6 +22,7 @@ + @@ -33,23 +34,24 @@ + - + - + - + diff --git a/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj b/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj index 26f54e7d8a..9f51dfbbc1 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj +++ b/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj @@ -18,14 +18,13 @@ - - + all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index 0728d5f5eb..e3e5c8767c 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -37,10 +37,6 @@ - - - - @@ -48,13 +44,18 @@ - + + + + + + @@ -63,13 +64,13 @@ - + - + PreserveNewest diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj index f068176d20..5e9a6eb83a 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj @@ -13,21 +13,20 @@ - + - - - + + - + diff --git a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj index c7e83afc6c..0574427f03 100644 --- a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj +++ b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj @@ -5,8 +5,8 @@ - + diff --git a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj index 363154aab3..05668125f4 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj +++ b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj @@ -20,12 +20,11 @@ - all runtime; build; native; contentfiles; analyzers - + diff --git a/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj b/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj index 0f7038bfdf..22bfb2a56b 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj +++ b/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj @@ -9,8 +9,8 @@ - + diff --git a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj index e079f0e4e7..b64c881a88 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj +++ b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj @@ -8,8 +8,6 @@ $(LangVersion) - - @@ -22,6 +20,8 @@ + + @@ -29,13 +29,11 @@ - - - + diff --git a/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj b/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj index 3c12dc001d..5b7ed2060c 100644 --- a/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj +++ b/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj @@ -7,18 +7,17 @@ - - + + + - + all runtime; build; native; contentfiles; analyzers - - - + diff --git a/src/Services/Payment/Payment.API/Payment.API.csproj b/src/Services/Payment/Payment.API/Payment.API.csproj index dfca015972..497349a666 100644 --- a/src/Services/Payment/Payment.API/Payment.API.csproj +++ b/src/Services/Payment/Payment.API/Payment.API.csproj @@ -24,9 +24,10 @@ - + + diff --git a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj index b179b4e42c..1e9b44858d 100644 --- a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj +++ b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj @@ -11,19 +11,20 @@ - - + + - + - + + + - - + diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj index f5da398b35..f6d02d0cdb 100644 --- a/src/Web/WebMVC/WebMVC.csproj +++ b/src/Web/WebMVC/WebMVC.csproj @@ -23,36 +23,28 @@ - + + + + - - + - - - + - - diff --git a/src/Web/WebSPA/WebSPA.csproj b/src/Web/WebSPA/WebSPA.csproj index 5929a758bb..a3b2470865 100644 --- a/src/Web/WebSPA/WebSPA.csproj +++ b/src/Web/WebSPA/WebSPA.csproj @@ -92,24 +92,14 @@ + - - - - - diff --git a/src/Web/WebStatus/WebStatus.csproj b/src/Web/WebStatus/WebStatus.csproj index 5fc1ca2571..7ddadb6f2e 100644 --- a/src/Web/WebStatus/WebStatus.csproj +++ b/src/Web/WebStatus/WebStatus.csproj @@ -6,9 +6,10 @@ true $(LangVersion) + - + @@ -21,9 +22,10 @@ - + + Always diff --git a/src/Web/WebhookClient/WebhookClient.csproj b/src/Web/WebhookClient/WebhookClient.csproj index 1e87e6404f..95f4b79e8f 100644 --- a/src/Web/WebhookClient/WebhookClient.csproj +++ b/src/Web/WebhookClient/WebhookClient.csproj @@ -11,12 +11,11 @@ $(LangVersion) - + + - - From 8712d7eaac22d71e9ac7fdfb5de888d32f57960c Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Wed, 6 Nov 2019 12:33:02 +0000 Subject: [PATCH 113/149] Aling basket-data-test entry with base .yml --- src/docker-compose-tests.override.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/docker-compose-tests.override.yml b/src/docker-compose-tests.override.yml index 068f02e660..cee5c6623f 100644 --- a/src/docker-compose-tests.override.yml +++ b/src/docker-compose-tests.override.yml @@ -6,6 +6,10 @@ services: - "15672:15672" - "5672:5672" + basket-data-test: + ports: + - "6379:6379" + sql-data-test: environment: - SA_PASSWORD=Pass@word @@ -17,10 +21,6 @@ services: ports: - "27017:27017" - basket-data-test: - ports: - - "6379:6379" - identity-api-test: environment: - ASPNETCORE_ENVIRONMENT=Development From 5013ff40baf6af1b39106331f9d9c2eb44e3b004 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Thu, 7 Nov 2019 16:56:22 +0000 Subject: [PATCH 114/149] Remove unnecessary commands from dockerfiles --- src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile | 7 ------- src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile | 7 ------- src/Services/Basket/Basket.API/Dockerfile | 7 ------- src/Services/Catalog/Catalog.API/Dockerfile | 7 ------- src/Services/Identity/Identity.API/Dockerfile | 7 ------- src/Services/Location/Locations.API/Dockerfile | 7 ------- src/Services/Marketing/Marketing.API/Dockerfile | 7 ------- src/Services/Ordering/Ordering.API/Dockerfile | 7 ------- src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile | 7 ------- src/Services/Ordering/Ordering.SignalrHub/Dockerfile | 7 ------- src/Services/Payment/Payment.API/Dockerfile | 7 ------- src/Services/Webhooks/Webhooks.API/Dockerfile | 7 ------- src/Web/WebMVC/Dockerfile | 7 ------- src/Web/WebSPA/Dockerfile | 7 ------- src/Web/WebhookClient/Dockerfile | 7 ------- 15 files changed, 105 deletions(-) diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile index 83a81394c2..0a75d7b652 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile @@ -5,13 +5,6 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/ApiGateways/Mobile.Bff.Shopping/aggregator RUN dotnet publish -c Release -o /app diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile index 19bdb9b842..e6035ec148 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile @@ -5,13 +5,6 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/ApiGateways/Web.Bff.Shopping/aggregator RUN dotnet publish -c Release -o /app diff --git a/src/Services/Basket/Basket.API/Dockerfile b/src/Services/Basket/Basket.API/Dockerfile index 793b010ab6..6c7bac8f6c 100644 --- a/src/Services/Basket/Basket.API/Dockerfile +++ b/src/Services/Basket/Basket.API/Dockerfile @@ -5,13 +5,6 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/Services/Basket/Basket.API RUN dotnet publish -c Release -o /app diff --git a/src/Services/Catalog/Catalog.API/Dockerfile b/src/Services/Catalog/Catalog.API/Dockerfile index 57d30ef1b2..b1a9fdba29 100644 --- a/src/Services/Catalog/Catalog.API/Dockerfile +++ b/src/Services/Catalog/Catalog.API/Dockerfile @@ -6,13 +6,6 @@ EXPOSE 443 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/Services/Catalog/Catalog.API RUN dotnet publish -c Release -o /app diff --git a/src/Services/Identity/Identity.API/Dockerfile b/src/Services/Identity/Identity.API/Dockerfile index 9bc9ede380..129420dfef 100644 --- a/src/Services/Identity/Identity.API/Dockerfile +++ b/src/Services/Identity/Identity.API/Dockerfile @@ -5,13 +5,6 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/Services/Identity/Identity.API RUN dotnet publish -c Release -o /app diff --git a/src/Services/Location/Locations.API/Dockerfile b/src/Services/Location/Locations.API/Dockerfile index 5ffacb4d64..2a1986717d 100644 --- a/src/Services/Location/Locations.API/Dockerfile +++ b/src/Services/Location/Locations.API/Dockerfile @@ -5,13 +5,6 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/Services/Location/Locations.API RUN dotnet publish -c Release -o /app diff --git a/src/Services/Marketing/Marketing.API/Dockerfile b/src/Services/Marketing/Marketing.API/Dockerfile index b254761b4d..2ec76fd164 100644 --- a/src/Services/Marketing/Marketing.API/Dockerfile +++ b/src/Services/Marketing/Marketing.API/Dockerfile @@ -5,13 +5,6 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/Services/Marketing/Marketing.API RUN dotnet publish -c Release -o /app diff --git a/src/Services/Ordering/Ordering.API/Dockerfile b/src/Services/Ordering/Ordering.API/Dockerfile index a4fba19499..1858c9a2e4 100644 --- a/src/Services/Ordering/Ordering.API/Dockerfile +++ b/src/Services/Ordering/Ordering.API/Dockerfile @@ -5,13 +5,6 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/Services/Ordering/Ordering.API RUN dotnet publish -c Release -o /app diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile index dfbab94840..613185101b 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile @@ -5,13 +5,6 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/Services/Ordering/Ordering.BackgroundTasks diff --git a/src/Services/Ordering/Ordering.SignalrHub/Dockerfile b/src/Services/Ordering/Ordering.SignalrHub/Dockerfile index 657b1060f4..28b18abe86 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Dockerfile +++ b/src/Services/Ordering/Ordering.SignalrHub/Dockerfile @@ -5,13 +5,6 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/Services/Ordering/Ordering.SignalrHub RUN dotnet publish -c Release -o /app diff --git a/src/Services/Payment/Payment.API/Dockerfile b/src/Services/Payment/Payment.API/Dockerfile index 6f3c1b1db5..69b6efa071 100644 --- a/src/Services/Payment/Payment.API/Dockerfile +++ b/src/Services/Payment/Payment.API/Dockerfile @@ -5,13 +5,6 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/Services/Payment/Payment.API RUN dotnet publish -c Release -o /app diff --git a/src/Services/Webhooks/Webhooks.API/Dockerfile b/src/Services/Webhooks/Webhooks.API/Dockerfile index ad6893664d..6f6813fbe4 100644 --- a/src/Services/Webhooks/Webhooks.API/Dockerfile +++ b/src/Services/Webhooks/Webhooks.API/Dockerfile @@ -5,13 +5,6 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/Services/Webhooks/Webhooks.API RUN dotnet publish -c Release -o /app diff --git a/src/Web/WebMVC/Dockerfile b/src/Web/WebMVC/Dockerfile index 76e3b5c772..0027b1749e 100644 --- a/src/Web/WebMVC/Dockerfile +++ b/src/Web/WebMVC/Dockerfile @@ -5,13 +5,6 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/Web/WebMVC RUN dotnet publish -c Release -o /app diff --git a/src/Web/WebSPA/Dockerfile b/src/Web/WebSPA/Dockerfile index 62454aacb8..99141bba61 100644 --- a/src/Web/WebSPA/Dockerfile +++ b/src/Web/WebSPA/Dockerfile @@ -14,13 +14,6 @@ RUN npm run build:prod FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . COPY --from=node-build /web/wwwroot /src/Web/WebSPA/wwwroot/ WORKDIR /src/Web/WebSPA diff --git a/src/Web/WebhookClient/Dockerfile b/src/Web/WebhookClient/Dockerfile index f6d81ba0a1..2fc4ef1471 100644 --- a/src/Web/WebhookClient/Dockerfile +++ b/src/Web/WebhookClient/Dockerfile @@ -6,13 +6,6 @@ EXPOSE 443 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src -COPY scripts scripts/ - -COPY ApiGateways/*/*/*.csproj csproj-files/ -COPY BuildingBlocks/*/*/*.csproj csproj-files/ -COPY Services/*/*/*.csproj csproj-files/ -COPY Web/*/*.csproj csproj-files/ - COPY . . WORKDIR /src/Web/WebhookClient RUN dotnet publish -c Release -o /app From a1f64f9b6c35ef35649fb3aeee219d70feadbe98 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Thu, 7 Nov 2019 18:22:23 +0000 Subject: [PATCH 115/149] Add back logging traces referenced in the wiki --- .../OrderStartedIntegrationEventHandler.cs | 2 ++ .../ProductPriceChangedIntegrationEventHandler.cs | 4 ++++ .../CatalogIntegrationEventService.cs | 4 ++++ ...angedToAwaitingValidationIntegrationEventHandler.cs | 2 ++ .../OrderStatusChangedToPaidIntegrationEventHandler.cs | 2 ++ .../Infrastructure/Services/LocationsService.cs | 3 +++ .../UserLocationUpdatedIntegrationEventHandler.cs | 2 ++ .../Application/Behaviors/ValidatorBehavior.cs | 2 ++ .../Application/Commands/CreateOrderCommandHandler.cs | 2 ++ ...nBuyerAndPaymentMethodVerifiedDomainEventHandler.cs | 4 ++-- .../GracePeriodConfirmedIntegrationEventHandler.cs | 2 ++ .../OrderPaymentFailedIntegrationEventHandler.cs | 2 ++ .../OrderPaymentSucceededIntegrationEventHandler.cs | 2 ++ .../OrderStockConfirmedIntegrationEventHandler.cs | 2 ++ .../OrderStockRejectedIntegrationEventHandler.cs | 2 ++ .../UserCheckoutAcceptedIntegrationEventHandler.cs | 10 ++++++++-- .../OrderingIntegrationEventService.cs | 4 ++++ .../Ordering.API/Controllers/OrdersController.cs | 6 +++--- .../Ordering/Ordering.BackgroundTasks/Program.cs | 3 +++ .../Tasks/GracePeriodManagerTask.cs | 2 ++ .../AggregatesModel/OrderAggregate/Order.cs | 2 +- ...angedToAwaitingValidationIntegrationEventHandler.cs | 2 ++ ...rStatusChangedToCancelledIntegrationEventHandler.cs | 2 ++ .../OrderStatusChangedToPaidIntegrationEventHandler.cs | 2 ++ ...derStatusChangedToShippedIntegrationEventHandler.cs | 2 ++ ...usChangedToStockConfirmedIntegrationEventHandler.cs | 2 ++ ...rStatusChangedToSubmittedIntegrationEventHandler.cs | 2 ++ ...usChangedToStockConfirmedIntegrationEventHandler.cs | 4 ++++ src/Web/WebMVC/Controllers/AccountController.cs | 2 ++ 29 files changed, 74 insertions(+), 8 deletions(-) diff --git a/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/OrderStartedIntegrationEventHandler.cs b/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/OrderStartedIntegrationEventHandler.cs index 4fc2e2ec05..cb7b6a2d66 100644 --- a/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/OrderStartedIntegrationEventHandler.cs +++ b/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/OrderStartedIntegrationEventHandler.cs @@ -26,6 +26,8 @@ public async Task Handle(OrderStartedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + await _repository.DeleteBasketAsync(@event.UserId.ToString()); } } diff --git a/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/ProductPriceChangedIntegrationEventHandler.cs b/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/ProductPriceChangedIntegrationEventHandler.cs index 0e2d1b7a05..6068bdda69 100644 --- a/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/ProductPriceChangedIntegrationEventHandler.cs +++ b/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/ProductPriceChangedIntegrationEventHandler.cs @@ -26,6 +26,8 @@ public async Task Handle(ProductPriceChangedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + var userIds = _repository.GetUsers(); foreach (var id in userIds) @@ -43,6 +45,8 @@ private async Task UpdatePriceInBasketItems(int productId, decimal newPrice, dec if (itemsToUpdate != null) { + _logger.LogInformation("----- ProductPriceChangedIntegrationEventHandler - Updating items in basket for user: {BuyerId} ({@Items})", basket.BuyerId, itemsToUpdate); + foreach (var item in itemsToUpdate) { if (item.UnitPrice == oldPrice) diff --git a/src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs b/src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs index e84de7e9e8..bb3a23d409 100644 --- a/src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs +++ b/src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs @@ -39,6 +39,8 @@ public async Task PublishThroughEventBusAsync(IntegrationEvent evt) { try { + _logger.LogInformation("----- Publishing integration event: {IntegrationEventId_published} from {AppName} - ({@IntegrationEvent})", evt.Id, Program.AppName, evt); + await _eventLogService.MarkEventAsInProgressAsync(evt.Id); _eventBus.Publish(evt); await _eventLogService.MarkEventAsPublishedAsync(evt.Id); @@ -52,6 +54,8 @@ public async Task PublishThroughEventBusAsync(IntegrationEvent evt) public async Task SaveEventAndCatalogContextChangesAsync(IntegrationEvent evt) { + _logger.LogInformation("----- CatalogIntegrationEventService - Saving changes and integrationEvent: {IntegrationEventId}", evt.Id); + //Use of an EF Core resiliency strategy when using multiple DbContexts within an explicit BeginTransaction(): //See: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency await ResilientTransaction.New(_catalogContext).ExecuteAsync(async () => diff --git a/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs b/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs index 2c9fd337ce..493a271ccd 100644 --- a/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs +++ b/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs @@ -32,6 +32,8 @@ public async Task Handle(OrderStatusChangedToAwaitingValidationIntegrationEvent { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + var confirmedOrderStockItems = new List(); foreach (var orderStockItem in @event.OrderStockItems) diff --git a/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs b/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs index e7520a6515..7d383254fb 100644 --- a/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs +++ b/src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs @@ -25,6 +25,8 @@ public async Task Handle(OrderStatusChangedToPaidIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + //we're not blocking stock/inventory foreach (var orderStockItem in @event.OrderStockItems) { diff --git a/src/Services/Location/Locations.API/Infrastructure/Services/LocationsService.cs b/src/Services/Location/Locations.API/Infrastructure/Services/LocationsService.cs index dc91d0d50c..f6b9ed708d 100644 --- a/src/Services/Location/Locations.API/Infrastructure/Services/LocationsService.cs +++ b/src/Services/Location/Locations.API/Infrastructure/Services/LocationsService.cs @@ -72,6 +72,9 @@ private void PublishNewUserLocationPositionIntegrationEvent(string userId, List< { var newUserLocations = MapUserLocationDetails(newLocations); var @event = new UserLocationUpdatedIntegrationEvent(userId, newUserLocations); + + _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + _eventBus.Publish(@event); } diff --git a/src/Services/Marketing/Marketing.API/IntegrationEvents/Handlers/UserLocationUpdatedIntegrationEventHandler.cs b/src/Services/Marketing/Marketing.API/IntegrationEvents/Handlers/UserLocationUpdatedIntegrationEventHandler.cs index 5b93a17d0f..3d5e62e45c 100644 --- a/src/Services/Marketing/Marketing.API/IntegrationEvents/Handlers/UserLocationUpdatedIntegrationEventHandler.cs +++ b/src/Services/Marketing/Marketing.API/IntegrationEvents/Handlers/UserLocationUpdatedIntegrationEventHandler.cs @@ -28,6 +28,8 @@ public async Task Handle(UserLocationUpdatedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + var userMarketingData = await _marketingDataRepository.GetAsync(@event.UserId); userMarketingData = userMarketingData ?? new MarketingData() { UserId = @event.UserId }; diff --git a/src/Services/Ordering/Ordering.API/Application/Behaviors/ValidatorBehavior.cs b/src/Services/Ordering/Ordering.API/Application/Behaviors/ValidatorBehavior.cs index 9be24e20f4..6fc12258b4 100644 --- a/src/Services/Ordering/Ordering.API/Application/Behaviors/ValidatorBehavior.cs +++ b/src/Services/Ordering/Ordering.API/Application/Behaviors/ValidatorBehavior.cs @@ -24,6 +24,8 @@ public async Task Handle(TRequest request, CancellationToken cancella { var typeName = request.GetGenericTypeName(); + _logger.LogInformation("----- Validating command {CommandType}", typeName); + var failures = _validators .Select(v => v.Validate(request)) .SelectMany(result => result.Errors) diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs b/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs index 1cbd215366..b2fff253df 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs @@ -53,6 +53,8 @@ public async Task Handle(CreateOrderCommand message, CancellationToken can order.AddOrderItem(item.ProductId, item.ProductName, item.UnitPrice, item.Discount, item.PictureUrl, item.Units); } + _logger.LogInformation("----- Creating Order - Order: {@Order}", order); + _orderRepository.Add(order); return await _orderRepository.UnitOfWork diff --git a/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs index 4d3a3280c6..bea8eaac54 100644 --- a/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs @@ -26,12 +26,12 @@ public UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler( // then we can update the original Order with the BuyerId and PaymentId (foreign keys) public async Task Handle(BuyerAndPaymentMethodVerifiedDomainEvent buyerPaymentMethodVerifiedEvent, CancellationToken cancellationToken) { - var log = _logger.CreateLogger(); var orderToUpdate = await _orderRepository.GetAsync(buyerPaymentMethodVerifiedEvent.OrderId); orderToUpdate.SetBuyerId(buyerPaymentMethodVerifiedEvent.Buyer.Id); orderToUpdate.SetPaymentId(buyerPaymentMethodVerifiedEvent.Payment.Id); - log.LogTrace("Order with Id: {OrderId} has been successfully updated with a payment method {PaymentMethod} ({Id})", + _logger.CreateLogger() + .LogTrace("Order with Id: {OrderId} has been successfully updated with a payment method {PaymentMethod} ({Id})", buyerPaymentMethodVerifiedEvent.OrderId, nameof(buyerPaymentMethodVerifiedEvent.Payment), buyerPaymentMethodVerifiedEvent.Payment.Id); } } diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/GracePeriodConfirmedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/GracePeriodConfirmedIntegrationEventHandler.cs index e3df4d11d2..2e003b322c 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/GracePeriodConfirmedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/GracePeriodConfirmedIntegrationEventHandler.cs @@ -37,6 +37,8 @@ public async Task Handle(GracePeriodConfirmedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + var command = new SetAwaitingValidationOrderStatusCommand(@event.OrderId); _logger.LogInformation( diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentFailedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentFailedIntegrationEventHandler.cs index e54a14fb0e..a123dd891e 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentFailedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentFailedIntegrationEventHandler.cs @@ -31,6 +31,8 @@ public async Task Handle(OrderPaymentFailedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + var command = new CancelOrderCommand(@event.OrderId); _logger.LogInformation( diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentSucceededIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentSucceededIntegrationEventHandler.cs index 57a9829a24..fdb6c2c0b7 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentSucceededIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderPaymentSucceededIntegrationEventHandler.cs @@ -31,6 +31,8 @@ public async Task Handle(OrderPaymentSucceededIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + var command = new SetPaidOrderStatusCommand(@event.OrderId); _logger.LogInformation( diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockConfirmedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockConfirmedIntegrationEventHandler.cs index 8572a09dd1..6438b01d0c 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockConfirmedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockConfirmedIntegrationEventHandler.cs @@ -31,6 +31,8 @@ public async Task Handle(OrderStockConfirmedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + var command = new SetStockConfirmedOrderStatusCommand(@event.OrderId); _logger.LogInformation( diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockRejectedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockRejectedIntegrationEventHandler.cs index 1c6a3edd6f..b457211edf 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockRejectedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/OrderStockRejectedIntegrationEventHandler.cs @@ -30,6 +30,8 @@ public async Task Handle(OrderStockRejectedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + var orderStockRejectedItems = @event.OrderStockItems .FindAll(c => !c.HasStock) .Select(c => c.ProductId) diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/UserCheckoutAcceptedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/UserCheckoutAcceptedIntegrationEventHandler.cs index f55542b34a..a1452b23cd 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/UserCheckoutAcceptedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/EventHandling/UserCheckoutAcceptedIntegrationEventHandler.cs @@ -35,9 +35,11 @@ public UserCheckoutAcceptedIntegrationEventHandler( /// /// public async Task Handle(UserCheckoutAcceptedIntegrationEvent @event) - { + { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + var result = false; if (@event.RequestId != Guid.Empty) @@ -60,7 +62,11 @@ public async Task Handle(UserCheckoutAcceptedIntegrationEvent @event) result = await _mediator.Send(requestCreateOrder); - if (!result) + if (result) + { + _logger.LogInformation("----- CreateOrderCommand suceeded - RequestId: {RequestId}", @event.RequestId); + } + else { _logger.LogWarning("CreateOrderCommand failed - RequestId: {RequestId}", @event.RequestId); } diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs index 776b909272..cb7ce55136 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs @@ -45,6 +45,8 @@ public async Task PublishEventsThroughEventBusAsync(Guid transactionId) foreach (var logEvt in pendingLogEvents) { + _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", logEvt.EventId, Program.AppName, logEvt.IntegrationEvent); + try { await _eventLogService.MarkEventAsInProgressAsync(logEvt.EventId); @@ -62,6 +64,8 @@ public async Task PublishEventsThroughEventBusAsync(Guid transactionId) public async Task AddAndSaveEventAsync(IntegrationEvent evt) { + _logger.LogInformation("----- Enqueuing integration event {IntegrationEventId} to repository ({@IntegrationEvent})", evt.Id, evt); + await _eventLogService.SaveEventAsync(evt, _orderingContext.GetCurrentTransaction()); } } diff --git a/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs b/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs index 58640412bb..7a592bfb86 100644 --- a/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs +++ b/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs @@ -49,7 +49,7 @@ public async Task CancelOrderAsync([FromBody]CancelOrderCommand c { var requestCancelOrder = new IdentifiedCommand(command, guid); - _logger.LogTrace( + _logger.LogInformation( "----- Sending command: {CommandName} - {IdProperty}: {CommandId} ({@Command})", requestCancelOrder.GetGenericTypeName(), nameof(requestCancelOrder.Command.OrderNumber), @@ -79,7 +79,7 @@ public async Task ShipOrderAsync([FromBody]ShipOrderCommand comma { var requestShipOrder = new IdentifiedCommand(command, guid); - _logger.LogTrace( + _logger.LogInformation( "----- Sending command: {CommandName} - {IdProperty}: {CommandId} ({@Command})", requestShipOrder.GetGenericTypeName(), nameof(requestShipOrder.Command.OrderNumber), @@ -141,7 +141,7 @@ public async Task>> GetCardTypesAsync() [HttpPost] public async Task> CreateOrderDraftFromBasketDataAsync([FromBody] CreateOrderDraftCommand createOrderDraftCommand) { - _logger.LogTrace( + _logger.LogInformation( "----- Sending command: {CommandName} - {IdProperty}: {CommandId} ({@Command})", createOrderDraftCommand.GetGenericTypeName(), nameof(createOrderDraftCommand.BuyerId), diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs index 152cd79a73..a483bb1f89 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs @@ -13,6 +13,9 @@ namespace Ordering.BackgroundTasks { public class Program { + public static readonly string Namespace = typeof(Program).Namespace; + public static readonly string AppName = Namespace; + public static void Main(string[] args) { CreateHostBuilder(args).Run(); diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs index f70fdeb06c..247ed9d67e 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Tasks/GracePeriodManagerTask.cs @@ -55,6 +55,8 @@ private void CheckConfirmedGracePeriodOrders() { var confirmGracePeriodEvent = new GracePeriodConfirmedIntegrationEvent(orderId); + _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", confirmGracePeriodEvent.Id, Program.AppName, confirmGracePeriodEvent); + _eventBus.Publish(confirmGracePeriodEvent); } } diff --git a/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs b/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs index b5639ac50a..8a0b816271 100644 --- a/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs +++ b/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs @@ -18,7 +18,7 @@ public class Order // Address is a Value Object pattern example persisted as EF Core 2.0 owned entity public Address Address { get; private set; } - public int? GetBuyerId { get { return this._buyerId; } } + public int? GetBuyerId => _buyerId; private int? _buyerId; public OrderStatus OrderStatus { get; private set; } diff --git a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs index 7a99d898cb..0e2665232c 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToAwaitingValidationIntegrationEventHandler.cs @@ -27,6 +27,8 @@ public async Task Handle(OrderStatusChangedToAwaitingValidationIntegrationEvent { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + await _hubContext.Clients .Group(@event.BuyerName) .SendAsync("UpdatedOrderState", new { OrderId = @event.OrderId, Status = @event.OrderStatus }); diff --git a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToCancelledIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToCancelledIntegrationEventHandler.cs index 15d2cce471..6257bb237a 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToCancelledIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToCancelledIntegrationEventHandler.cs @@ -28,6 +28,8 @@ public async Task Handle(OrderStatusChangedToCancelledIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + await _hubContext.Clients .Group(@event.BuyerName) .SendAsync("UpdatedOrderState", new { OrderId = @event.OrderId, Status = @event.OrderStatus }); diff --git a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs index 0d70edcbfd..836e02d3c3 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToPaidIntegrationEventHandler.cs @@ -26,6 +26,8 @@ public async Task Handle(OrderStatusChangedToPaidIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + await _hubContext.Clients .Group(@event.BuyerName) .SendAsync("UpdatedOrderState", new { OrderId = @event.OrderId, Status = @event.OrderStatus }); diff --git a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToShippedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToShippedIntegrationEventHandler.cs index 782ee1a111..5b08d08b40 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToShippedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToShippedIntegrationEventHandler.cs @@ -28,6 +28,8 @@ public async Task Handle(OrderStatusChangedToShippedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + await _hubContext.Clients .Group(@event.BuyerName) .SendAsync("UpdatedOrderState", new { OrderId = @event.OrderId, Status = @event.OrderStatus }); diff --git a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs index 364c1c3072..3486277162 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs @@ -29,6 +29,8 @@ public async Task Handle(OrderStatusChangedToStockConfirmedIntegrationEvent @eve { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + await _hubContext.Clients .Group(@event.BuyerName) .SendAsync("UpdatedOrderState", new { OrderId = @event.OrderId, Status = @event.OrderStatus }); diff --git a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToSubmittedIntegrationEventHandler.cs b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToSubmittedIntegrationEventHandler.cs index 30183ef775..422bc4a7ad 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToSubmittedIntegrationEventHandler.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/IntegrationEvents/EventHandling/OrderStatusChangedToSubmittedIntegrationEventHandler.cs @@ -29,6 +29,8 @@ public async Task Handle(OrderStatusChangedToSubmittedIntegrationEvent @event) { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + await _hubContext.Clients .Group(@event.BuyerName) .SendAsync("UpdatedOrderState", new { OrderId = @event.OrderId, Status = @event.OrderStatus }); diff --git a/src/Services/Payment/Payment.API/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs b/src/Services/Payment/Payment.API/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs index aa03587a5e..5921529b25 100644 --- a/src/Services/Payment/Payment.API/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs +++ b/src/Services/Payment/Payment.API/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs @@ -31,6 +31,8 @@ public async Task Handle(OrderStatusChangedToStockConfirmedIntegrationEvent @eve { using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}")) { + _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); + IntegrationEvent orderPaymentIntegrationEvent; //Business feature comment: @@ -48,6 +50,8 @@ public async Task Handle(OrderStatusChangedToStockConfirmedIntegrationEvent @eve orderPaymentIntegrationEvent = new OrderPaymentFailedIntegrationEvent(@event.OrderId); } + _logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", orderPaymentIntegrationEvent.Id, Program.AppName, orderPaymentIntegrationEvent); + _eventBus.Publish(orderPaymentIntegrationEvent); await Task.CompletedTask; diff --git a/src/Web/WebMVC/Controllers/AccountController.cs b/src/Web/WebMVC/Controllers/AccountController.cs index dfd4984c59..8b82498ba0 100644 --- a/src/Web/WebMVC/Controllers/AccountController.cs +++ b/src/Web/WebMVC/Controllers/AccountController.cs @@ -25,6 +25,8 @@ public AccountController(ILogger logger) var user = User as ClaimsPrincipal; var token = await HttpContext.GetTokenAsync("access_token"); + _logger.LogInformation("----- User {@User} authenticated into {AppName}", user, Program.AppName); + if (token != null) { ViewData["access_token"] = token; From 866e89cad20f59746aa91e4c72de7b5b51443041 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Fri, 8 Nov 2019 15:15:15 +0000 Subject: [PATCH 116/149] Remove string interpolation from logging --- .../aggregator/Services/GrpcCallerService.cs | 4 ++-- .../aggregator/Services/GrpcCallerService.cs | 4 ++-- src/Services/Basket/Basket.API/Grpc/BasketService.cs | 4 ++-- .../Infrastructure/Middlewares/FailingMiddleware.cs | 2 +- src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs | 2 +- .../Devspaces/DevspacesRedirectUriValidator.cs | 4 ++-- .../Ordering/Ordering.API/Grpc/OrderingService.cs | 2 +- .../OrderStatusChangedToPaidIntegrationEventHandler.cs | 2 +- .../OrderStatusChangedToShippedIntegrationEventHandler.cs | 2 +- .../Webhooks.API/Services/GrantUrlTesterService.cs | 8 ++++---- .../Webhooks/Webhooks.API/Services/WebhooksSender.cs | 2 +- src/Services/Webhooks/Webhooks.API/Startup.cs | 2 +- src/Web/WebMVC/Services/BasketService.cs | 4 ++-- .../Controllers/WebhooksReceivedController.cs | 8 ++++---- 14 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/GrpcCallerService.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/GrpcCallerService.cs index 72ad91daa4..fe857c6cc7 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/GrpcCallerService.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Services/GrpcCallerService.cs @@ -33,7 +33,7 @@ public static async Task CallService(string urlGrpc, Func< } catch (RpcException e) { - Log.Error($"Error calling via grpc: {e.Status} - {e.Message}"); + Log.Error("Error calling via grpc: {Status} - {Message}", e.Status, e.Message); return default; } finally @@ -65,7 +65,7 @@ public static async Task CallService(string urlGrpc, Func fun } catch (RpcException e) { - Log.Error($"Error calling via grpc: {e.Status} - {e.Message}"); + Log.Error("Error calling via grpc: {Status} - {Message}", e.Status, e.Message); } finally { diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/GrpcCallerService.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/GrpcCallerService.cs index 68d096ce5e..43138f9879 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/GrpcCallerService.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Services/GrpcCallerService.cs @@ -32,7 +32,7 @@ public static async Task CallService(string urlGrpc, Func< } catch (RpcException e) { - Log.Error($"Error calling via grpc: {e.Status} - {e.Message}"); + Log.Error("Error calling via grpc: {Status} - {Message}", e.Status, e.Message); return default; } finally @@ -66,7 +66,7 @@ public static async Task CallService(string urlGrpc, Func fun } catch (RpcException e) { - Log.Error($"Error calling via grpc: {e.Status} - {e.Message}"); + Log.Error("Error calling via grpc: {Status} - {Message}", e.Status, e.Message); } finally { diff --git a/src/Services/Basket/Basket.API/Grpc/BasketService.cs b/src/Services/Basket/Basket.API/Grpc/BasketService.cs index e92190c736..830703b59a 100644 --- a/src/Services/Basket/Basket.API/Grpc/BasketService.cs +++ b/src/Services/Basket/Basket.API/Grpc/BasketService.cs @@ -22,7 +22,7 @@ public BasketService(IBasketRepository repository, ILogger logger [AllowAnonymous] public override async Task GetBasketById(BasketRequest request, ServerCallContext context) { - _logger.LogInformation($"Begin grpc call from method {context.Method} for basket id {request.Id}"); + _logger.LogInformation("Begin grpc call from method {Method} for basket id {Id}", context.Method, request.Id); var data = await _repository.GetBasketAsync(request.Id); @@ -42,7 +42,7 @@ public override async Task GetBasketById(BasketRequest r public override async Task UpdateBasket(CustomerBasketRequest request, ServerCallContext context) { - _logger.LogInformation($"Begin grpc call BasketService.UpdateBasketAsync for buyer id {request.Buyerid}"); + _logger.LogInformation("Begin grpc call BasketService.UpdateBasketAsync for buyer id {Buyerid}", request.Buyerid); var customerBasket = MapToCustomerBasket(request); diff --git a/src/Services/Basket/Basket.API/Infrastructure/Middlewares/FailingMiddleware.cs b/src/Services/Basket/Basket.API/Infrastructure/Middlewares/FailingMiddleware.cs index 852c61d1f9..108955bd4e 100644 --- a/src/Services/Basket/Basket.API/Infrastructure/Middlewares/FailingMiddleware.cs +++ b/src/Services/Basket/Basket.API/Infrastructure/Middlewares/FailingMiddleware.cs @@ -30,7 +30,7 @@ public async Task Invoke(HttpContext context) if (MustFail(context)) { - _logger.LogInformation($"Response for path {path} will fail."); + _logger.LogInformation("Response for path {Path} will fail.", path); context.Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError; context.Response.ContentType = "text/plain"; await context.Response.WriteAsync("Failed due to FailingMiddleware enabled."); diff --git a/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs b/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs index 39d7828c2c..13c7c8d2e9 100644 --- a/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs +++ b/src/Services/Catalog/Catalog.API/Grpc/CatalogService.cs @@ -29,7 +29,7 @@ public CatalogService(CatalogContext dbContext, IOptions settin public override async Task GetItemById(CatalogItemRequest request, ServerCallContext context) { - _logger.LogInformation($"Begin grpc call CatalogService.GetItemById for product id {request.Id}"); + _logger.LogInformation("Begin grpc call CatalogService.GetItemById for product id {Id}", request.Id); if (request.Id <= 0) { context.Status = new Status(StatusCode.FailedPrecondition, $"Id must be > 0 (received {request.Id})"); diff --git a/src/Services/Identity/Identity.API/Devspaces/DevspacesRedirectUriValidator.cs b/src/Services/Identity/Identity.API/Devspaces/DevspacesRedirectUriValidator.cs index 53e497b598..d43a9ab15a 100644 --- a/src/Services/Identity/Identity.API/Devspaces/DevspacesRedirectUriValidator.cs +++ b/src/Services/Identity/Identity.API/Devspaces/DevspacesRedirectUriValidator.cs @@ -17,13 +17,13 @@ public DevspacesRedirectUriValidator(ILogger logg public Task IsPostLogoutRedirectUriValidAsync(string requestedUri, Client client) { - _logger.LogInformation($"Client {client.ClientName} used post logout uri {requestedUri}."); + _logger.LogInformation("Client {ClientName} used post logout uri {RequestedUri}.", client.ClientName, requestedUri); return Task.FromResult(true); } public Task IsRedirectUriValidAsync(string requestedUri, Client client) { - _logger.LogInformation($"Client {client.ClientName} used redirect uri {requestedUri}."); + _logger.LogInformation("Client {ClientName} used post logout uri {RequestedUri}.", client.ClientName, requestedUri); return Task.FromResult(true); } diff --git a/src/Services/Ordering/Ordering.API/Grpc/OrderingService.cs b/src/Services/Ordering/Ordering.API/Grpc/OrderingService.cs index adc210a1aa..5effedc1de 100644 --- a/src/Services/Ordering/Ordering.API/Grpc/OrderingService.cs +++ b/src/Services/Ordering/Ordering.API/Grpc/OrderingService.cs @@ -26,7 +26,7 @@ public OrderingService(IMediator mediator, ILogger logger) public override async Task CreateOrderDraftFromBasketData(CreateOrderDraftCommand createOrderDraftCommand, ServerCallContext context) { - _logger.LogInformation($"Begin grpc call from method {context.Method} for ordering get order draft {createOrderDraftCommand}"); + _logger.LogInformation("Begin grpc call from method {Method} for ordering get order draft {CreateOrderDraftCommand}", context.Method, createOrderDraftCommand); _logger.LogTrace( "----- Sending command: {CommandName} - {IdProperty}: {CommandId} ({@Command})", createOrderDraftCommand.GetGenericTypeName(), diff --git a/src/Services/Webhooks/Webhooks.API/IntegrationEvents/OrderStatusChangedToPaidIntegrationEventHandler.cs b/src/Services/Webhooks/Webhooks.API/IntegrationEvents/OrderStatusChangedToPaidIntegrationEventHandler.cs index 2503bdca73..0b118bb61a 100644 --- a/src/Services/Webhooks/Webhooks.API/IntegrationEvents/OrderStatusChangedToPaidIntegrationEventHandler.cs +++ b/src/Services/Webhooks/Webhooks.API/IntegrationEvents/OrderStatusChangedToPaidIntegrationEventHandler.cs @@ -24,7 +24,7 @@ public OrderStatusChangedToPaidIntegrationEventHandler(IWebhooksRetriever retrie public async Task Handle(OrderStatusChangedToPaidIntegrationEvent @event) { var subscriptions = await _retriever.GetSubscriptionsOfType(WebhookType.OrderPaid); - _logger.LogInformation($"Received OrderStatusChangedToShippedIntegrationEvent and got {subscriptions.Count()} subscriptions to process"); + _logger.LogInformation("Received OrderStatusChangedToShippedIntegrationEvent and got {SubscriptionsCount} subscriptions to process", subscriptions.Count()); var whook = new WebhookData(WebhookType.OrderPaid, @event); await _sender.SendAll(subscriptions, whook); } diff --git a/src/Services/Webhooks/Webhooks.API/IntegrationEvents/OrderStatusChangedToShippedIntegrationEventHandler.cs b/src/Services/Webhooks/Webhooks.API/IntegrationEvents/OrderStatusChangedToShippedIntegrationEventHandler.cs index 9a1dea33d1..9e2325d917 100644 --- a/src/Services/Webhooks/Webhooks.API/IntegrationEvents/OrderStatusChangedToShippedIntegrationEventHandler.cs +++ b/src/Services/Webhooks/Webhooks.API/IntegrationEvents/OrderStatusChangedToShippedIntegrationEventHandler.cs @@ -24,7 +24,7 @@ public OrderStatusChangedToShippedIntegrationEventHandler(IWebhooksRetriever ret public async Task Handle(OrderStatusChangedToShippedIntegrationEvent @event) { var subscriptions = await _retriever.GetSubscriptionsOfType(WebhookType.OrderShipped); - _logger.LogInformation($"Received OrderStatusChangedToShippedIntegrationEvent and got {subscriptions.Count()} subscriptions to process"); + _logger.LogInformation("Received OrderStatusChangedToShippedIntegrationEvent and got {SubscriptionCount} subscriptions to process", subscriptions.Count()); var whook = new WebhookData(WebhookType.OrderShipped, @event); await _sender.SendAll(subscriptions, whook); } diff --git a/src/Services/Webhooks/Webhooks.API/Services/GrantUrlTesterService.cs b/src/Services/Webhooks/Webhooks.API/Services/GrantUrlTesterService.cs index c4b38b724a..fef390dda6 100644 --- a/src/Services/Webhooks/Webhooks.API/Services/GrantUrlTesterService.cs +++ b/src/Services/Webhooks/Webhooks.API/Services/GrantUrlTesterService.cs @@ -20,7 +20,7 @@ public async Task TestGrantUrl(string urlHook, string url, string token) { if (!CheckSameOrigin(urlHook, url)) { - _logger.LogWarning($"Url of the hook ({urlHook} and the grant url ({url} do not belong to same origin)"); + _logger.LogWarning("Url of the hook ({UrlHook} and the grant url ({Url} do not belong to same origin)", urlHook, url); return false; } @@ -28,18 +28,18 @@ public async Task TestGrantUrl(string urlHook, string url, string token) var client = _clientFactory.CreateClient("GrantClient"); var msg = new HttpRequestMessage(HttpMethod.Options, url); msg.Headers.Add("X-eshop-whtoken", token); - _logger.LogInformation($"Sending the OPTIONS message to {url} with token {token ?? string.Empty}"); + _logger.LogInformation("Sending the OPTIONS message to {Url} with token \"{Token}\"", url, token ?? string.Empty); try { var response = await client.SendAsync(msg); var tokenReceived = response.Headers.TryGetValues("X-eshop-whtoken", out var tokenValues) ? tokenValues.FirstOrDefault() : null; var tokenExpected = string.IsNullOrWhiteSpace(token) ? null : token; - _logger.LogInformation($"Response code is {response.StatusCode} for url {url} and token in header was {tokenReceived} (expected token was {tokenExpected})"); + _logger.LogInformation("Response code is {StatusCode} for url {Url} and token in header was {TokenReceived} (expected token was {TokenExpected})", response.StatusCode, url, tokenReceived, tokenExpected); return response.IsSuccessStatusCode && tokenReceived == tokenExpected; } catch (Exception ex) { - _logger.LogWarning($"Exception {ex.GetType().Name} when sending OPTIONS request. Url can't be granted."); + _logger.LogWarning("Exception {TypeName} when sending OPTIONS request. Url can't be granted.", ex.GetType().Name); return false; } } diff --git a/src/Services/Webhooks/Webhooks.API/Services/WebhooksSender.cs b/src/Services/Webhooks/Webhooks.API/Services/WebhooksSender.cs index 62128411c8..7ab7a0c670 100644 --- a/src/Services/Webhooks/Webhooks.API/Services/WebhooksSender.cs +++ b/src/Services/Webhooks/Webhooks.API/Services/WebhooksSender.cs @@ -41,7 +41,7 @@ private Task OnSendData(WebhookSubscription subs, string jsonData, HttpClient cl { request.Headers.Add("X-eshop-whtoken", subs.Token); } - _logger.LogDebug($"Sending hook to {subs.DestUrl} of type {subs.Type.ToString()}"); + _logger.LogDebug("Sending hook to {DestUrl} of type {Type}", subs.Type.ToString(), subs.Type.ToString()); return client.SendAsync(request); } diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs index 5859e9e12f..07872a58b8 100644 --- a/src/Services/Webhooks/Webhooks.API/Startup.cs +++ b/src/Services/Webhooks/Webhooks.API/Startup.cs @@ -74,7 +74,7 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) if (!string.IsNullOrEmpty(pathBase)) { - loggerFactory.CreateLogger("init").LogDebug($"Using PATH BASE '{pathBase}'"); + loggerFactory.CreateLogger("init").LogDebug("Using PATH BASE '{PathBase}'", pathBase); app.UsePathBase(pathBase); } diff --git a/src/Web/WebMVC/Services/BasketService.cs b/src/Web/WebMVC/Services/BasketService.cs index 8e72ef2498..64184f7b21 100644 --- a/src/Web/WebMVC/Services/BasketService.cs +++ b/src/Web/WebMVC/Services/BasketService.cs @@ -32,9 +32,9 @@ public BasketService(HttpClient httpClient, IOptions settings, ILog public async Task GetBasket(ApplicationUser user) { var uri = API.Basket.GetBasket(_basketByPassUrl, user.Id); - _logger.LogDebug($"[GetBasket] -> Calling {uri} to get the basket"); + _logger.LogDebug("[GetBasket] -> Calling {Uri} to get the basket", uri); var response = await _apiClient.GetAsync(uri); - _logger.LogDebug($"[GetBasket] -> response code {response.StatusCode}"); + _logger.LogDebug("[GetBasket] -> response code {StatusCode}", response.StatusCode); var responseString = await response.Content.ReadAsStringAsync(); return string.IsNullOrEmpty(responseString) ? new Basket() { BuyerId = user.Id } : diff --git a/src/Web/WebhookClient/Controllers/WebhooksReceivedController.cs b/src/Web/WebhookClient/Controllers/WebhooksReceivedController.cs index 5f1f793c8a..7746b60590 100644 --- a/src/Web/WebhookClient/Controllers/WebhooksReceivedController.cs +++ b/src/Web/WebhookClient/Controllers/WebhooksReceivedController.cs @@ -33,11 +33,11 @@ public async Task NewWebhook(WebhookData hook) var header = Request.Headers[HeaderNames.WebHookCheckHeader]; var token = header.FirstOrDefault(); - _logger.LogInformation($"Received hook with token {token}. My token is {_settings.Token}. Token validation is set to {_settings.ValidateToken}"); + _logger.LogInformation("Received hook with token {Token}. My token is {MyToken}. Token validation is set to {ValidateToken}", token, _settings.Token, _settings.ValidateToken); if (!_settings.ValidateToken || _settings.Token == token) { - _logger.LogInformation($"Received hook is going to be processed"); + _logger.LogInformation("Received hook is going to be processed"); var newHook = new WebHookReceived() { Data = hook.Payload, @@ -45,11 +45,11 @@ public async Task NewWebhook(WebhookData hook) Token = token }; await _hooksRepository.AddNew(newHook); - _logger.LogInformation($"Received hook was processed."); + _logger.LogInformation("Received hook was processed."); return Ok(newHook); } - _logger.LogInformation($"Received hook is NOT processed - Bad Request returned."); + _logger.LogInformation("Received hook is NOT processed - Bad Request returned."); return BadRequest(); } } From c3f7178631d3ab1e9e39810e782272e888317a87 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Fri, 8 Nov 2019 15:36:10 +0000 Subject: [PATCH 117/149] Change obsolete .ForSqlServerUseSequenceHiLo for .UseHiLo --- .../EntityConfigurations/CatalogBrandEntityTypeConfiguration.cs | 2 +- .../EntityConfigurations/CatalogItemEntityTypeConfiguration.cs | 2 +- .../EntityConfigurations/CatalogTypeEntityTypeConfiguration.cs | 2 +- .../EntityConfigurations/CampaignEntityTypeConfiguration.cs | 2 +- .../EntityConfigurations/RuleEntityTypeConfiguration.cs | 2 +- .../Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs | 1 + .../EntityConfigurations/BuyerEntityTypeConfiguration.cs | 2 +- .../EntityConfigurations/OrderEntityTypeConfiguration.cs | 2 +- .../EntityConfigurations/OrderItemEntityTypeConfiguration.cs | 2 +- .../PaymentMethodEntityTypeConfiguration.cs | 2 +- 10 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/Services/Catalog/Catalog.API/Infrastructure/EntityConfigurations/CatalogBrandEntityTypeConfiguration.cs b/src/Services/Catalog/Catalog.API/Infrastructure/EntityConfigurations/CatalogBrandEntityTypeConfiguration.cs index 8312b023d2..35d307ee36 100644 --- a/src/Services/Catalog/Catalog.API/Infrastructure/EntityConfigurations/CatalogBrandEntityTypeConfiguration.cs +++ b/src/Services/Catalog/Catalog.API/Infrastructure/EntityConfigurations/CatalogBrandEntityTypeConfiguration.cs @@ -14,7 +14,7 @@ public void Configure(EntityTypeBuilder builder) builder.HasKey(ci => ci.Id); builder.Property(ci => ci.Id) - .ForSqlServerUseSequenceHiLo("catalog_brand_hilo") + .UseHiLo("catalog_brand_hilo") .IsRequired(); builder.Property(cb => cb.Brand) diff --git a/src/Services/Catalog/Catalog.API/Infrastructure/EntityConfigurations/CatalogItemEntityTypeConfiguration.cs b/src/Services/Catalog/Catalog.API/Infrastructure/EntityConfigurations/CatalogItemEntityTypeConfiguration.cs index f7f093ce86..33079099c8 100644 --- a/src/Services/Catalog/Catalog.API/Infrastructure/EntityConfigurations/CatalogItemEntityTypeConfiguration.cs +++ b/src/Services/Catalog/Catalog.API/Infrastructure/EntityConfigurations/CatalogItemEntityTypeConfiguration.cs @@ -12,7 +12,7 @@ public void Configure(EntityTypeBuilder builder) builder.ToTable("Catalog"); builder.Property(ci => ci.Id) - .ForSqlServerUseSequenceHiLo("catalog_hilo") + .UseHiLo("catalog_hilo") .IsRequired(); builder.Property(ci => ci.Name) diff --git a/src/Services/Catalog/Catalog.API/Infrastructure/EntityConfigurations/CatalogTypeEntityTypeConfiguration.cs b/src/Services/Catalog/Catalog.API/Infrastructure/EntityConfigurations/CatalogTypeEntityTypeConfiguration.cs index 4c30bb3b6b..df42826c9c 100644 --- a/src/Services/Catalog/Catalog.API/Infrastructure/EntityConfigurations/CatalogTypeEntityTypeConfiguration.cs +++ b/src/Services/Catalog/Catalog.API/Infrastructure/EntityConfigurations/CatalogTypeEntityTypeConfiguration.cs @@ -14,7 +14,7 @@ public void Configure(EntityTypeBuilder builder) builder.HasKey(ci => ci.Id); builder.Property(ci => ci.Id) - .ForSqlServerUseSequenceHiLo("catalog_type_hilo") + .UseHiLo("catalog_type_hilo") .IsRequired(); builder.Property(cb => cb.Type) diff --git a/src/Services/Marketing/Marketing.API/Infrastructure/EntityConfigurations/CampaignEntityTypeConfiguration.cs b/src/Services/Marketing/Marketing.API/Infrastructure/EntityConfigurations/CampaignEntityTypeConfiguration.cs index 833133daee..22292e53f6 100644 --- a/src/Services/Marketing/Marketing.API/Infrastructure/EntityConfigurations/CampaignEntityTypeConfiguration.cs +++ b/src/Services/Marketing/Marketing.API/Infrastructure/EntityConfigurations/CampaignEntityTypeConfiguration.cs @@ -14,7 +14,7 @@ public void Configure(EntityTypeBuilder builder) builder.HasKey(m => m.Id); builder.Property(m => m.Id) - .ForSqlServerUseSequenceHiLo("campaign_hilo") + .UseHiLo("campaign_hilo") .IsRequired(); builder.Property(m => m.Name) diff --git a/src/Services/Marketing/Marketing.API/Infrastructure/EntityConfigurations/RuleEntityTypeConfiguration.cs b/src/Services/Marketing/Marketing.API/Infrastructure/EntityConfigurations/RuleEntityTypeConfiguration.cs index 49c015014d..ebf1d1b3a7 100644 --- a/src/Services/Marketing/Marketing.API/Infrastructure/EntityConfigurations/RuleEntityTypeConfiguration.cs +++ b/src/Services/Marketing/Marketing.API/Infrastructure/EntityConfigurations/RuleEntityTypeConfiguration.cs @@ -14,7 +14,7 @@ public void Configure(EntityTypeBuilder builder) builder.HasKey(r => r.Id); builder.Property(r => r.Id) - .ForSqlServerUseSequenceHiLo("rule_hilo") + .UseHiLo("rule_hilo") .IsRequired(); builder.HasDiscriminator("RuleTypeId") diff --git a/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs b/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs index 8a0b816271..897a085920 100644 --- a/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs +++ b/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Order.cs @@ -27,6 +27,7 @@ public class Order private string _description; + // Draft orders have this set to true. Currently we don't check anywhere the draft status of an Order, but we could do it if needed private bool _isDraft; diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/BuyerEntityTypeConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/BuyerEntityTypeConfiguration.cs index fde29b265f..f5bdea7563 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/BuyerEntityTypeConfiguration.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/BuyerEntityTypeConfiguration.cs @@ -17,7 +17,7 @@ public void Configure(EntityTypeBuilder buyerConfiguration) buyerConfiguration.Ignore(b => b.DomainEvents); buyerConfiguration.Property(b => b.Id) - .ForSqlServerUseSequenceHiLo("buyerseq", OrderingContext.DEFAULT_SCHEMA); + .UseHiLo("buyerseq", OrderingContext.DEFAULT_SCHEMA); buyerConfiguration.Property(b => b.IdentityGuid) .HasMaxLength(200) diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs index 9bfccd64c4..711f14b08d 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderEntityTypeConfiguration.cs @@ -18,7 +18,7 @@ public void Configure(EntityTypeBuilder orderConfiguration) orderConfiguration.Ignore(b => b.DomainEvents); orderConfiguration.Property(o => o.Id) - .ForSqlServerUseSequenceHiLo("orderseq", OrderingContext.DEFAULT_SCHEMA); + .UseHiLo("orderseq", OrderingContext.DEFAULT_SCHEMA); //Address value object persisted as owned entity type supported since EF Core 2.0 orderConfiguration diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderItemEntityTypeConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderItemEntityTypeConfiguration.cs index e4100eb0d8..9fd5734ed7 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderItemEntityTypeConfiguration.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/OrderItemEntityTypeConfiguration.cs @@ -17,7 +17,7 @@ public void Configure(EntityTypeBuilder orderItemConfiguration) orderItemConfiguration.Ignore(b => b.DomainEvents); orderItemConfiguration.Property(o => o.Id) - .ForSqlServerUseSequenceHiLo("orderitemseq"); + .UseHiLo("orderitemseq"); orderItemConfiguration.Property("OrderId") .IsRequired(); diff --git a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/PaymentMethodEntityTypeConfiguration.cs b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/PaymentMethodEntityTypeConfiguration.cs index 8343deb3b6..52fdf5f244 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/PaymentMethodEntityTypeConfiguration.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/EntityConfigurations/PaymentMethodEntityTypeConfiguration.cs @@ -18,7 +18,7 @@ public void Configure(EntityTypeBuilder paymentConfiguration) paymentConfiguration.Ignore(b => b.DomainEvents); paymentConfiguration.Property(b => b.Id) - .ForSqlServerUseSequenceHiLo("paymentseq", OrderingContext.DEFAULT_SCHEMA); + .UseHiLo("paymentseq", OrderingContext.DEFAULT_SCHEMA); paymentConfiguration.Property("BuyerId") .IsRequired(); From 69de1a30f34171249ec7375bfa7dd112b61d2070 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Fri, 8 Nov 2019 15:36:54 +0000 Subject: [PATCH 118/149] Remove obsolete warning configuration --- .../IntegrationEventLogEF/Services/IntegrationEventLogService.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs index 04fa84618a..800b99a388 100644 --- a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs +++ b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs @@ -27,7 +27,6 @@ public IntegrationEventLogService(DbConnection dbConnection) _integrationEventLogContext = new IntegrationEventLogContext( new DbContextOptionsBuilder() .UseSqlServer(_dbConnection) - .ConfigureWarnings(warnings => warnings.Throw(RelationalEventId.QueryClientEvaluationWarning)) .Options); _eventTypes = Assembly.Load(Assembly.GetEntryAssembly().FullName) From 0c14810a33bed7fb30281fb79144210cb87847f4 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Fri, 8 Nov 2019 16:02:58 +0000 Subject: [PATCH 119/149] Replace obsolete IHostingEnvironment for IWebHostEnvironment --- .../Mobile.Bff.Shopping/aggregator/Startup.cs | 3 ++- .../Web.Bff.Shopping/aggregator/Startup.cs | 3 ++- .../Identity.API/Data/ApplicationDbContextSeed.cs | 2 +- src/Services/Identity/Identity.API/Program.cs | 3 ++- src/Services/Identity/Identity.API/Startup.cs | 3 ++- src/Services/Identity/Identity.API/web.config | 13 ++++++++----- .../Marketing.API/Controllers/PicController.cs | 4 ++-- .../Filters/HttpGlobalExceptionFilter.cs | 5 +++-- src/Services/Marketing/Marketing.API/Startup.cs | 2 +- .../Filters/HttpGlobalExceptionFilter.cs | 5 +++-- .../Infrastructure/OrderingContextSeed.cs | 2 +- src/Services/Ordering/Ordering.API/Program.cs | 2 +- .../OrderingScenarioBase.cs | 2 +- .../Infrastructure/HttpGlobalExceptionFilter.cs | 5 +++-- src/Web/WebMVC/Infrastructure/WebContextSeed.cs | 2 +- src/Web/WebMVC/Startup.cs | 3 ++- src/Web/WebSPA/Server/Controllers/HomeController.cs | 4 ++-- .../WebSPA/Server/Infrastructure/WebContextSeed.cs | 2 +- src/Web/WebSPA/Startup.cs | 3 ++- src/Web/WebStatus/Startup.cs | 3 ++- src/Web/WebhookClient/Startup.cs | 3 ++- 21 files changed, 44 insertions(+), 30 deletions(-) diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index fb438221e0..7a48e93eda 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -12,6 +12,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.OpenApi.Models; using System; @@ -49,7 +50,7 @@ public void ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { var pathBase = Configuration["PATH_BASE"]; diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index f99a7a5aaf..27ee6db3e6 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -13,6 +13,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.OpenApi.Models; using System; @@ -50,7 +51,7 @@ public void ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { var pathBase = Configuration["PATH_BASE"]; if (!string.IsNullOrEmpty(pathBase)) diff --git a/src/Services/Identity/Identity.API/Data/ApplicationDbContextSeed.cs b/src/Services/Identity/Identity.API/Data/ApplicationDbContextSeed.cs index a1fda64553..60102ee74e 100644 --- a/src/Services/Identity/Identity.API/Data/ApplicationDbContextSeed.cs +++ b/src/Services/Identity/Identity.API/Data/ApplicationDbContextSeed.cs @@ -20,7 +20,7 @@ public class ApplicationDbContextSeed { private readonly IPasswordHasher _passwordHasher = new PasswordHasher(); - public async Task SeedAsync(ApplicationDbContext context,IHostingEnvironment env, + public async Task SeedAsync(ApplicationDbContext context,IWebHostEnvironment env, ILogger logger, IOptions settings,int? retry = 0) { int retryForAvaiability = retry.Value; diff --git a/src/Services/Identity/Identity.API/Program.cs b/src/Services/Identity/Identity.API/Program.cs index 784f63a1e5..ad708c0f46 100644 --- a/src/Services/Identity/Identity.API/Program.cs +++ b/src/Services/Identity/Identity.API/Program.cs @@ -4,6 +4,7 @@ using Microsoft.eShopOnContainers.Services.Identity.API.Data; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Serilog; @@ -32,7 +33,7 @@ public static int Main(string[] args) host.MigrateDbContext((_, __) => { }) .MigrateDbContext((context, services) => { - var env = services.GetService(); + var env = services.GetService(); var logger = services.GetService>(); var settings = services.GetService>(); diff --git a/src/Services/Identity/Identity.API/Startup.cs b/src/Services/Identity/Identity.API/Startup.cs index feefbcee31..7533e5ff3f 100644 --- a/src/Services/Identity/Identity.API/Startup.cs +++ b/src/Services/Identity/Identity.API/Startup.cs @@ -16,6 +16,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using StackExchange.Redis; using System; @@ -117,7 +118,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { //loggerFactory.AddConsole(Configuration.GetSection("Logging")); //loggerFactory.AddDebug(); diff --git a/src/Services/Identity/Identity.API/web.config b/src/Services/Identity/Identity.API/web.config index dc0514fca5..a2cf1fe26c 100644 --- a/src/Services/Identity/Identity.API/web.config +++ b/src/Services/Identity/Identity.API/web.config @@ -1,14 +1,17 @@  - - - + - + + + + + + - + \ No newline at end of file diff --git a/src/Services/Marketing/Marketing.API/Controllers/PicController.cs b/src/Services/Marketing/Marketing.API/Controllers/PicController.cs index 66ce1e7502..740f4975b3 100644 --- a/src/Services/Marketing/Marketing.API/Controllers/PicController.cs +++ b/src/Services/Marketing/Marketing.API/Controllers/PicController.cs @@ -7,8 +7,8 @@ [ApiController] public class PicController : ControllerBase { - private readonly IHostingEnvironment _env; - public PicController(IHostingEnvironment env) + private readonly IWebHostEnvironment _env; + public PicController(IWebHostEnvironment env) { _env = env; } diff --git a/src/Services/Marketing/Marketing.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs b/src/Services/Marketing/Marketing.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs index 14e79775d5..19c5ab0389 100644 --- a/src/Services/Marketing/Marketing.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs +++ b/src/Services/Marketing/Marketing.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs @@ -5,15 +5,16 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.eShopOnContainers.Services.Marketing.API.Infrastructure.ActionResults; + using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System.Net; public class HttpGlobalExceptionFilter : IExceptionFilter { - private readonly IHostingEnvironment env; + private readonly IWebHostEnvironment env; private readonly ILogger logger; - public HttpGlobalExceptionFilter(IHostingEnvironment env, ILogger logger) + public HttpGlobalExceptionFilter(IWebHostEnvironment env, ILogger logger) { this.env = env; this.logger = logger; diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs index ff6fdd43af..4c2c2a710d 100644 --- a/src/Services/Marketing/Marketing.API/Startup.cs +++ b/src/Services/Marketing/Marketing.API/Startup.cs @@ -152,7 +152,7 @@ public virtual IServiceProvider ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { //loggerFactory.AddAzureWebAppDiagnostics(); //loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs b/src/Services/Ordering/Ordering.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs index a4ce415eaa..8b75877441 100644 --- a/src/Services/Ordering/Ordering.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs +++ b/src/Services/Ordering/Ordering.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs @@ -6,15 +6,16 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.ActionResults; + using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System.Net; public class HttpGlobalExceptionFilter : IExceptionFilter { - private readonly IHostingEnvironment env; + private readonly IWebHostEnvironment env; private readonly ILogger logger; - public HttpGlobalExceptionFilter(IHostingEnvironment env, ILogger logger) + public HttpGlobalExceptionFilter(IWebHostEnvironment env, ILogger logger) { this.env = env; this.logger = logger; diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/OrderingContextSeed.cs b/src/Services/Ordering/Ordering.API/Infrastructure/OrderingContextSeed.cs index 7dcbe194ec..89148f43af 100644 --- a/src/Services/Ordering/Ordering.API/Infrastructure/OrderingContextSeed.cs +++ b/src/Services/Ordering/Ordering.API/Infrastructure/OrderingContextSeed.cs @@ -20,7 +20,7 @@ public class OrderingContextSeed { - public async Task SeedAsync(OrderingContext context, IHostingEnvironment env,IOptions settings, ILogger logger) + public async Task SeedAsync(OrderingContext context, IWebHostEnvironment env,IOptions settings, ILogger logger) { var policy = CreatePolicy(logger, nameof(OrderingContextSeed)); diff --git a/src/Services/Ordering/Ordering.API/Program.cs b/src/Services/Ordering/Ordering.API/Program.cs index 899871b3de..9c734699cb 100644 --- a/src/Services/Ordering/Ordering.API/Program.cs +++ b/src/Services/Ordering/Ordering.API/Program.cs @@ -34,7 +34,7 @@ public static int Main(string[] args) Log.Information("Applying migrations ({ApplicationContext})...", AppName); host.MigrateDbContext((context, services) => { - var env = services.GetService(); + var env = services.GetService(); var settings = services.GetService>(); var logger = services.GetService>(); diff --git a/src/Services/Ordering/Ordering.FunctionalTests/OrderingScenarioBase.cs b/src/Services/Ordering/Ordering.FunctionalTests/OrderingScenarioBase.cs index 5b2979e1ae..c7645cc3df 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/OrderingScenarioBase.cs +++ b/src/Services/Ordering/Ordering.FunctionalTests/OrderingScenarioBase.cs @@ -36,7 +36,7 @@ public TestServer CreateServer() testServer.Host .MigrateDbContext((context, services) => { - var env = services.GetService(); + var env = services.GetService(); var settings = services.GetService>(); var logger = services.GetService>(); diff --git a/src/Services/Webhooks/Webhooks.API/Infrastructure/HttpGlobalExceptionFilter.cs b/src/Services/Webhooks/Webhooks.API/Infrastructure/HttpGlobalExceptionFilter.cs index e0138ef8ea..44cc9547af 100644 --- a/src/Services/Webhooks/Webhooks.API/Infrastructure/HttpGlobalExceptionFilter.cs +++ b/src/Services/Webhooks/Webhooks.API/Infrastructure/HttpGlobalExceptionFilter.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; @@ -15,10 +16,10 @@ namespace Webhooks.API.Infrastructure { public class HttpGlobalExceptionFilter : IExceptionFilter { - private readonly IHostingEnvironment env; + private readonly IWebHostEnvironment env; private readonly ILogger logger; - public HttpGlobalExceptionFilter(IHostingEnvironment env, ILogger logger) + public HttpGlobalExceptionFilter(IWebHostEnvironment env, ILogger logger) { this.env = env; this.logger = logger; diff --git a/src/Web/WebMVC/Infrastructure/WebContextSeed.cs b/src/Web/WebMVC/Infrastructure/WebContextSeed.cs index bc4165c0a1..ab3b8d801f 100644 --- a/src/Web/WebMVC/Infrastructure/WebContextSeed.cs +++ b/src/Web/WebMVC/Infrastructure/WebContextSeed.cs @@ -13,7 +13,7 @@ namespace WebMVC.Infrastructure { public class WebContextSeed { - public static void Seed(IApplicationBuilder applicationBuilder, IHostingEnvironment env) + public static void Seed(IApplicationBuilder applicationBuilder, IWebHostEnvironment env) { var log = Serilog.Log.Logger; diff --git a/src/Web/WebMVC/Startup.cs b/src/Web/WebMVC/Startup.cs index bfba906621..299af38cbe 100644 --- a/src/Web/WebMVC/Startup.cs +++ b/src/Web/WebMVC/Startup.cs @@ -13,6 +13,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.IdentityModel.Logging; using StackExchange.Redis; @@ -53,7 +54,7 @@ public void ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub"); if (env.IsDevelopment()) diff --git a/src/Web/WebSPA/Server/Controllers/HomeController.cs b/src/Web/WebSPA/Server/Controllers/HomeController.cs index 3bb0219430..14e8a88711 100644 --- a/src/Web/WebSPA/Server/Controllers/HomeController.cs +++ b/src/Web/WebSPA/Server/Controllers/HomeController.cs @@ -9,10 +9,10 @@ namespace eShopConContainers.WebSPA.Server.Controllers { public class HomeController : Controller { - private readonly IHostingEnvironment _env; + private readonly IWebHostEnvironment _env; private readonly IOptionsSnapshot _settings; - public HomeController(IHostingEnvironment env, IOptionsSnapshot settings) + public HomeController(IWebHostEnvironment env, IOptionsSnapshot settings) { _env = env; _settings = settings; diff --git a/src/Web/WebSPA/Server/Infrastructure/WebContextSeed.cs b/src/Web/WebSPA/Server/Infrastructure/WebContextSeed.cs index 74de66b5cb..d897ddac54 100644 --- a/src/Web/WebSPA/Server/Infrastructure/WebContextSeed.cs +++ b/src/Web/WebSPA/Server/Infrastructure/WebContextSeed.cs @@ -13,7 +13,7 @@ namespace WebSPA.Infrastructure { public class WebContextSeed { - public static void Seed(IApplicationBuilder applicationBuilder, IHostingEnvironment env, ILoggerFactory loggerFactory) + public static void Seed(IApplicationBuilder applicationBuilder, IWebHostEnvironment env, ILoggerFactory loggerFactory) { var log = loggerFactory.CreateLogger(); diff --git a/src/Web/WebSPA/Startup.cs b/src/Web/WebSPA/Startup.cs index 367d494baf..2b50e7add1 100644 --- a/src/Web/WebSPA/Startup.cs +++ b/src/Web/WebSPA/Startup.cs @@ -8,6 +8,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using StackExchange.Redis; using System; @@ -61,7 +62,7 @@ public void ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IAntiforgery antiforgery) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, IAntiforgery antiforgery) { loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); diff --git a/src/Web/WebStatus/Startup.cs b/src/Web/WebStatus/Startup.cs index c68239c322..bb7af4ab0c 100644 --- a/src/Web/WebStatus/Startup.cs +++ b/src/Web/WebStatus/Startup.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace WebStatus @@ -35,7 +36,7 @@ public void ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { //loggerFactory.AddAzureWebAppDiagnostics(); //loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Trace); diff --git a/src/Web/WebhookClient/Startup.cs b/src/Web/WebhookClient/Startup.cs index f93f61a5ff..e61affd183 100644 --- a/src/Web/WebhookClient/Startup.cs +++ b/src/Web/WebhookClient/Startup.cs @@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using System; using System.Linq; using System.Net; @@ -42,7 +43,7 @@ public void ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { var pathBase = Configuration["PATH_BASE"]; From dcd0f3fba269a48da9867395fb26d9da0fb84e0a Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Fri, 8 Nov 2019 16:36:36 +0000 Subject: [PATCH 120/149] Remove obsolete references --- src/Services/Catalog/Catalog.API/Startup.cs | 5 ----- .../Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj | 1 - 2 files changed, 6 deletions(-) diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index 64441f9ea5..53a9554be6 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -212,11 +212,6 @@ public static IServiceCollection AddCustomDbContext(this IServiceCollection serv //Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); }); - - // Changing default behavior when client evaluation occurs to throw. - // Default in EF Core would be to log a warning when client evaluation is performed. - options.ConfigureWarnings(warnings => warnings.Throw(RelationalEventId.QueryClientEvaluationWarning)); - //Check Client vs. Server evaluation: https://docs.microsoft.com/en-us/ef/core/querying/client-eval }); services.AddDbContext(options => diff --git a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj index b64c881a88..feaeae4b27 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj +++ b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj @@ -20,7 +20,6 @@ - From c6cda440fbe39d24483a8bffd3bb10640a169a4a Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Fri, 8 Nov 2019 16:36:55 +0000 Subject: [PATCH 121/149] Sort dependencies.props --- src/_build/dependencies.props | 89 +++++++++++++++++------------------ 1 file changed, 44 insertions(+), 45 deletions(-) diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props index 31233baf73..ee22d5ccb5 100644 --- a/src/_build/dependencies.props +++ b/src/_build/dependencies.props @@ -23,101 +23,100 @@ 2.23.0 0.1.22-pre2 - 3.0.0-preview8.19405.4 - 1.7.9 2.2.0 2.2.0 2.2.0 2.2.0 2.2.0 2.2.0 - 2.2.22 2.2.3 + 2.2.22 2.2.2 - 4.9.2 4.2.1 - 1.50.7 - 4.3.0 - 4.5.1 - 4.5.0 - 5.1.0 + 4.9.2 2.6.375 - 5.2.7 - 15.9.20 - 1.0.172 - 3.0.0-preview4-19123-01 - 1.0.2105168 - 3.0.0-preview6-19319-03 + 1.50.7 + 7.5.0 + 3.0.0-preview3.4 + 3.0.0-preview3.4 + 3.0.0-preview3.4 + 3.0.0-preview3.4 + 3.0.0-preview3.4 5.1.0 + 5.1.0 2.2.1 2.6.1 1.0.2 - 3.0.0-preview4-19123-01 + 5.2.7 3.0.0-preview8.19405.7 + 3.0.0-preview8.19405.7 + 3.0.0-preview8.19405.7 3.0.0-preview4-19123-01 3.0.0-preview4-19123-01 - 3.0.0-alpha1-10670 2.2.0-preview2-35157 - 3.0.0-alpha1-34847 - 3.0.0-preview8.19405.7 - 3.0.0-preview8.19405.7 + 3.0.0-preview8.19405.7 2.2.0 1.0.0 - 2.2.0 + 3.0.0-preview4-19123-01 3.0.0-preview4-19123-01 - 3.0.0-preview6.19307.2 - 3.0.0-preview8.19405.7 + 2.2.0 3.0.0-preview8.19405.7 - 3.0.0-preview8.19405.7 - 3.0.0-preview4-19123-01 + 3.0.0-preview4-19123-01 + 3.0.0-preview4-19123-01 + 3.0.0-preview8.19405.7 + 3.0.0-preview6.19307.2 3.0.0-preview4-19123-01 - 7.5.0 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-34847 + 3.0.0-preview8.19405.7 3.0.0 + 15.9.20 4.5.0 - 4.7.0-preview8.19405.3 - 3.0.0-preview8.19405.11 - 3.0.0-preview8.19405.11 - 3.0.0-preview8.19405.11 - 3.0.0-preview8.19405.11 3.0.0-preview5.19227.1 + 3.0.0-preview8.19405.11 3.0.0-preview5.19227.1 + 3.0.0-preview8.19405.11 3.0.0-preview5.19227.1 - 3.0.0-preview8.19405.3 - 3.0.0-preview8.19405.7 + 3.0.0-preview8.19405.11 + 3.0.0-preview8.19405.11 3.0.0-preview8.19405.4 2.2.0 2.2.0 - 2.2.0 + 3.0.0-preview8.19405.4 2.2.0 - 2.2.0 + 2.2.0 + 3.0.0-preview8.19405.7 3.0.0-preview8.19405.4 + 2.2.0 16.0.1 - 2.9.0-beta2 + 3.0.0-preview8.19405.3 + 1.0.2105168 + 1.7.9 + 3.0.0-preview6-19319-03 + 1.0.172 2.9.0-beta2 - 2.9.0-beta2 2.9.0-beta2 + 2.9.0-beta2 4.10.1 12.0.2 - 3.0.0-preview8.19405.7 12.0.1 6.0.1 - 3.0.0-preview3.4 - 3.0.0-preview3.4 - 3.0.0-preview3.4 - 3.0.0-preview3.4 - 3.0.0-preview3.4 5.0.1 3.0.0-dev-00053 2.1.3 3.1.1-dev-00209 3.1.1 - 4.0.0 4.2.1 + 4.0.0 1.2.6 5.0.0-rc2 + 4.7.0-preview8.19405.3 4.3.0 - 2.4.0 + 4.5.1 + 4.3.0 + 4.5.0 2.4.0 + 2.4.0 From dd5ae1b595905068cc8c8b5ee4f2e45e700e32e7 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Fri, 8 Nov 2019 17:02:49 +0000 Subject: [PATCH 122/149] Removed obsolete folders --- .../CommandBus/CommandBus/CommandBus.csproj | 8 ----- .../CommandBus/CommandBus/ICommandBus.cs | 13 ------- .../CommandBus/IntegrationCommand.cs | 18 ---------- .../CommandBusRabbitMQ.csproj | 7 ---- .../EventBus/CommandBus/CommandBus.csproj | 8 ----- .../EventBus/CommandBus/ICommandBus.cs | 16 --------- .../CommandBus/IIntegrationCommandHandler.cs | 16 --------- .../EventBus/CommandBus/IntegrationCommand.cs | 35 ------------------- 8 files changed, 121 deletions(-) delete mode 100644 src/BuildingBlocks/CommandBus/CommandBus/CommandBus.csproj delete mode 100644 src/BuildingBlocks/CommandBus/CommandBus/ICommandBus.cs delete mode 100644 src/BuildingBlocks/CommandBus/CommandBus/IntegrationCommand.cs delete mode 100644 src/BuildingBlocks/CommandBus/CommandBusRabbitMQ/CommandBusRabbitMQ.csproj delete mode 100644 src/BuildingBlocks/EventBus/CommandBus/CommandBus.csproj delete mode 100644 src/BuildingBlocks/EventBus/CommandBus/ICommandBus.cs delete mode 100644 src/BuildingBlocks/EventBus/CommandBus/IIntegrationCommandHandler.cs delete mode 100644 src/BuildingBlocks/EventBus/CommandBus/IntegrationCommand.cs diff --git a/src/BuildingBlocks/CommandBus/CommandBus/CommandBus.csproj b/src/BuildingBlocks/CommandBus/CommandBus/CommandBus.csproj deleted file mode 100644 index ae05359a17..0000000000 --- a/src/BuildingBlocks/CommandBus/CommandBus/CommandBus.csproj +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard1.4 - Microsoft.eShopOnContainers.BuildingBlocks.CommandBus - - - \ No newline at end of file diff --git a/src/BuildingBlocks/CommandBus/CommandBus/ICommandBus.cs b/src/BuildingBlocks/CommandBus/CommandBus/ICommandBus.cs deleted file mode 100644 index 2092e11b0f..0000000000 --- a/src/BuildingBlocks/CommandBus/CommandBus/ICommandBus.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.eShopOnContainers.BuildingBlocks.CommandBus -{ - public interface ICommandBus - { - Task SendAsync(T command) where T : IntegrationCommand; - - } -} diff --git a/src/BuildingBlocks/CommandBus/CommandBus/IntegrationCommand.cs b/src/BuildingBlocks/CommandBus/CommandBus/IntegrationCommand.cs deleted file mode 100644 index 36f1f0fdcc..0000000000 --- a/src/BuildingBlocks/CommandBus/CommandBus/IntegrationCommand.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.eShopOnContainers.BuildingBlocks.CommandBus -{ - public abstract class IntegrationCommand - { - public Guid Id { get; private set; } - public DateTime Sent { get; private set; } - - protected IntegrationCommand() - { - Id = Guid.NewGuid(); - Sent = DateTime.UtcNow; - } - } -} diff --git a/src/BuildingBlocks/CommandBus/CommandBusRabbitMQ/CommandBusRabbitMQ.csproj b/src/BuildingBlocks/CommandBus/CommandBusRabbitMQ/CommandBusRabbitMQ.csproj deleted file mode 100644 index 954020d107..0000000000 --- a/src/BuildingBlocks/CommandBus/CommandBusRabbitMQ/CommandBusRabbitMQ.csproj +++ /dev/null @@ -1,7 +0,0 @@ - - - - netstandard1.4 - - - \ No newline at end of file diff --git a/src/BuildingBlocks/EventBus/CommandBus/CommandBus.csproj b/src/BuildingBlocks/EventBus/CommandBus/CommandBus.csproj deleted file mode 100644 index 7c3327057b..0000000000 --- a/src/BuildingBlocks/EventBus/CommandBus/CommandBus.csproj +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard1.0 - Microsoft.eShopOnContainers.BuildingBlocks.CommandBus - - - \ No newline at end of file diff --git a/src/BuildingBlocks/EventBus/CommandBus/ICommandBus.cs b/src/BuildingBlocks/EventBus/CommandBus/ICommandBus.cs deleted file mode 100644 index 813d9406c1..0000000000 --- a/src/BuildingBlocks/EventBus/CommandBus/ICommandBus.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.eShopOnContainers.BuildingBlocks.CommandBus -{ - public interface ICommandBus - { - void Send(string name, T data); - void Handle(string name, IIntegrationCommandHandler handler); - void Handle(string name, IIntegrationCommandHandler handler); - void Handle(TI handler) - where TI : IIntegrationCommandHandler; - } -} diff --git a/src/BuildingBlocks/EventBus/CommandBus/IIntegrationCommandHandler.cs b/src/BuildingBlocks/EventBus/CommandBus/IIntegrationCommandHandler.cs deleted file mode 100644 index 07f0c1eea2..0000000000 --- a/src/BuildingBlocks/EventBus/CommandBus/IIntegrationCommandHandler.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.eShopOnContainers.BuildingBlocks.CommandBus -{ - public interface IIntegrationCommandHandler - { - void Handle(IntegrationCommand command); - } - - public interface IIntegrationCommandHandler : IIntegrationCommandHandler - { - void Handle(IntegrationCommand command); - } -} diff --git a/src/BuildingBlocks/EventBus/CommandBus/IntegrationCommand.cs b/src/BuildingBlocks/EventBus/CommandBus/IntegrationCommand.cs deleted file mode 100644 index 8df6e52799..0000000000 --- a/src/BuildingBlocks/EventBus/CommandBus/IntegrationCommand.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.eShopOnContainers.BuildingBlocks.CommandBus -{ - public abstract class IntegrationCommand - { - public Guid Id { get; } - public DateTime Sent { get; } - - public abstract object GetDataAsObject(); - - protected IntegrationCommand() - { - Id = Guid.NewGuid(); - Sent = DateTime.UtcNow; - } - - } - - public class IntegrationCommand : IntegrationCommand - { - public T Data { get; } - public string Name { get; } - public override object GetDataAsObject() => Data; - - public IntegrationCommand(string name, T data) : base() - { - Data = data; - Name = name; - } - } - -} From a0cc03d35ee44ef2d84326a98fc63b33f650a1e2 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Thu, 14 Nov 2019 18:34:30 +0000 Subject: [PATCH 123/149] Fix webstatus configuration for docker-compose --- src/Web/WebStatus/appsettings.json | 74 ------------------------------ src/docker-compose.override.yml | 54 +++++++++++----------- 2 files changed, 27 insertions(+), 101 deletions(-) diff --git a/src/Web/WebStatus/appsettings.json b/src/Web/WebStatus/appsettings.json index d826db8d7e..a7b130e1ac 100644 --- a/src/Web/WebStatus/appsettings.json +++ b/src/Web/WebStatus/appsettings.json @@ -1,78 +1,4 @@ { - "HealthChecksUI": { - "HealthChecks": [ - { - "Name": "Ordering HTTP Check", - "Uri": "http://localhost:5102/hc" - }, - { - "Name": "Ordering HTTP Background Check", - "Uri": "http://localhost:5111/hc" - }, - { - "Name": "Basket HTTP Check", - "Uri": "http://localhost:5103/hc" - }, - { - "Name": "Catalog HTTP Check", - "Uri": "http://localhost:5101/hc" - }, - { - "Name": "Identity HTTP Check", - "Uri": "http://localhost:5105/hc" - }, - { - "Name": "Marketing HTTP Check", - "Uri": "http://localhost:5110/hc" - }, - { - "Name": "Locations HTTP Check", - "Uri": "http://localhost:5109/hc" - }, - { - "Name": "Payments HTTP Check", - "Uri": "http://localhost:5108/hc" - }, - { - "Name": "WebMVC HTTP Check (settings-prod)", - "Uri": "http://localhost:5100/hc" - }, - { - "Name": "WebSPA HTTP Check", - "Uri": "http://localhost:5104/hc" - }, - { - "Name": "SignalR HTTP Check", - "Uri": "http://localhost:5112/hc" - }, - { - "Name": "Mobile Shopping API GW HTTP Check", - "Uri": "http://localhost:5200/hc" - }, - { - "Name": "Mobile Marketing API GW HTTP Check", - "Uri": "http://localhost:5201/hc" - }, - { - "Name": "Web Shopping API GW HTTP Check", - "Uri": "http://localhost:5202/hc" - }, - { - "Name": "Web Marketing API GW HTTP Check", - "Uri": "http://localhost:5203/hc" - }, - { - "Name": "Mobile Shopping Aggregator HTTP Check", - "Uri": "http://localhost:5120/hc" - }, - { - "Name": "Web Shopping Aggregator HTTP Check", - "Uri": "http://localhost:5121/hc" - } - ], - "EvaluationTimeOnSeconds": 10, - "MinimumSecondsBetweenFailureNotifications": 60 - }, "Serilog": { "SeqServerUrl": null, "LogstashgUrl": null, diff --git a/src/docker-compose.override.yml b/src/docker-compose.override.yml index 564ff4eb9d..95e0a74c26 100644 --- a/src/docker-compose.override.yml +++ b/src/docker-compose.override.yml @@ -305,34 +305,34 @@ services: webstatus: environment: - - ASPNETCORE_ENVIRONMENT=Production + - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - - HealthChecks-UI__HealthChecks__0__Name=WebMVC HTTP Check - - HealthChecks-UI__HealthChecks__0__Uri=http://webmvc/hc - - HealthChecks-UI__HealthChecks__1__Name=WebSPA HTTP Check - - HealthChecks-UI__HealthChecks__1__Uri=http://webspa/hc - - HealthChecks-UI__HealthChecks__2__Name=Web Shopping Aggregator GW HTTP Check - - HealthChecks-UI__HealthChecks__2__Uri=http://webshoppingagg/hc - - HealthChecks-UI__HealthChecks__3__Name=Mobile Shopping Aggregator HTTP Check - - HealthChecks-UI__HealthChecks__3__Uri=http://mobileshoppingagg/hc - - HealthChecks-UI__HealthChecks__4__Name=Ordering HTTP Check - - HealthChecks-UI__HealthChecks__4__Uri=http://ordering-api/hc - - HealthChecks-UI__HealthChecks__5__Name=Basket HTTP Check - - HealthChecks-UI__HealthChecks__5__Uri=http://basket-api/hc - - HealthChecks-UI__HealthChecks__6__Name=Catalog HTTP Check - - HealthChecks-UI__HealthChecks__6__Uri=http://catalog-api/hc - - HealthChecks-UI__HealthChecks__7__Name=Identity HTTP Check - - HealthChecks-UI__HealthChecks__7__Uri=http://identity-api/hc - - HealthChecks-UI__HealthChecks__8__Name=Marketing HTTP Check - - HealthChecks-UI__HealthChecks__8__Uri=http://marketing-api/hc - - HealthChecks-UI__HealthChecks__9__Name=Locations HTTP Check - - HealthChecks-UI__HealthChecks__9__Uri=http://locations-api/hc - - HealthChecks-UI__HealthChecks__10__Name=Payments HTTP Check - - HealthChecks-UI__HealthChecks__10__Uri=http://payment-api/hc - - HealthChecks-UI__HealthChecks__11__Name=Ordering SignalRHub HTTP Check - - HealthChecks-UI__HealthChecks__11__Uri=http://ordering-signalrhub/hc - - HealthChecks-UI__HealthChecks__12__Name=Ordering HTTP Background Check - - HealthChecks-UI__HealthChecks__12__Uri=http://ordering-backgroundtasks/hc + - HealthChecksUI__HealthChecks__0__Name=WebMVC HTTP Check + - HealthChecksUI__HealthChecks__0__Uri=http://webmvc/hc + - HealthChecksUI__HealthChecks__1__Name=WebSPA HTTP Check + - HealthChecksUI__HealthChecks__1__Uri=http://webspa/hc + - HealthChecksUI__HealthChecks__2__Name=Web Shopping Aggregator GW HTTP Check + - HealthChecksUI__HealthChecks__2__Uri=http://webshoppingagg/hc + - HealthChecksUI__HealthChecks__3__Name=Mobile Shopping Aggregator HTTP Check + - HealthChecksUI__HealthChecks__3__Uri=http://mobileshoppingagg/hc + - HealthChecksUI__HealthChecks__4__Name=Ordering HTTP Check + - HealthChecksUI__HealthChecks__4__Uri=http://ordering-api/hc + - HealthChecksUI__HealthChecks__5__Name=Basket HTTP Check + - HealthChecksUI__HealthChecks__5__Uri=http://basket-api/hc + - HealthChecksUI__HealthChecks__6__Name=Catalog HTTP Check + - HealthChecksUI__HealthChecks__6__Uri=http://catalog-api/hc + - HealthChecksUI__HealthChecks__7__Name=Identity HTTP Check + - HealthChecksUI__HealthChecks__7__Uri=http://identity-api/hc + - HealthChecksUI__HealthChecks__8__Name=Marketing HTTP Check + - HealthChecksUI__HealthChecks__8__Uri=http://marketing-api/hc + - HealthChecksUI__HealthChecks__9__Name=Locations HTTP Check + - HealthChecksUI__HealthChecks__9__Uri=http://locations-api/hc + - HealthChecksUI__HealthChecks__10__Name=Payments HTTP Check + - HealthChecksUI__HealthChecks__10__Uri=http://payment-api/hc + - HealthChecksUI__HealthChecks__11__Name=Ordering SignalRHub HTTP Check + - HealthChecksUI__HealthChecks__11__Uri=http://ordering-signalrhub/hc + - HealthChecksUI__HealthChecks__12__Name=Ordering HTTP Background Check + - HealthChecksUI__HealthChecks__12__Uri=http://ordering-backgroundtasks/hc - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} ports: From 3ece346576c963c67e166196748be07d8594b24f Mon Sep 17 00:00:00 2001 From: eiximenis Date: Fri, 15 Nov 2019 10:56:17 +0100 Subject: [PATCH 124/149] Update README.md --- README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/README.md b/README.md index e211e6ba3a..ac253887c3 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,30 @@ Dev branch contains the latest "stable" code, and their images are tagged with ` | ------------- | ------------- | ------------- | [![Web Status](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webstatus?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=211&branchName=dev) | [![Webhooks API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webhooks?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=207&branchName=dev) | [![Webhooks demo client](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webhooks-client?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=208&branchName=dev) | +## Getting Started + +eShopOnContainers is provided in "two flavours": + +* Basic scenario: Can be run locally using docker compose, and also deployed to a local Kubernetes cluster +* Production scenario: Can only be deployed on a Kubernetes cluster (local or in the cloud like AKS), and enable production features like the use of a Service Mesh. + +### Basic scenario + +You can run eShop locally: + +* [Using Visual Studio](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Windows-setup) +* Using CLI or Visual Studio Code +* Using docker compose +* Using local Kubernetes + +### Advanced scenario + +The Advanced scenario can be run only in a Kubernetes cluster. Currently this scenario is the same as basic scenario with the following differences: + +* Use of a Service Mesh for Resiliency + +In the future more features will be implemented in the advanced scenario. + ## IMPORTANT NOTES! **You can use either the latest version of Visual Studio or simply Docker CLI and .NET CLI for Windows, Mac and Linux**. From 556c07b105f1bd9b98865b329b17ff7230a350bb Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Fri, 15 Nov 2019 19:56:52 +0000 Subject: [PATCH 125/149] MVC working with SignalR without Envoy --- .../Ordering/Ordering.SignalrHub/Startup.cs | 2 +- src/docker-compose.override.yml | 104 +++++++++--------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs index 472644781b..cec48c4d2a 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs @@ -151,7 +151,7 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) { Predicate = r => r.Name.Contains("self") }); - endpoints.MapHub("/notificationhub", options => options.Transports = Microsoft.AspNetCore.Http.Connections.HttpTransports.All); + endpoints.MapHub("/hub/notificationhub", options => options.Transports = Microsoft.AspNetCore.Http.Connections.HttpTransports.All); }); ConfigureEventBus(app); diff --git a/src/docker-compose.override.yml b/src/docker-compose.override.yml index 95e0a74c26..72b3e25f07 100644 --- a/src/docker-compose.override.yml +++ b/src/docker-compose.override.yml @@ -1,7 +1,7 @@ version: '3.4' -# The default docker-compose.override file can use the "localhost" as the external name for testing web apps within the same dev machine. -# The ESHOP_EXTERNAL_DNS_NAME_OR_IP environment variable is taken, by default, from the ".env" file defined like: +# The default docker-compose.override file can use the "localhost" as the external name for testing web apps within the same dev machine. +# The ESHOP_EXTERNAL_DNS_NAME_OR_IP environment variable is taken, by default, from the ".env" file defined like: # ESHOP_EXTERNAL_DNS_NAME_OR_IP=localhost # but values present in the environment vars at runtime will always override those defined inside the .env file # An external IP or DNS name has to be used (instead localhost and the 10.0.75.1 IP) when testing the Web apps and the Xamarin apps from remote machines/devices using the same WiFi, for instance. @@ -18,34 +18,34 @@ services: - SA_PASSWORD=Pass@word - ACCEPT_EULA=Y ports: - - "5433:1433" + - "5433:1433" volumes: - eshop-sqldata:/var/opt/mssql nosqldata: ports: - - "27017:27017" + - "27017:27017" volumes: - eshop-nosqldata:/data/db basketdata: ports: - - "6379:6379" + - "6379:6379" volumes: - eshop-basketdata:/data rabbitmq: ports: - - "15672:15672" - - "5672:5672" + - "15672:15672" + - "5672:5672" identity-api: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - SpaClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5104 - - XamarinCallback=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105/xamarincallback - - ConnectionString=${ESHOP_AZURE_IDENTITY_DB:-Server=sqldata;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word} - - MvcClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5100 + - XamarinCallback=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105/xamarincallback + - ConnectionString=${ESHOP_AZURE_IDENTITY_DB:-Server=sqldata;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word} + - MvcClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5100 - LocationApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5109 - MarketingApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5110 - BasketApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5103 @@ -54,22 +54,22 @@ services: - WebShoppingAggClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5121 - WebhooksApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5113 - WebhooksWebClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5114 - - UseCustomizationData=True + - UseCustomizationData=True - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} ports: - - "5105:80" + - "5105:80" basket-api: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - ConnectionString=${ESHOP_AZURE_REDIS_BASKET_DB:-basketdata} - - identityUrl=http://identity-api + - identityUrl=http://identity-api - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - AzureServiceBusEnabled=False - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} @@ -78,17 +78,17 @@ services: - GRPC_PORT=81 - PORT=80 ports: - - "5103:80" - - "9103:81" + - "5103:80" + - "9103:81" catalog-api: environment: - ASPNETCORE_ENVIRONMENT=Development - ConnectionString=${ESHOP_AZURE_CATALOG_DB:-Server=sqldata;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word} - - PicBaseUrl=${ESHOP_AZURE_STORAGE_CATALOG_URL:-http://localhost:5202/c/api/v1/catalog/items/[0]/pic/} #Local: You need to open your local dev-machine firewall at range 5100-5110. + - PicBaseUrl=${ESHOP_AZURE_STORAGE_CATALOG_URL:-http://localhost:5202/c/api/v1/catalog/items/[0]/pic/} #Local: You need to open your local dev-machine firewall at range 5100-5110. - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - AzureStorageAccountName=${ESHOP_AZURE_STORAGE_CATALOG_NAME} - AzureStorageAccountKey=${ESHOP_AZURE_STORAGE_CATALOG_KEY} - UseCustomizationData=True @@ -108,11 +108,11 @@ services: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sqldata;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} - - identityUrl=http://identity-api + - identityUrl=http://identity-api - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - UseCustomizationData=True - AzureServiceBusEnabled=False - CheckUpdateTime=30000 @@ -125,9 +125,9 @@ services: - GRPC_PORT=81 - PORT=80 ports: - - "5102:80" - - "9102:81" - + - "5102:80" + - "9102:81" + ordering-backgroundtasks: environment: - ASPNETCORE_ENVIRONMENT=Development @@ -135,7 +135,7 @@ services: - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sqldata;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - UseCustomizationData=True - AzureServiceBusEnabled=False - CheckUpdateTime=30000 @@ -156,8 +156,8 @@ services: - MongoDatabase=MarketingDb - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - identityUrl=http://identity-api + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - identityUrl=http://identity-api - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - CampaignDetailFunctionUri=${ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI} - PicBaseUrl=${ESHOP_AZURE_STORAGE_MARKETING_URL:-http://localhost:5110/api/v1/campaigns/[0]/pic/} @@ -170,7 +170,7 @@ services: - UseLoadTest=${USE_LOADTEST:-False} - PATH_BASE=/marketing-api ports: - - "5110:80" + - "5110:80" payment-api: environment: @@ -178,14 +178,14 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:80 - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - AzureServiceBusEnabled=False - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} - Serilog__MinimumLevel__Override__payment-api.IntegrationEvents.EventHandling=Verbose - Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose ports: - - "5108:80" + - "5108:80" locations-api: environment: @@ -197,14 +197,14 @@ services: - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - AzureServiceBusEnabled=False - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} - UseLoadTest=${USE_LOADTEST:-False} - PATH_BASE=/locations-api ports: - - "5109:80" + - "5109:80" webhooks-api: environment: @@ -213,36 +213,36 @@ services: - ConnectionString=${ESHOP_AZURE_WEBHOOKS_DB:-Server=sqldata;Database=Microsoft.eShopOnContainers.Services.WebhooksDb;User Id=sa;Password=Pass@word} - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - IdentityUrl=http://identity-api + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - IdentityUrl=http://identity-api - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 ports: - - "5113:80" + - "5113:80" mobileshoppingapigw: volumes: - - ./ApiGateways/Envoy/config/mobilemarketing:/etc/envoy + - ./ApiGateways/Envoy/config/mobilemarketing:/etc/envoy ports: - "5200:80" - "15200:8001" mobilemarketingapigw: volumes: - - ./ApiGateways/Envoy/config/mobileshopping:/etc/envoy + - ./ApiGateways/Envoy/config/mobileshopping:/etc/envoy ports: - "5201:80" - - "15201:8001" + - "15201:8001" webshoppingapigw: volumes: - - ./ApiGateways/Envoy/config/webshopping:/etc/envoy + - ./ApiGateways/Envoy/config/webshopping:/etc/envoy ports: - "5202:80" - "15202:8001" webmarketingapigw: volumes: - - ./ApiGateways/Envoy/config/webmarketing:/etc/envoy + - ./ApiGateways/Envoy/config/webmarketing:/etc/envoy ports: - "5203:80" - "15203:8001" @@ -259,7 +259,7 @@ services: - urls__grpcOrdering=http://ordering-api:81 - CatalogUrlHC=http://catalog-api/hc - OrderingUrlHC=http://ordering-api/hc - - IdentityUrlHC=http://identity-api/hc + - IdentityUrlHC=http://identity-api/hc - BasketUrlHC=http://basket-api/hc - MarketingUrlHC=http://marketing-api/hc - PaymentUrlHC=http://payment-api/hc @@ -280,14 +280,14 @@ services: - urls__grpcOrdering=http://ordering-api:81 - CatalogUrlHC=http://catalog-api/hc - OrderingUrlHC=http://ordering-api/hc - - IdentityUrlHC=http://identity-api/hc + - IdentityUrlHC=http://identity-api/hc - BasketUrlHC=http://basket-api/hc - MarketingUrlHC=http://marketing-api/hc - PaymentUrlHC=http://payment-api/hc - LocationUrlHC=http://locations-api/hc - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 ports: - - "5121:80" + - "5121:80" ordering-signalrhub: environment: @@ -295,11 +295,11 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:80 - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - AzureServiceBusEnabled=False - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} - - identityUrl=http://identity-api + - identityUrl=http://identity-api ports: - "5112:80" @@ -330,9 +330,9 @@ services: - HealthChecksUI__HealthChecks__10__Name=Payments HTTP Check - HealthChecksUI__HealthChecks__10__Uri=http://payment-api/hc - HealthChecksUI__HealthChecks__11__Name=Ordering SignalRHub HTTP Check - - HealthChecksUI__HealthChecks__11__Uri=http://ordering-signalrhub/hc + - HealthChecksUI__HealthChecks__11__Uri=http://ordering-signalrhub/hc - HealthChecksUI__HealthChecks__12__Name=Ordering HTTP Background Check - - HealthChecksUI__HealthChecks__12__Uri=http://ordering-backgroundtasks/hc + - HealthChecksUI__HealthChecks__12__Uri=http://ordering-backgroundtasks/hc - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} ports: @@ -343,13 +343,13 @@ services: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - IdentityUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - - PurchaseUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5202 - - MarketingUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5203 + - PurchaseUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5202 + - MarketingUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5203 - IdentityUrlHC=http://identity-api/hc - UseCustomizationData=True - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} - - SignalrHubUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5202 + - SignalrHubUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5112 ports: - "5104:80" @@ -358,9 +358,9 @@ services: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - PurchaseUrl=http://webshoppingapigw - - IdentityUrl=http://10.0.75.1:5105 - - MarketingUrl=http://webmarketingapigw - - SignalrHubUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5202 + - IdentityUrl=http://10.0.75.1:5105 + - MarketingUrl=http://webmarketingapigw + - SignalrHubUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5112 - IdentityUrlHC=http://identity-api/hc - UseCustomizationData=True - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} From 30aeec8b7292c3d29213dd09f87f0f001f5ab08a Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Sat, 16 Nov 2019 15:41:25 +0000 Subject: [PATCH 126/149] Remove SignalR transport parameter on clients --- src/Web/WebMVC/Views/Shared/_Layout.cshtml | 1 - src/Web/WebSPA/Client/modules/shared/services/signalr.service.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/src/Web/WebMVC/Views/Shared/_Layout.cshtml b/src/Web/WebMVC/Views/Shared/_Layout.cshtml index c5447c9804..ee993cfd4a 100644 --- a/src/Web/WebMVC/Views/Shared/_Layout.cshtml +++ b/src/Web/WebMVC/Views/Shared/_Layout.cshtml @@ -102,7 +102,6 @@ function stablishConnection(cb) { let connection = new signalR.HubConnectionBuilder() .withUrl('@settings.Value.SignalrHubUrl/hub/notificationhub', { - transport: signalR.HttpTransportType.LongPolling, accessTokenFactory: () => { return "Authorization", getToken(); } diff --git a/src/Web/WebSPA/Client/modules/shared/services/signalr.service.ts b/src/Web/WebSPA/Client/modules/shared/services/signalr.service.ts index a6ad760890..fa1b7e386c 100644 --- a/src/Web/WebSPA/Client/modules/shared/services/signalr.service.ts +++ b/src/Web/WebSPA/Client/modules/shared/services/signalr.service.ts @@ -43,7 +43,6 @@ export class SignalrService { private register() { this._hubConnection = new HubConnectionBuilder() .withUrl(this.SignalrHubUrl + '/hub/notificationhub', { - transport: HttpTransportType.LongPolling, accessTokenFactory: () => this.securityService.GetToken() }) .configureLogging(LogLevel.Information) From 09539f7dc294b212332a8de3a5e95e97690e06f4 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Sat, 16 Nov 2019 15:43:06 +0000 Subject: [PATCH 127/149] Remove unsupported ServiceFabric folder --- .../ApplicationManifest.xml | 34 --- .../RabbitMQPkg/Config/Settings.xml | 9 - .../RabbitMQPkg/ServiceManifest.xml | 41 --- .../Bus/ApplicationParameters/Cloud.xml | 6 - .../Bus/ApplicationParameters/Local.1Node.xml | 5 - .../Bus/ApplicationParameters/Local.5Node.xml | 5 - .../eShopOnServiceFabricBus/Bus/Bus.sfproj | 46 ---- .../Bus/PublishProfiles/Cloud.xml | 25 -- .../Bus/PublishProfiles/Local.1Node.xml | 11 - .../Bus/PublishProfiles/Local.5Node.xml | 11 - .../Bus/Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../Bus/packages.config | 4 - .../ApplicationManifest.xml | 34 --- .../MongoDBPkg/Config/Settings.xml | 9 - .../MongoDBPkg/ServiceManifest.xml | 41 --- .../NoSQL/ApplicationParameters/Cloud.xml | 6 - .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../NoSQL/NoSQL.sfproj | 46 ---- .../NoSQL/PublishProfiles/Cloud.xml | 25 -- .../NoSQL/PublishProfiles/Local.1Node.xml | 11 - .../NoSQL/PublishProfiles/Local.5Node.xml | 11 - .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../NoSQL/packages.config | 4 - .../ApplicationManifest.xml | 34 --- .../BasketDataPkg/Config/Settings.xml | 9 - .../BasketDataPkg/ServiceManifest.xml | 41 --- .../Redis/ApplicationParameters/Cloud.xml | 6 - .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../Redis/PublishProfiles/Cloud.xml | 25 -- .../Redis/PublishProfiles/Local.1Node.xml | 11 - .../Redis/PublishProfiles/Local.5Node.xml | 11 - .../Redis/Redis.sfproj | 46 ---- .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../Redis/packages.config | 4 - .../ApplicationManifest.xml | 34 --- .../SqlServerPkg/Config/Settings.xml | 9 - .../SqlServerPkg/ServiceManifest.xml | 41 --- .../Sql/ApplicationParameters/Cloud.xml | 6 - .../Sql/ApplicationParameters/Local.1Node.xml | 5 - .../Sql/ApplicationParameters/Local.5Node.xml | 5 - .../Sql/PublishProfiles/Cloud.xml | 25 -- .../Sql/PublishProfiles/Local.1Node.xml | 11 - .../Sql/PublishProfiles/Local.5Node.xml | 11 - .../Sql/Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../eShopOnServiceFabricSql/Sql/Sql.sfproj | 46 ---- .../Sql/packages.config | 4 - .../ApplicationManifest.xml | 152 ----------- .../BasketApiPkg/Config/Settings.xml | 9 - .../BasketApiPkg/ServiceManifest.xml | 49 ---- .../CatalogApiPkg/Config/Settings.xml | 9 - .../CatalogApiPkg/ServiceManifest.xml | 50 ---- .../LocationsApiPkg/Config/Settings.xml | 9 - .../LocationsApiPkg/ServiceManifest.xml | 49 ---- .../MarketingApiPkg/Config/Settings.xml | 9 - .../MarketingApiPkg/ServiceManifest.xml | 55 ---- .../OrderingApiPkg/Config/Settings.xml | 9 - .../OrderingApiPkg/ServiceManifest.xml | 49 ---- .../OrderingBackgroundPkg/Config/Settings.xml | 9 - .../OrderingBackgroundPkg/ServiceManifest.xml | 48 ---- .../PaymentApiPkg/Config/Settings.xml | 9 - .../PaymentApiPkg/ServiceManifest.xml | 44 --- .../ApplicationParameters/Cloud.xml | 16 -- .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../PublishProfiles/Cloud.xml | 25 -- .../PublishProfiles/Local.1Node.xml | 11 - .../PublishProfiles/Local.5Node.xml | 11 - .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../eShopOnServiceFabric.sfproj | 57 ---- .../eShopOnServiceFabric/packages.config | 4 - .../ApplicationManifest.xml | 52 ---- .../IdentityApiPkg/Config/Settings.xml | 9 - .../IdentityApiPkg/ServiceManifest.xml | 53 ---- .../ApplicationParameters/Cloud.xml | 14 - .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../PublishProfiles/Cloud.xml | 25 -- .../PublishProfiles/Local.1Node.xml | 11 - .../PublishProfiles/Local.5Node.xml | 11 - .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../eShopOnServiceFabricIdSrv.sfproj | 46 ---- .../eShopOnServiceFabricIdSrv/packages.config | 4 - .../ApplicationManifest.xml | 40 --- .../WebMVCPkg/Config/Settings.xml | 9 - .../WebMVCPkg/ServiceManifest.xml | 55 ---- .../ApplicationParameters/Cloud.xml | 8 - .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../PublishProfiles/Cloud.xml | 25 -- .../PublishProfiles/Local.1Node.xml | 11 - .../PublishProfiles/Local.5Node.xml | 11 - .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../eShopOnServiceFabricWebMVC.sfproj | 46 ---- .../packages.config | 4 - .../ApplicationManifest.xml | 48 ---- .../WebSPAPkg/Config/Settings.xml | 9 - .../WebSPAPkg/ServiceManifest.xml | 53 ---- .../ApplicationParameters/Cloud.xml | 12 - .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../PublishProfiles/Cloud.xml | 25 -- .../PublishProfiles/Local.1Node.xml | 11 - .../PublishProfiles/Local.5Node.xml | 11 - .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../eShopOnServiceFabricWebSPA.sfproj | 46 ---- .../packages.config | 4 - .../ApplicationManifest.xml | 37 --- .../WebStatusPkg/Config/Settings.xml | 9 - .../WebStatusPkg/ServiceManifest.xml | 51 ---- .../ApplicationParameters/Cloud.xml | 7 - .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../PublishProfiles/Cloud.xml | 25 -- .../PublishProfiles/Local.1Node.xml | 11 - .../PublishProfiles/Local.5Node.xml | 11 - .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../eShopOnServiceFabricWebStatus.sfproj | 46 ---- .../packages.config | 4 - .../ApplicationManifest.xml | 34 --- .../RabbitMQPkg/Config/Settings.xml | 9 - .../RabbitMQPkg/ServiceManifest.xml | 41 --- .../Bus/ApplicationParameters/Cloud.xml | 6 - .../Bus/ApplicationParameters/Local.1Node.xml | 5 - .../Bus/ApplicationParameters/Local.5Node.xml | 5 - .../eShopOnServiceFabricBus/Bus/Bus.sfproj | 46 ---- .../Bus/PublishProfiles/Cloud.xml | 25 -- .../Bus/PublishProfiles/Local.1Node.xml | 11 - .../Bus/PublishProfiles/Local.5Node.xml | 11 - .../Bus/Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../Bus/packages.config | 4 - .../ApplicationManifest.xml | 34 --- .../MongoDBPkg/Config/Settings.xml | 9 - .../MongoDBPkg/ServiceManifest.xml | 41 --- .../NoSQL/ApplicationParameters/Cloud.xml | 6 - .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../NoSQL/NoSQL.sfproj | 46 ---- .../NoSQL/PublishProfiles/Cloud.xml | 25 -- .../NoSQL/PublishProfiles/Local.1Node.xml | 11 - .../NoSQL/PublishProfiles/Local.5Node.xml | 11 - .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../NoSQL/packages.config | 4 - .../ApplicationManifest.xml | 34 --- .../BasketDataPkg/Config/Settings.xml | 9 - .../BasketDataPkg/ServiceManifest.xml | 41 --- .../Redis/ApplicationParameters/Cloud.xml | 6 - .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../Redis/PublishProfiles/Cloud.xml | 25 -- .../Redis/PublishProfiles/Local.1Node.xml | 11 - .../Redis/PublishProfiles/Local.5Node.xml | 11 - .../Redis/Redis.sfproj | 46 ---- .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../Redis/packages.config | 4 - .../ApplicationManifest.xml | 34 --- .../SqlServerPkg/Config/Settings.xml | 9 - .../SqlServerPkg/ServiceManifest.xml | 40 --- .../Sql/ApplicationParameters/Cloud.xml | 6 - .../Sql/ApplicationParameters/Local.1Node.xml | 5 - .../Sql/ApplicationParameters/Local.5Node.xml | 5 - .../Sql/PublishProfiles/Cloud.xml | 25 -- .../Sql/PublishProfiles/Local.1Node.xml | 11 - .../Sql/PublishProfiles/Local.5Node.xml | 11 - .../Sql/Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../eShopOnServiceFabricSql/Sql/Sql.sfproj | 46 ---- .../Sql/packages.config | 4 - .../ApplicationManifest.xml | 152 ----------- .../BasketApiPkg/Config/Settings.xml | 9 - .../BasketApiPkg/ServiceManifest.xml | 50 ---- .../CatalogApiPkg/Config/Settings.xml | 9 - .../CatalogApiPkg/ServiceManifest.xml | 52 ---- .../LocationsApiPkg/Config/Settings.xml | 9 - .../LocationsApiPkg/ServiceManifest.xml | 51 ---- .../MarketingApiPkg/Config/Settings.xml | 9 - .../MarketingApiPkg/ServiceManifest.xml | 57 ---- .../OrderingApiPkg/Config/Settings.xml | 9 - .../OrderingApiPkg/ServiceManifest.xml | 51 ---- .../OrderingBackgroundPkg/Config/Settings.xml | 9 - .../OrderingBackgroundPkg/ServiceManifest.xml | 50 ---- .../PaymentApiPkg/Config/Settings.xml | 9 - .../PaymentApiPkg/ServiceManifest.xml | 46 ---- .../ApplicationParameters/Cloud.xml | 16 -- .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../PublishProfiles/Cloud.xml | 25 -- .../PublishProfiles/Local.1Node.xml | 11 - .../PublishProfiles/Local.5Node.xml | 11 - .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../eShopOnServiceFabric.sfproj | 57 ---- .../eShopOnServiceFabric/packages.config | 4 - .../ApplicationManifest.xml | 52 ---- .../IdentityApiPkg/Config/Settings.xml | 9 - .../IdentityApiPkg/ServiceManifest.xml | 53 ---- .../ApplicationParameters/Cloud.xml | 14 - .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../PublishProfiles/Cloud.xml | 25 -- .../PublishProfiles/Local.1Node.xml | 11 - .../PublishProfiles/Local.5Node.xml | 11 - .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../eShopOnServiceFabricIdSrv.sfproj | 46 ---- .../eShopOnServiceFabricIdSrv/packages.config | 4 - .../ApplicationManifest.xml | 40 --- .../WebMVCPkg/Config/Settings.xml | 9 - .../WebMVCPkg/ServiceManifest.xml | 55 ---- .../ApplicationParameters/Cloud.xml | 8 - .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../PublishProfiles/Cloud.xml | 25 -- .../PublishProfiles/Local.1Node.xml | 11 - .../PublishProfiles/Local.5Node.xml | 11 - .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../eShopOnServiceFabricWebMVC.sfproj | 46 ---- .../packages.config | 4 - .../ApplicationManifest.xml | 48 ---- .../WebSPAPkg/Config/Settings.xml | 9 - .../WebSPAPkg/ServiceManifest.xml | 53 ---- .../ApplicationParameters/Cloud.xml | 12 - .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../PublishProfiles/Cloud.xml | 25 -- .../PublishProfiles/Local.1Node.xml | 11 - .../PublishProfiles/Local.5Node.xml | 11 - .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../eShopOnServiceFabricWebSPA.sfproj | 46 ---- .../packages.config | 4 - .../ApplicationManifest.xml | 37 --- .../WebStatusPkg/Config/Settings.xml | 9 - .../WebStatusPkg/ServiceManifest.xml | 51 ---- .../ApplicationParameters/Cloud.xml | 7 - .../ApplicationParameters/Local.1Node.xml | 5 - .../ApplicationParameters/Local.5Node.xml | 5 - .../PublishProfiles/Cloud.xml | 25 -- .../PublishProfiles/Local.1Node.xml | 11 - .../PublishProfiles/Local.5Node.xml | 11 - .../Scripts/Deploy-FabricApplication.ps1 | 258 ------------------ .../eShopOnServiceFabricWebStatus.sfproj | 46 ---- .../packages.config | 4 - ServiceFabric/Windows/sfwin.sln | 13 - 241 files changed, 9419 deletions(-) delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/Bus.sfproj delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/packages.config delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/NoSQL.sfproj delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/packages.config delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/Redis.sfproj delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/packages.config delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/Sql.sfproj delete mode 100644 ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/packages.config delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/eShopOnServiceFabric.sfproj delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabric/packages.config delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv.sfproj delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/packages.config delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC.sfproj delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/packages.config delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA.sfproj delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/packages.config delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus.sfproj delete mode 100644 ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/packages.config delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/Bus.sfproj delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/packages.config delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/NoSQL.sfproj delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/packages.config delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/Redis.sfproj delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/packages.config delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/Sql.sfproj delete mode 100644 ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/packages.config delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/eShopOnServiceFabric.sfproj delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabric/packages.config delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv.sfproj delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/packages.config delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC.sfproj delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/packages.config delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA.sfproj delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/packages.config delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/ApplicationManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/Config/Settings.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/ServiceManifest.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Cloud.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Cloud.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.1Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.5Node.xml delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/Scripts/Deploy-FabricApplication.ps1 delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus.sfproj delete mode 100644 ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/packages.config delete mode 100644 ServiceFabric/Windows/sfwin.sln diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index bb1cf27438..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/Config/Settings.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/ServiceManifest.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/ServiceManifest.xml deleted file mode 100644 index 8c2f166918..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/ServiceManifest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - rabbitmq:3-management - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Cloud.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Cloud.xml deleted file mode 100644 index 5a4c2828d2..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index 1699b8eaa4..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index 1699b8eaa4..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/Bus.sfproj b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/Bus.sfproj deleted file mode 100644 index 0a56c800eb..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/Bus.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - f29e27c9-0d5e-4a57-adbf-dd651649d2a1 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Cloud.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.1Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.5Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/packages.config b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricBus/Bus/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index fe031fe954..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/Config/Settings.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/ServiceManifest.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/ServiceManifest.xml deleted file mode 100644 index e7ecf592f4..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/ServiceManifest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - mongo:latest - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Cloud.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Cloud.xml deleted file mode 100644 index 8b48c39d17..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index 22363f273f..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index 22363f273f..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/NoSQL.sfproj b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/NoSQL.sfproj deleted file mode 100644 index f07ff03a9a..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/NoSQL.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - eb070036-ec60-49a6-88e1-562a2043c3d7 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Cloud.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.1Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.5Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/packages.config b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index 11bf47a6a3..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/Config/Settings.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/ServiceManifest.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/ServiceManifest.xml deleted file mode 100644 index cfcc10ecaf..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/ServiceManifest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - redis:latest - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Cloud.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Cloud.xml deleted file mode 100644 index 951ce24db5..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index e2f3876c7e..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index e2f3876c7e..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Cloud.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.1Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.5Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/Redis.sfproj b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/Redis.sfproj deleted file mode 100644 index 5b28bfdba8..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/Redis.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 17acd9ea-8f16-4091-aa29-c67002971eee - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/packages.config b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricRedis/Redis/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index 27fa4bfe2f..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/Config/Settings.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/ServiceManifest.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/ServiceManifest.xml deleted file mode 100644 index 97ff3ded27..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/ServiceManifest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - microsoft/mssql-server-linux:2017-latest - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Cloud.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Cloud.xml deleted file mode 100644 index 3ad12232a3..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index 9fc10b0bc0..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index 9fc10b0bc0..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Cloud.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.1Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.5Node.xml b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/Sql.sfproj b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/Sql.sfproj deleted file mode 100644 index 48447811ed..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/Sql.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 65a83188-79c1-47ad-931d-8e8a87247408 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/packages.config b/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Linux/Infrastructure/eShopOnServiceFabricSql/Sql/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index 43aa956604..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/Config/Settings.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/ServiceManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/ServiceManifest.xml deleted file mode 100644 index 75aecd407b..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - eshop/basket.api:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/Config/Settings.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/ServiceManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/ServiceManifest.xml deleted file mode 100644 index bd30b44943..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - eshop/catalog.api:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/Config/Settings.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/ServiceManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/ServiceManifest.xml deleted file mode 100644 index 5c19939a49..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - eshop/locations.api:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/Config/Settings.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/ServiceManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/ServiceManifest.xml deleted file mode 100644 index defca436c9..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - eshop/marketing.api:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/Config/Settings.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/ServiceManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/ServiceManifest.xml deleted file mode 100644 index 16c67d3a88..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - eshop/ordering.api:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/Config/Settings.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/ServiceManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/ServiceManifest.xml deleted file mode 100644 index 248eb72d3a..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/ServiceManifest.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - eshop/ordering.backgroundtasks - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/Config/Settings.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/ServiceManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/ServiceManifest.xml deleted file mode 100644 index 88deeeade8..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - eshop/payment.api:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationParameters/Cloud.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationParameters/Cloud.xml deleted file mode 100644 index 48b8b6b33c..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index e579cbf896..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index e579cbf896..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/PublishProfiles/Cloud.xml b/ServiceFabric/Linux/eShopOnServiceFabric/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/PublishProfiles/Local.1Node.xml b/ServiceFabric/Linux/eShopOnServiceFabric/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/PublishProfiles/Local.5Node.xml b/ServiceFabric/Linux/eShopOnServiceFabric/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Linux/eShopOnServiceFabric/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/eShopOnServiceFabric.sfproj b/ServiceFabric/Linux/eShopOnServiceFabric/eShopOnServiceFabric.sfproj deleted file mode 100644 index e345590fb7..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/eShopOnServiceFabric.sfproj +++ /dev/null @@ -1,57 +0,0 @@ - - - - - 983eab84-65c5-4793-a300-08f97c791a15 - 1.6 - 1.5 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabric/packages.config b/ServiceFabric/Linux/eShopOnServiceFabric/packages.config deleted file mode 100644 index c5f59e48ee..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabric/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index 638b701941..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/Config/Settings.xml b/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/ServiceManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/ServiceManifest.xml deleted file mode 100644 index 35bc15b68b..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - eshop/identity.api:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Cloud.xml b/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Cloud.xml deleted file mode 100644 index a1255b6c0a..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index e8623180a2..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index e8623180a2..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Cloud.xml b/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.1Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.5Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv.sfproj b/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv.sfproj deleted file mode 100644 index 1d0d025a94..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 39b54901-d57d-416e-b51e-33c4017ca464 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/packages.config b/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index 158c03905e..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/Config/Settings.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/ServiceManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/ServiceManifest.xml deleted file mode 100644 index 7b6aa55655..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/ServiceManifest.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - eshop/webmvc:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Cloud.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Cloud.xml deleted file mode 100644 index d99e1573a7..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index 1d59af5a63..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index 1d59af5a63..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Cloud.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.1Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.5Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC.sfproj b/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC.sfproj deleted file mode 100644 index ff4ce22477..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 0cf895ff-3616-4d1f-8d2e-5d856cdf3612 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/packages.config b/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index 7fca0294ed..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/Config/Settings.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/ServiceManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/ServiceManifest.xml deleted file mode 100644 index 64d719c597..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/ServiceManifest.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - eshop/webspa:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Cloud.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Cloud.xml deleted file mode 100644 index fdeb6fd886..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index 92fe692c37..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index 92fe692c37..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Cloud.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.1Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.5Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA.sfproj b/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA.sfproj deleted file mode 100644 index 05ed606be9..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 1670de10-5626-429d-a74a-2dd8281cc0c9 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/packages.config b/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index da2d7de0b2..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/Config/Settings.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/ServiceManifest.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/ServiceManifest.xml deleted file mode 100644 index 456c92ea16..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/ServiceManifest.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - eshop/webstatus:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Cloud.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Cloud.xml deleted file mode 100644 index f49e04e6b6..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index 9864bd0509..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index 9864bd0509..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Cloud.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.1Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.5Node.xml b/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus.sfproj b/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus.sfproj deleted file mode 100644 index 1d4def7f29..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 25f73fd9-b32f-401a-80e8-17c72606a7e1 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/packages.config b/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Linux/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index bb1cf27438..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/Config/Settings.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/ServiceManifest.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/ServiceManifest.xml deleted file mode 100644 index 9415f54f2a..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationPackageRoot/RabbitMQPkg/ServiceManifest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - spring2/rabbitmq:3.6.10 - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Cloud.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Cloud.xml deleted file mode 100644 index 5a4c2828d2..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index 1699b8eaa4..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index 1699b8eaa4..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/Bus.sfproj b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/Bus.sfproj deleted file mode 100644 index 0a56c800eb..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/Bus.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - f29e27c9-0d5e-4a57-adbf-dd651649d2a1 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Cloud.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.1Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.5Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/packages.config b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricBus/Bus/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index fe031fe954..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/Config/Settings.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/ServiceManifest.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/ServiceManifest.xml deleted file mode 100644 index be47332ca1..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationPackageRoot/MongoDBPkg/ServiceManifest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - mongo:windowsservercore - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Cloud.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Cloud.xml deleted file mode 100644 index 8b48c39d17..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index 22363f273f..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index 22363f273f..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/NoSQL.sfproj b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/NoSQL.sfproj deleted file mode 100644 index f07ff03a9a..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/NoSQL.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - eb070036-ec60-49a6-88e1-562a2043c3d7 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Cloud.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.1Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.5Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/packages.config b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricNoSql/NoSQL/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index 11bf47a6a3..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/Config/Settings.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/ServiceManifest.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/ServiceManifest.xml deleted file mode 100644 index ea9deb355b..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationPackageRoot/BasketDataPkg/ServiceManifest.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - redis:nanoserver - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Cloud.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Cloud.xml deleted file mode 100644 index 951ce24db5..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index e2f3876c7e..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index e2f3876c7e..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Cloud.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.1Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.5Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/Redis.sfproj b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/Redis.sfproj deleted file mode 100644 index 5b28bfdba8..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/Redis.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 17acd9ea-8f16-4091-aa29-c67002971eee - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/packages.config b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricRedis/Redis/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index 27fa4bfe2f..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/Config/Settings.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/ServiceManifest.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/ServiceManifest.xml deleted file mode 100644 index 252c74f21d..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationPackageRoot/SqlServerPkg/ServiceManifest.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - microsoft/mssql-server-windows-developer:2017 - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Cloud.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Cloud.xml deleted file mode 100644 index 3ad12232a3..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index 9fc10b0bc0..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index 9fc10b0bc0..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Cloud.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.1Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.5Node.xml b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/Sql.sfproj b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/Sql.sfproj deleted file mode 100644 index 48447811ed..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/Sql.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 65a83188-79c1-47ad-931d-8e8a87247408 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/packages.config b/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Windows/Infrastructure/eShopOnServiceFabricSql/Sql/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index 05704ada81..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/Config/Settings.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/ServiceManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/ServiceManifest.xml deleted file mode 100644 index d45768eba5..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/BasketApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - eshop/basket.api-win:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/Config/Settings.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/ServiceManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/ServiceManifest.xml deleted file mode 100644 index 5c14568eb3..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/CatalogApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - eshop/catalog.api-win:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/Config/Settings.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/ServiceManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/ServiceManifest.xml deleted file mode 100644 index 36a817d36d..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/LocationsApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - eshop/locations.api-win:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/Config/Settings.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/ServiceManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/ServiceManifest.xml deleted file mode 100644 index 2fa855974e..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/MarketingApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - eshop/marketing.api-win:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/Config/Settings.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/ServiceManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/ServiceManifest.xml deleted file mode 100644 index 2e7aae7a58..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - eshop/ordering.api-win:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/Config/Settings.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/ServiceManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/ServiceManifest.xml deleted file mode 100644 index c963ce5122..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/OrderingBackgroundPkg/ServiceManifest.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - eshop/ordering.backgroundtasks-win - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/Config/Settings.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/ServiceManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/ServiceManifest.xml deleted file mode 100644 index 5d46ef47cd..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationPackageRoot/PaymentApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - eshop/payment.api-win:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationParameters/Cloud.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationParameters/Cloud.xml deleted file mode 100644 index 48b8b6b33c..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index e579cbf896..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index e579cbf896..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/PublishProfiles/Cloud.xml b/ServiceFabric/Windows/eShopOnServiceFabric/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/PublishProfiles/Local.1Node.xml b/ServiceFabric/Windows/eShopOnServiceFabric/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/PublishProfiles/Local.5Node.xml b/ServiceFabric/Windows/eShopOnServiceFabric/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Windows/eShopOnServiceFabric/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/eShopOnServiceFabric.sfproj b/ServiceFabric/Windows/eShopOnServiceFabric/eShopOnServiceFabric.sfproj deleted file mode 100644 index e345590fb7..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/eShopOnServiceFabric.sfproj +++ /dev/null @@ -1,57 +0,0 @@ - - - - - 983eab84-65c5-4793-a300-08f97c791a15 - 1.6 - 1.5 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabric/packages.config b/ServiceFabric/Windows/eShopOnServiceFabric/packages.config deleted file mode 100644 index c5f59e48ee..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabric/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index b39aef66ad..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/Config/Settings.xml b/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/ServiceManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/ServiceManifest.xml deleted file mode 100644 index 9650b783ea..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationPackageRoot/IdentityApiPkg/ServiceManifest.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - eshop/identity.api-win:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Cloud.xml b/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Cloud.xml deleted file mode 100644 index 2077351063..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index e8623180a2..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index e8623180a2..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Cloud.xml b/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.1Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.5Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv.sfproj b/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv.sfproj deleted file mode 100644 index 1d0d025a94..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 39b54901-d57d-416e-b51e-33c4017ca464 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/packages.config b/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricIdSrv/eShopOnServiceFabricIdSrv/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index 8282adb119..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/Config/Settings.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/ServiceManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/ServiceManifest.xml deleted file mode 100644 index 55828da3e4..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationPackageRoot/WebMVCPkg/ServiceManifest.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - eshop/webmvc-win:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Cloud.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Cloud.xml deleted file mode 100644 index d99e1573a7..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index 1d59af5a63..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index 1d59af5a63..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Cloud.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.1Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.5Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC.sfproj b/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC.sfproj deleted file mode 100644 index ff4ce22477..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 0cf895ff-3616-4d1f-8d2e-5d856cdf3612 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/packages.config b/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebMVC/eShopOnServiceFabricWebMVC/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index e7479f2393..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/Config/Settings.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/ServiceManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/ServiceManifest.xml deleted file mode 100644 index a0bd28a947..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationPackageRoot/WebSPAPkg/ServiceManifest.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - eshop/webspa-win:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Cloud.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Cloud.xml deleted file mode 100644 index fdeb6fd886..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index 92fe692c37..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index 92fe692c37..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Cloud.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.1Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.5Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA.sfproj b/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA.sfproj deleted file mode 100644 index 05ed606be9..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 1670de10-5626-429d-a74a-2dd8281cc0c9 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/packages.config b/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebSPA/eShopOnServiceFabricWebSPA/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/ApplicationManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/ApplicationManifest.xml deleted file mode 100644 index 20fb0c3a99..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/ApplicationManifest.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/Config/Settings.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/Config/Settings.xml deleted file mode 100644 index ad84ffd8aa..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/Config/Settings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/ServiceManifest.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/ServiceManifest.xml deleted file mode 100644 index 58968f0e56..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationPackageRoot/WebStatusPkg/ServiceManifest.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - eshop/webstatus-win:#{tag}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Cloud.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Cloud.xml deleted file mode 100644 index f49e04e6b6..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Cloud.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.1Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.1Node.xml deleted file mode 100644 index 9864bd0509..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.1Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.5Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.5Node.xml deleted file mode 100644 index 9864bd0509..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/ApplicationParameters/Local.5Node.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Cloud.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Cloud.xml deleted file mode 100644 index 2ab9df11cf..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Cloud.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.1Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.1Node.xml deleted file mode 100644 index 6e1403e962..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.1Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.5Node.xml b/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.5Node.xml deleted file mode 100644 index f42d759c3d..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/PublishProfiles/Local.5Node.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/Scripts/Deploy-FabricApplication.ps1 b/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/Scripts/Deploy-FabricApplication.ps1 deleted file mode 100644 index 2897b10e87..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/Scripts/Deploy-FabricApplication.ps1 +++ /dev/null @@ -1,258 +0,0 @@ -<# -.SYNOPSIS -Deploys a Service Fabric application type to a cluster. - -.DESCRIPTION -This script deploys a Service Fabric application type to a cluster. It is invoked by Visual Studio when deploying a Service Fabric Application project. - -.NOTES -WARNING: This script file is invoked by Visual Studio. Its parameters must not be altered but its logic can be customized as necessary. - -.PARAMETER PublishProfileFile -Path to the file containing the publish profile. - -.PARAMETER ApplicationPackagePath -Path to the folder of the packaged Service Fabric application. - -.PARAMETER DeployOnly -Indicates that the Service Fabric application should not be created or upgraded after registering the application type. - -.PARAMETER ApplicationParameter -Hashtable of the Service Fabric application parameters to be used for the application. - -.PARAMETER UnregisterUnusedApplicationVersionsAfterUpgrade -Indicates whether to unregister any unused application versions that exist after an upgrade is finished. - -.PARAMETER OverrideUpgradeBehavior -Indicates the behavior used to override the upgrade settings specified by the publish profile. -'None' indicates that the upgrade settings will not be overridden. -'ForceUpgrade' indicates that an upgrade will occur with default settings, regardless of what is specified in the publish profile. -'VetoUpgrade' indicates that an upgrade will not occur, regardless of what is specified in the publish profile. - -.PARAMETER UseExistingClusterConnection -Indicates that the script should make use of an existing cluster connection that has already been established in the PowerShell session. The cluster connection parameters configured in the publish profile are ignored. - -.PARAMETER OverwriteBehavior -Overwrite Behavior if an application exists in the cluster with the same name. Available Options are Never, Always, SameAppTypeAndVersion. This setting is not applicable when upgrading an application. -'Never' will not remove the existing application. This is the default behavior. -'Always' will remove the existing application even if its Application type and Version is different from the application being created. -'SameAppTypeAndVersion' will remove the existing application only if its Application type and Version is same as the application being created. - -.PARAMETER SkipPackageValidation -Switch signaling whether the package should be validated or not before deployment. - -.PARAMETER SecurityToken -A security token for authentication to cluster management endpoints. Used for silent authentication to clusters that are protected by Azure Active Directory. - -.PARAMETER CopyPackageTimeoutSec -Timeout in seconds for copying application package to image store. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' - -Deploy the application using the default package location for a Debug build. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -DoNotCreateApplication - -Deploy the application but do not create the application instance. - -.EXAMPLE -. Scripts\Deploy-FabricApplication.ps1 -ApplicationPackagePath 'pkg\Debug' -ApplicationParameter @{CustomParameter1='MyValue'; CustomParameter2='MyValue'} - -Deploy the application by providing values for parameters that are defined in the application manifest. -#> - -Param -( - [String] - $PublishProfileFile, - - [String] - $ApplicationPackagePath, - - [Switch] - $DeployOnly, - - [Hashtable] - $ApplicationParameter, - - [Boolean] - $UnregisterUnusedApplicationVersionsAfterUpgrade, - - [String] - [ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')] - $OverrideUpgradeBehavior = 'None', - - [Switch] - $UseExistingClusterConnection, - - [String] - [ValidateSet('Never','Always','SameAppTypeAndVersion')] - $OverwriteBehavior = 'Never', - - [Switch] - $SkipPackageValidation, - - [String] - $SecurityToken, - - [int] - $CopyPackageTimeoutSec -) - -function Read-XmlElementAsHashtable -{ - Param ( - [System.Xml.XmlElement] - $Element - ) - - $hashtable = @{} - if ($Element.Attributes) - { - $Element.Attributes | - ForEach-Object { - $boolVal = $null - if ([bool]::TryParse($_.Value, [ref]$boolVal)) { - $hashtable[$_.Name] = $boolVal - } - else { - $hashtable[$_.Name] = $_.Value - } - } - } - - return $hashtable -} - -function Read-PublishProfile -{ - Param ( - [ValidateScript({Test-Path $_ -PathType Leaf})] - [String] - $PublishProfileFile - ) - - $publishProfileXml = [Xml] (Get-Content $PublishProfileFile) - $publishProfile = @{} - - $publishProfile.ClusterConnectionParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("ClusterConnectionParameters") - $publishProfile.UpgradeDeployment = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment") - $publishProfile.CopyPackageParameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("CopyPackageParameters") - - if ($publishProfileXml.PublishProfile.Item("UpgradeDeployment")) - { - $publishProfile.UpgradeDeployment.Parameters = Read-XmlElementAsHashtable $publishProfileXml.PublishProfile.Item("UpgradeDeployment").Item("Parameters") - if ($publishProfile.UpgradeDeployment["Mode"]) - { - $publishProfile.UpgradeDeployment.Parameters[$publishProfile.UpgradeDeployment["Mode"]] = $true - } - } - - $publishProfileFolder = (Split-Path $PublishProfileFile) - $publishProfile.ApplicationParameterFile = [System.IO.Path]::Combine($PublishProfileFolder, $publishProfileXml.PublishProfile.ApplicationParameterFile.Path) - - return $publishProfile -} - -$LocalFolder = (Split-Path $MyInvocation.MyCommand.Path) - -if (!$PublishProfileFile) -{ - $PublishProfileFile = "$LocalFolder\..\PublishProfiles\Local.xml" -} - -if (!$ApplicationPackagePath) -{ - $ApplicationPackagePath = "$LocalFolder\..\pkg\Release" -} - -$ApplicationPackagePath = Resolve-Path $ApplicationPackagePath - -$publishProfile = Read-PublishProfile $PublishProfileFile - -if (-not $UseExistingClusterConnection) -{ - $ClusterConnectionParameters = $publishProfile.ClusterConnectionParameters - if ($SecurityToken) - { - $ClusterConnectionParameters["SecurityToken"] = $SecurityToken - } - - try - { - [void](Connect-ServiceFabricCluster @ClusterConnectionParameters) - } - catch [System.Fabric.FabricObjectClosedException] - { - Write-Warning "Service Fabric cluster may not be connected." - throw - } -} - -$RegKey = "HKLM:\SOFTWARE\Microsoft\Service Fabric SDK" -$ModuleFolderPath = (Get-ItemProperty -Path $RegKey -Name FabricSDKPSModulePath).FabricSDKPSModulePath -Import-Module "$ModuleFolderPath\ServiceFabricSDK.psm1" - -$IsUpgrade = ($publishProfile.UpgradeDeployment -and $publishProfile.UpgradeDeployment.Enabled -and $OverrideUpgradeBehavior -ne 'VetoUpgrade') -or $OverrideUpgradeBehavior -eq 'ForceUpgrade' - -$PublishParameters = @{ - 'ApplicationPackagePath' = $ApplicationPackagePath - 'ApplicationParameterFilePath' = $publishProfile.ApplicationParameterFile - 'ApplicationParameter' = $ApplicationParameter - 'ErrorAction' = 'Stop' -} - -if ($publishProfile.CopyPackageParameters.CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $publishProfile.CopyPackageParameters.CopyPackageTimeoutSec -} - -if ($publishProfile.CopyPackageParameters.CompressPackage) -{ - $PublishParameters['CompressPackage'] = $publishProfile.CopyPackageParameters.CompressPackage -} - -# CopyPackageTimeoutSec parameter overrides the value from the publish profile -if ($CopyPackageTimeoutSec) -{ - $PublishParameters['CopyPackageTimeoutSec'] = $CopyPackageTimeoutSec -} - -if ($IsUpgrade) -{ - $Action = "RegisterAndUpgrade" - if ($DeployOnly) - { - $Action = "Register" - } - - $UpgradeParameters = $publishProfile.UpgradeDeployment.Parameters - - if ($OverrideUpgradeBehavior -eq 'ForceUpgrade') - { - # Warning: Do not alter these upgrade parameters. It will create an inconsistency with Visual Studio's behavior. - $UpgradeParameters = @{ UnmonitoredAuto = $true; Force = $true } - } - - $PublishParameters['Action'] = $Action - $PublishParameters['UpgradeParameters'] = $UpgradeParameters - $PublishParameters['UnregisterUnusedVersions'] = $UnregisterUnusedApplicationVersionsAfterUpgrade - - Publish-UpgradedServiceFabricApplication @PublishParameters -} -else -{ - $Action = "RegisterAndCreate" - if ($DeployOnly) - { - $Action = "Register" - } - - $PublishParameters['Action'] = $Action - $PublishParameters['OverwriteBehavior'] = $OverwriteBehavior - $PublishParameters['SkipPackageValidation'] = $SkipPackageValidation - - Publish-NewServiceFabricApplication @PublishParameters -} \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus.sfproj b/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus.sfproj deleted file mode 100644 index 1d4def7f29..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus.sfproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - 25f73fd9-b32f-401a-80e8-17c72606a7e1 - 1.7 - 1.5 - 1.6 - v4.6.1 - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets - - - - - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/packages.config b/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/packages.config deleted file mode 100644 index 3dc0a332bf..0000000000 --- a/ServiceFabric/Windows/eShopOnServiceFabricWebStatus/eShopOnServiceFabricWebStatus/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ServiceFabric/Windows/sfwin.sln b/ServiceFabric/Windows/sfwin.sln deleted file mode 100644 index 989ad6080a..0000000000 --- a/ServiceFabric/Windows/sfwin.sln +++ /dev/null @@ -1,13 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27323.2 -MinimumVisualStudioVersion = 10.0.40219.1 -Global - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {04B6E659-060F-4550-A5CA-70B9E9D8F010} - EndGlobalSection -EndGlobal From 6ab89ae6089da1bbee74db5cc4cc409019b8735a Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Sat, 16 Nov 2019 16:18:48 +0000 Subject: [PATCH 128/149] Remove obsolete folders --- .../Clients.Grpc.Caller.csproj | 17 --- src/Clients/Clients.Grpc.Caller/Program.cs | 50 ------- .../Clients.Grpc.Caller/Protos/basket.proto | 34 ----- src/Directory.Build.props | 3 - src/_build/ReadMe.md | 1 - src/_build/dependencies.props | 129 ------------------ src/csproj-files.txt | 34 ----- src/package-lock.json | 11 -- src/scripts/restore-packages | 1 - src/scripts/restore-packages.cmd | 1 - 10 files changed, 281 deletions(-) delete mode 100644 src/Clients/Clients.Grpc.Caller/Clients.Grpc.Caller.csproj delete mode 100644 src/Clients/Clients.Grpc.Caller/Program.cs delete mode 100644 src/Clients/Clients.Grpc.Caller/Protos/basket.proto delete mode 100644 src/Directory.Build.props delete mode 100644 src/_build/ReadMe.md delete mode 100644 src/_build/dependencies.props delete mode 100644 src/csproj-files.txt delete mode 100644 src/package-lock.json delete mode 100644 src/scripts/restore-packages delete mode 100644 src/scripts/restore-packages.cmd diff --git a/src/Clients/Clients.Grpc.Caller/Clients.Grpc.Caller.csproj b/src/Clients/Clients.Grpc.Caller/Clients.Grpc.Caller.csproj deleted file mode 100644 index 7cf9039822..0000000000 --- a/src/Clients/Clients.Grpc.Caller/Clients.Grpc.Caller.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - - Exe - netcoreapp3.0 - - - - - - - - - - - - diff --git a/src/Clients/Clients.Grpc.Caller/Program.cs b/src/Clients/Clients.Grpc.Caller/Program.cs deleted file mode 100644 index 5a671ac6e2..0000000000 --- a/src/Clients/Clients.Grpc.Caller/Program.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Net.Http; -using System.Threading.Tasks; -using Grpc.Core; -using Grpc.Net.Client; -using GrpcBasket; -namespace Clients.Grpc.Caller -{ - class Program - { - static async Task Main(string[] args) - { - Console.WriteLine("Starting..."); - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); - AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true); - - using (var httpClientHandler = new HttpClientHandler()) - { - httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; - using (var httpClient = new HttpClient(httpClientHandler)) - { - // Make your request... - // var httpClient = new HttpClient(); - // The port number(5001) must match the port of the gRPC server. - //httpClient.BaseAddress = new Uri("http://localhost:5103"); - httpClient.BaseAddress = new Uri("http://localhost:5580"); - //httpClient.DefaultRequestVersion = Version.Parse("2.0"); - var client = GrpcClient.Create(httpClient); - - try - { - var reply = await client.GetBasketByIdAsync( - new BasketRequest { Id = "4f71a02f-4738-43a9-8c81-7652877e7102" }); - Console.WriteLine("Greeting: " + reply.Buyerid); - Console.WriteLine("Greeting: " + reply.Items); - - } - //catch(Grpc) - catch (RpcException e) - { - Console.WriteLine($"Error calling via grpc: {e.Status} - {e.Message}"); - } - - Console.WriteLine("Press any key to exit..."); - Console.ReadKey(); - } - } - } - } -} diff --git a/src/Clients/Clients.Grpc.Caller/Protos/basket.proto b/src/Clients/Clients.Grpc.Caller/Protos/basket.proto deleted file mode 100644 index f23c2f38ea..0000000000 --- a/src/Clients/Clients.Grpc.Caller/Protos/basket.proto +++ /dev/null @@ -1,34 +0,0 @@ -syntax = "proto3"; - -option csharp_namespace = "GrpcBasket"; - -package BasketApi; - -service Basket { - rpc GetBasketById(BasketRequest) returns (CustomerBasketResponse); - rpc UpdateBasket(CustomerBasketRequest) returns (CustomerBasketResponse); -} - -message BasketRequest { - string id = 1; -} - -message CustomerBasketRequest { - string buyerid = 1; - repeated BasketItemResponse items = 2; -} - -message CustomerBasketResponse { - string buyerid = 1; - repeated BasketItemResponse items = 2; -} - -message BasketItemResponse { - string id = 1; - int32 productid = 2; - string productname = 3; - double unitprice = 4; - double oldunitprice = 5; - int32 quantity = 6; - string pictureurl = 7; -} \ No newline at end of file diff --git a/src/Directory.Build.props b/src/Directory.Build.props deleted file mode 100644 index b137daefc3..0000000000 --- a/src/Directory.Build.props +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/_build/ReadMe.md b/src/_build/ReadMe.md deleted file mode 100644 index 536add60bd..0000000000 --- a/src/_build/ReadMe.md +++ /dev/null @@ -1 +0,0 @@ -`Please define why we are using this here.` diff --git a/src/_build/dependencies.props b/src/_build/dependencies.props deleted file mode 100644 index ee22d5ccb5..0000000000 --- a/src/_build/dependencies.props +++ /dev/null @@ -1,129 +0,0 @@ - - - netstandard2.1 - netcoreapp3.0 - 15.8.0 - preview - - - - 2.1.1 - 2.1.1 - - - - 2.9.406 - - - - 0.1.22-pre3 - 0.1.22-pre3 - 3.9.1 - 1.22.0 - 2.23.0 - 0.1.22-pre2 - - 2.2.0 - 2.2.0 - 2.2.0 - 2.2.0 - 2.2.0 - 2.2.0 - 2.2.3 - 2.2.22 - 2.2.2 - 4.2.1 - 4.9.2 - 2.6.375 - 1.50.7 - 7.5.0 - 3.0.0-preview3.4 - 3.0.0-preview3.4 - 3.0.0-preview3.4 - 3.0.0-preview3.4 - 3.0.0-preview3.4 - 5.1.0 - 5.1.0 - 2.2.1 - 2.6.1 - 1.0.2 - 5.2.7 - 3.0.0-preview8.19405.7 - 3.0.0-preview8.19405.7 - 3.0.0-preview8.19405.7 - 3.0.0-preview4-19123-01 - 3.0.0-preview4-19123-01 - 2.2.0-preview2-35157 - 3.0.0-preview8.19405.7 - 2.2.0 - 1.0.0 - 3.0.0-preview4-19123-01 - 3.0.0-preview4-19123-01 - 2.2.0 - 3.0.0-preview8.19405.7 - 3.0.0-preview4-19123-01 - 3.0.0-preview4-19123-01 - 3.0.0-preview8.19405.7 - 3.0.0-preview6.19307.2 - 3.0.0-preview4-19123-01 - 3.0.0-alpha1-10670 - 3.0.0-alpha1-34847 - 3.0.0-preview8.19405.7 - 3.0.0 - 15.9.20 - 4.5.0 - 3.0.0-preview5.19227.1 - 3.0.0-preview8.19405.11 - 3.0.0-preview5.19227.1 - 3.0.0-preview8.19405.11 - 3.0.0-preview5.19227.1 - 3.0.0-preview8.19405.11 - 3.0.0-preview8.19405.11 - 3.0.0-preview8.19405.4 - 2.2.0 - 2.2.0 - 3.0.0-preview8.19405.4 - 2.2.0 - 2.2.0 - 3.0.0-preview8.19405.7 - 3.0.0-preview8.19405.4 - 2.2.0 - 16.0.1 - 3.0.0-preview8.19405.3 - 1.0.2105168 - 1.7.9 - 3.0.0-preview6-19319-03 - 1.0.172 - 2.9.0-beta2 - 2.9.0-beta2 - 2.9.0-beta2 - 4.10.1 - 12.0.2 - 12.0.1 - 6.0.1 - 5.0.1 - 3.0.0-dev-00053 - 2.1.3 - 3.1.1-dev-00209 - 3.1.1 - 4.2.1 - 4.0.0 - 1.2.6 - 5.0.0-rc2 - 4.7.0-preview8.19405.3 - 4.3.0 - 4.5.1 - 4.3.0 - 4.5.0 - 2.4.0 - 2.4.0 - - - - https://github.com/dotnet-architecture/eShopOnContainers/blob/master/LICENSE - https://github.com/dotnet-architecture/eShopOnContainers - https://github.com/dotnet-architecture/eShopOnContainers - Microsoft - - - \ No newline at end of file diff --git a/src/csproj-files.txt b/src/csproj-files.txt deleted file mode 100644 index 6dc3532d94..0000000000 --- a/src/csproj-files.txt +++ /dev/null @@ -1,34 +0,0 @@ -COPY src/ApiGateways/ApiGw-Base/*.csproj /src/src/ApiGateways/ApiGw-Base/ -COPY src/ApiGateways/Mobile.Bff.Shopping/aggregator/*.csproj /src/src/ApiGateways/Mobile.Bff.Shopping/aggregator/ -COPY src/ApiGateways/Web.Bff.Shopping/aggregator/*.csproj /src/src/ApiGateways/Web.Bff.Shopping/aggregator/ -COPY src/BuildingBlocks/EventBus/CommandBus/*.csproj /src/src/BuildingBlocks/EventBus/CommandBus/ -COPY src/BuildingBlocks/EventBus/EventBus/*.csproj /src/src/BuildingBlocks/EventBus/EventBus/ -COPY src/BuildingBlocks/EventBus/EventBus.Tests/*.csproj /src/src/BuildingBlocks/EventBus/EventBus.Tests/ -COPY src/BuildingBlocks/EventBus/EventBusRabbitMQ/*.csproj /src/src/BuildingBlocks/EventBus/EventBusRabbitMQ/ -COPY src/BuildingBlocks/EventBus/EventBusServiceBus/*.csproj /src/src/BuildingBlocks/EventBus/EventBusServiceBus/ -COPY src/BuildingBlocks/EventBus/IntegrationEventLogEF/*.csproj /src/src/BuildingBlocks/EventBus/IntegrationEventLogEF/ -COPY src/BuildingBlocks/WebHostCustomization/WebHost.Customization/*.csproj /src/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/ -COPY src/Services/Basket/Basket.API/*.csproj /src/src/Services/Basket/Basket.API/ -COPY src/Services/Basket/Basket.FunctionalTests/*.csproj /src/src/Services/Basket/Basket.FunctionalTests/ -COPY src/Services/Basket/Basket.UnitTests/*.csproj /src/src/Services/Basket/Basket.UnitTests/ -COPY src/Services/Catalog/Catalog.API/*.csproj /src/src/Services/Catalog/Catalog.API/ -COPY src/Services/Catalog/Catalog.FunctionalTests/*.csproj /src/src/Services/Catalog/Catalog.FunctionalTests/ -COPY src/Services/Catalog/Catalog.UnitTests/*.csproj /src/src/Services/Catalog/Catalog.UnitTests/ -COPY src/Services/Identity/Identity.API/*.csproj /src/src/Services/Identity/Identity.API/ -COPY src/Services/Location/Locations.API/*.csproj /src/src/Services/Location/Locations.API/ -COPY src/Services/Location/Locations.FunctionalTests/*.csproj /src/src/Services/Location/Locations.FunctionalTests/ -COPY src/Services/Marketing/Marketing.API/*.csproj /src/src/Services/Marketing/Marketing.API/ -COPY src/Services/Marketing/Marketing.FunctionalTests/*.csproj /src/src/Services/Marketing/Marketing.FunctionalTests/ -COPY src/Services/Ordering/Ordering.API/*.csproj /src/src/Services/Ordering/Ordering.API/ -COPY src/Services/Ordering/Ordering.BackgroundTasks/*.csproj /src/src/Services/Ordering/Ordering.BackgroundTasks/ -COPY src/Services/Ordering/Ordering.Domain/*.csproj /src/src/Services/Ordering/Ordering.Domain/ -COPY src/Services/Ordering/Ordering.FunctionalTests/*.csproj /src/src/Services/Ordering/Ordering.FunctionalTests/ -COPY src/Services/Ordering/Ordering.Infrastructure/*.csproj /src/src/Services/Ordering/Ordering.Infrastructure/ -COPY src/Services/Ordering/Ordering.SignalrHub/*.csproj /src/src/Services/Ordering/Ordering.SignalrHub/ -COPY src/Services/Ordering/Ordering.UnitTests/*.csproj /src/src/Services/Ordering/Ordering.UnitTests/ -COPY src/Services/Payment/Payment.API/*.csproj /src/src/Services/Payment/Payment.API/ -COPY src/Services/Webhooks/Webhooks.API/*.csproj /src/src/Services/Webhooks/Webhooks.API/ -COPY src/Web/WebhookClient/*.csproj /src/src/Web/WebhookClient/ -COPY src/Web/WebMVC/*.csproj /src/src/Web/WebMVC/ -COPY src/Web/WebSPA/*.csproj /src/src/Web/WebSPA/ -COPY src/Web/WebStatus/*.csproj /src/src/Web/WebStatus/ diff --git a/src/package-lock.json b/src/package-lock.json deleted file mode 100644 index ba627e6743..0000000000 --- a/src/package-lock.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@aspnet/signalr": { - "version": "1.0.0-preview1-update1", - "resolved": "https://registry.npmjs.org/@aspnet/signalr/-/signalr-1.0.0-preview1-update1.tgz", - "integrity": "sha512-TGFCoLa2svN37Ew5ue0kGFxbkmQzq2I9N5TMLFBWRrpTYF4txlE3yPX0EaPt/NToKBaK1A+VK8Q+1MGSYtnqUw==" - } - } -} diff --git a/src/scripts/restore-packages b/src/scripts/restore-packages deleted file mode 100644 index 58bb10c62f..0000000000 --- a/src/scripts/restore-packages +++ /dev/null @@ -1 +0,0 @@ -echo RESTORING ALL PACKAGES...; for f in /src/csproj-files/*.csproj; do dotnet restore $f; done \ No newline at end of file diff --git a/src/scripts/restore-packages.cmd b/src/scripts/restore-packages.cmd deleted file mode 100644 index 9f3a8434e1..0000000000 --- a/src/scripts/restore-packages.cmd +++ /dev/null @@ -1 +0,0 @@ -for %%p in (csproj-files\*.csproj) do dotnet restore %%p From ade6358eca27a7a735132937da0827f3d6485b56 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Mon, 18 Nov 2019 15:03:28 +0000 Subject: [PATCH 129/149] Reorganize project folders --- .../Mobile.Shopping.HttpAggregator.csproj | 8 +++---- .../Web.Shopping.HttpAggregator.csproj | 8 +++---- .../Devspaces.Support.csproj | 2 +- .../EventBus.Tests/EventBus.Tests.csproj | 8 +++---- .../EventBus/EventBus/EventBus.csproj | 2 +- .../EventBusRabbitMQ/EventBusRabbitMQ.csproj | 2 +- .../EventBusServiceBus.csproj | 2 +- .../IntegrationEventLogEF.csproj | 2 +- .../WebHost.Customization.csproj | 4 ++-- .../Basket/Basket.API/Basket.API.csproj | 14 +++++------ .../Basket.FunctionalTests.csproj | 2 +- .../Basket.UnitTests/Basket.UnitTests.csproj | 6 ++--- .../Catalog/Catalog.API/Catalog.API.csproj | 12 +++++----- .../Catalog.FunctionalTests.csproj | 2 +- .../Catalog.UnitTests.csproj | 6 ++--- .../Identity/Identity.API/Identity.API.csproj | 14 +++++------ .../Locations.API/Locations.API.csproj | 14 +++++------ .../Locations.FunctionalTests.csproj | 2 +- .../Marketing.API/Marketing.API.csproj | 14 +++++------ .../Marketing.FunctionalTests.csproj | 2 +- .../Ordering/Ordering.API/Ordering.API.csproj | 14 +++++------ .../Ordering.BackgroundTasks.csproj | 16 ++++++------- .../Ordering.Domain/Ordering.Domain.csproj | 2 +- .../Ordering.FunctionalTests.csproj | 2 +- .../Ordering.Infrastructure.csproj | 2 +- .../Ordering.SignalrHub.csproj | 16 ++++++------- .../Ordering.UnitTests.csproj | 6 ++--- .../Payment/Payment.API/Payment.API.csproj | 10 ++++---- .../Webhooks/Webhooks.API/Webhooks.API.csproj | 10 ++++---- .../Application.FunctionalTests.csproj | 22 +++++++++--------- .../Extensions/HttpClientExtensions.cs | 0 .../Middleware/AutoAuthorizeMiddleware.cs | 0 .../Services/Basket/BasketScenariosBase.cs | 0 .../Services/Basket/BasketTestsStartup.cs | 0 .../Services/Basket/appsettings.json | 0 .../Services/Catalog/CatalogScenariosBase.cs | 0 .../Services/Catalog/appsettings.json | 0 .../Services/IntegrationEventsScenarios.cs | 0 .../Location/LocationsScenariosBase.cs | 0 .../Location/LocationsTestsStartup.cs | 0 .../Services/Location/appsettings.json | 0 .../Marketing/CampaignScenariosBase.cs | 0 .../Services/Marketing/MarketingScenarios.cs | 0 .../Marketing/MarketingScenariosBase.cs | 0 .../Marketing/MarketingTestsStartup.cs | 0 .../UserLocationRoleScenariosBase.cs | 0 .../Services/Marketing/appsettings.json | 0 .../Services/Ordering/OrderingScenarios.cs | 0 .../Ordering/OrderingScenariosBase.cs | 0 .../Services/Ordering/OrderingTestsStartup.cs | 0 .../Services/Ordering/appsettings.json | 0 .../Setup/CatalogBrands.csv | 0 .../Setup/CatalogItems.csv | 0 .../Setup/CatalogItems.zip | Bin .../Setup/CatalogTypes.csv | 0 src/Web/WebMVC/WebMVC.csproj | 14 +++++------ src/Web/WebSPA/WebSPA.csproj | 6 ++--- src/Web/WebStatus/WebStatus.csproj | 10 ++++---- src/Web/WebhookClient/WebhookClient.csproj | 6 ++--- src/eShopOnContainers-ServicesAndWebApps.sln | 6 ++--- 60 files changed, 134 insertions(+), 134 deletions(-) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Application.FunctionalTests.csproj (81%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Extensions/HttpClientExtensions.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Middleware/AutoAuthorizeMiddleware.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Basket/BasketScenariosBase.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Basket/BasketTestsStartup.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Basket/appsettings.json (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Catalog/CatalogScenariosBase.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Catalog/appsettings.json (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/IntegrationEventsScenarios.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Location/LocationsScenariosBase.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Location/LocationsTestsStartup.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Location/appsettings.json (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Marketing/CampaignScenariosBase.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Marketing/MarketingScenarios.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Marketing/MarketingScenariosBase.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Marketing/MarketingTestsStartup.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Marketing/UserLocationRoleScenariosBase.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Marketing/appsettings.json (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Ordering/OrderingScenarios.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Ordering/OrderingScenariosBase.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Ordering/OrderingTestsStartup.cs (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Services/Ordering/appsettings.json (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Setup/CatalogBrands.csv (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Setup/CatalogItems.csv (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Setup/CatalogItems.zip (100%) rename {test/ServicesTests => src/Tests/Services}/Application.FunctionalTests/Setup/CatalogTypes.csv (100%) diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj index 31d56dda76..a0ba7bd589 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj @@ -1,13 +1,13 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 Mobile.Shopping.HttpAggregator Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator ..\..\..\docker-compose.dcproj false true - $(LangVersion) + preview @@ -22,11 +22,11 @@ - + - + diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj index 0f8ae5efe1..92e524eb0c 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj @@ -1,13 +1,13 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 Web.Shopping.HttpAggregator Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator ..\..\..\docker-compose.dcproj false true - $(LangVersion) + preview @@ -23,11 +23,11 @@ - + - + diff --git a/src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj b/src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj index 0679c99a6b..1db0dce7dd 100644 --- a/src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj +++ b/src/BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj @@ -4,7 +4,7 @@ netstandard2.0 - + diff --git a/src/BuildingBlocks/EventBus/EventBus.Tests/EventBus.Tests.csproj b/src/BuildingBlocks/EventBus/EventBus.Tests/EventBus.Tests.csproj index 1d3f2bc0f7..a05d5157d0 100644 --- a/src/BuildingBlocks/EventBus/EventBus.Tests/EventBus.Tests.csproj +++ b/src/BuildingBlocks/EventBus/EventBus.Tests/EventBus.Tests.csproj @@ -1,13 +1,13 @@  - $(NetStandardTargetVersion) + netstandard2.1 - - - + + + diff --git a/src/BuildingBlocks/EventBus/EventBus/EventBus.csproj b/src/BuildingBlocks/EventBus/EventBus/EventBus.csproj index 53d0a36a26..e074546502 100644 --- a/src/BuildingBlocks/EventBus/EventBus/EventBus.csproj +++ b/src/BuildingBlocks/EventBus/EventBus/EventBus.csproj @@ -1,7 +1,7 @@  - $(NetStandardTargetVersion) + netstandard2.1 Microsoft.eShopOnContainers.BuildingBlocks.EventBus diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj index a6116abecf..6e13b21969 100644 --- a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj @@ -1,7 +1,7 @@  - $(NetStandardTargetVersion) + netstandard2.1 Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ diff --git a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj index 362bccf6c7..8f24578d5b 100644 --- a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj +++ b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj @@ -1,7 +1,7 @@  - $(NetStandardTargetVersion) + netstandard2.1 Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus diff --git a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj index 14b8670590..e009e08c31 100644 --- a/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj +++ b/src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj @@ -1,7 +1,7 @@  - $(NetStandardTargetVersion) + netstandard2.1 Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF diff --git a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj index 38ab6b2852..51567f38a8 100644 --- a/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj +++ b/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj @@ -1,12 +1,12 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 false - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index df260ed7e0..579be01df2 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -1,12 +1,12 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj false true - $(LangVersion) + preview @@ -28,17 +28,17 @@ - - + + - - + + - + diff --git a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj index 5e9e5c036f..e229bf4dca 100644 --- a/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj +++ b/src/Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj @@ -1,7 +1,7 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 false diff --git a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj index 92731fb9cc..cb4559f973 100644 --- a/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj +++ b/src/Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj @@ -1,16 +1,16 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 false false - + - + diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.csproj b/src/Services/Catalog/Catalog.API/Catalog.API.csproj index 662c55c083..2a08b699c8 100644 --- a/src/Services/Catalog/Catalog.API/Catalog.API.csproj +++ b/src/Services/Catalog/Catalog.API/Catalog.API.csproj @@ -1,7 +1,7 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 portable true Catalog.API @@ -10,7 +10,7 @@ ..\..\..\..\docker-compose.dcproj false true - $(LangVersion) + preview @@ -54,16 +54,16 @@ - + - - + + - + diff --git a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj index 5e7fcefbee..1a2079c499 100644 --- a/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj +++ b/src/Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj @@ -1,7 +1,7 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 false diff --git a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj index 44b5660c1c..0a097242ee 100644 --- a/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj +++ b/src/Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj @@ -1,14 +1,14 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 false false - - + + diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index f2e7bec58d..b70653cfb8 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -1,12 +1,12 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 aspnet-eShopOnContainers.Identity-90487118-103c-4ff0-b9da-e5e26f7ab0c5 ..\..\..\..\docker-compose.dcproj false true - $(LangVersion) + preview @@ -29,8 +29,8 @@ - - + + all @@ -43,12 +43,12 @@ - - + + - + diff --git a/src/Services/Location/Locations.API/Locations.API.csproj b/src/Services/Location/Locations.API/Locations.API.csproj index 4cbab433a9..10eb6b5b76 100644 --- a/src/Services/Location/Locations.API/Locations.API.csproj +++ b/src/Services/Location/Locations.API/Locations.API.csproj @@ -1,12 +1,12 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 ..\..\..\..\docker-compose.dcproj aspnet-Locations.API-20161122013619 false true - $(LangVersion) + preview @@ -19,20 +19,20 @@ - - + + - - + + - + diff --git a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj index 1e3e15e8ad..742e2d409c 100644 --- a/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj +++ b/src/Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj @@ -1,7 +1,7 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 false false diff --git a/src/Services/Marketing/Marketing.API/Marketing.API.csproj b/src/Services/Marketing/Marketing.API/Marketing.API.csproj index 497cefa4a8..56d685e61b 100644 --- a/src/Services/Marketing/Marketing.API/Marketing.API.csproj +++ b/src/Services/Marketing/Marketing.API/Marketing.API.csproj @@ -1,7 +1,7 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 ..\..\..\..\docker-compose.dcproj Microsoft.eShopOnContainers.Services.Marketing.API $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -11,7 +11,7 @@ /subscriptions/6c22bb55-0221-4ce4-9bf1-3c4a10a7294c/resourcegroups/eshop-log/providers/microsoft.insights/components/eshopappinsights /subscriptions/6c22bb55-0221-4ce4-9bf1-3c4a10a7294c/resourcegroups/eshop-log/providers/microsoft.insights/components/eshopappinsights - $(LangVersion) + preview @@ -35,20 +35,20 @@ - - + + - - + + - + diff --git a/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj b/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj index 9f51dfbbc1..6d7d6ff140 100644 --- a/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj +++ b/src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj @@ -1,7 +1,7 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 false diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index e3e5c8767c..49688e07dc 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -1,13 +1,13 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 aspnet-Ordering.API-20161122013547 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\..\docker-compose.dcproj false true - $(LangVersion) + preview @@ -53,20 +53,20 @@ - - + + - - + + - + diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj index 5e9a6eb83a..7eed9b1177 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj @@ -1,11 +1,11 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 dotnet-Ordering.BackgroundTasks-9D3E1DD6-405B-447F-8AAB-1708B36D260E false Linux - $(LangVersion) + preview @@ -16,14 +16,14 @@ - - - - + + + + - - + + diff --git a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj index 0574427f03..05ae14ea0b 100644 --- a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj +++ b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj @@ -1,7 +1,7 @@  - $(NetStandardTargetVersion) + netstandard2.1 diff --git a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj index 05668125f4..119f728637 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj +++ b/src/Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj @@ -1,7 +1,7 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 false diff --git a/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj b/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj index 22bfb2a56b..a83c6d2ffd 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj +++ b/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj @@ -1,7 +1,7 @@  - $(NetStandardTargetVersion) + netstandard2.1 diff --git a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj index feaeae4b27..315cf6edfc 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj +++ b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj @@ -1,11 +1,11 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 ..\..\..\..\docker-compose.dcproj false true - $(LangVersion) + preview @@ -21,15 +21,15 @@ - + - - - + + + - - + + diff --git a/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj b/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj index 5b7ed2060c..69bc989a08 100644 --- a/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj +++ b/src/Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj @@ -1,15 +1,15 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 false false - - + + diff --git a/src/Services/Payment/Payment.API/Payment.API.csproj b/src/Services/Payment/Payment.API/Payment.API.csproj index 497349a666..48aa651027 100644 --- a/src/Services/Payment/Payment.API/Payment.API.csproj +++ b/src/Services/Payment/Payment.API/Payment.API.csproj @@ -1,12 +1,12 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 ..\..\..\..\docker-compose.dcproj $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false true - $(LangVersion) + preview @@ -17,12 +17,12 @@ - + - - + + diff --git a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj index 1e9b44858d..dfbc5cb7b5 100644 --- a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj +++ b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj @@ -1,13 +1,13 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 InProcess Linux $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false true - $(LangVersion) + preview @@ -18,11 +18,11 @@ - - + + - + diff --git a/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj b/src/Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj similarity index 81% rename from test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj rename to src/Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj index 96ef8f0464..0ce51e4131 100644 --- a/test/ServicesTests/Application.FunctionalTests/Application.FunctionalTests.csproj +++ b/src/Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj @@ -1,7 +1,7 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 true false false @@ -67,22 +67,22 @@ - - - - + + + + all runtime; build; native; contentfiles; analyzers - - - - - - + + + + + + diff --git a/test/ServicesTests/Application.FunctionalTests/Extensions/HttpClientExtensions.cs b/src/Tests/Services/Application.FunctionalTests/Extensions/HttpClientExtensions.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Extensions/HttpClientExtensions.cs rename to src/Tests/Services/Application.FunctionalTests/Extensions/HttpClientExtensions.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Middleware/AutoAuthorizeMiddleware.cs b/src/Tests/Services/Application.FunctionalTests/Middleware/AutoAuthorizeMiddleware.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Middleware/AutoAuthorizeMiddleware.cs rename to src/Tests/Services/Application.FunctionalTests/Middleware/AutoAuthorizeMiddleware.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Basket/BasketScenariosBase.cs b/src/Tests/Services/Application.FunctionalTests/Services/Basket/BasketScenariosBase.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Basket/BasketScenariosBase.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Basket/BasketScenariosBase.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Basket/BasketTestsStartup.cs b/src/Tests/Services/Application.FunctionalTests/Services/Basket/BasketTestsStartup.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Basket/BasketTestsStartup.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Basket/BasketTestsStartup.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Basket/appsettings.json b/src/Tests/Services/Application.FunctionalTests/Services/Basket/appsettings.json similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Basket/appsettings.json rename to src/Tests/Services/Application.FunctionalTests/Services/Basket/appsettings.json diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Catalog/CatalogScenariosBase.cs b/src/Tests/Services/Application.FunctionalTests/Services/Catalog/CatalogScenariosBase.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Catalog/CatalogScenariosBase.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Catalog/CatalogScenariosBase.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Catalog/appsettings.json b/src/Tests/Services/Application.FunctionalTests/Services/Catalog/appsettings.json similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Catalog/appsettings.json rename to src/Tests/Services/Application.FunctionalTests/Services/Catalog/appsettings.json diff --git a/test/ServicesTests/Application.FunctionalTests/Services/IntegrationEventsScenarios.cs b/src/Tests/Services/Application.FunctionalTests/Services/IntegrationEventsScenarios.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/IntegrationEventsScenarios.cs rename to src/Tests/Services/Application.FunctionalTests/Services/IntegrationEventsScenarios.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Location/LocationsScenariosBase.cs b/src/Tests/Services/Application.FunctionalTests/Services/Location/LocationsScenariosBase.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Location/LocationsScenariosBase.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Location/LocationsScenariosBase.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Location/LocationsTestsStartup.cs b/src/Tests/Services/Application.FunctionalTests/Services/Location/LocationsTestsStartup.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Location/LocationsTestsStartup.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Location/LocationsTestsStartup.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Location/appsettings.json b/src/Tests/Services/Application.FunctionalTests/Services/Location/appsettings.json similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Location/appsettings.json rename to src/Tests/Services/Application.FunctionalTests/Services/Location/appsettings.json diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Marketing/CampaignScenariosBase.cs b/src/Tests/Services/Application.FunctionalTests/Services/Marketing/CampaignScenariosBase.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Marketing/CampaignScenariosBase.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Marketing/CampaignScenariosBase.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Marketing/MarketingScenarios.cs b/src/Tests/Services/Application.FunctionalTests/Services/Marketing/MarketingScenarios.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Marketing/MarketingScenarios.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Marketing/MarketingScenarios.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Marketing/MarketingScenariosBase.cs b/src/Tests/Services/Application.FunctionalTests/Services/Marketing/MarketingScenariosBase.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Marketing/MarketingScenariosBase.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Marketing/MarketingScenariosBase.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Marketing/MarketingTestsStartup.cs b/src/Tests/Services/Application.FunctionalTests/Services/Marketing/MarketingTestsStartup.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Marketing/MarketingTestsStartup.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Marketing/MarketingTestsStartup.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Marketing/UserLocationRoleScenariosBase.cs b/src/Tests/Services/Application.FunctionalTests/Services/Marketing/UserLocationRoleScenariosBase.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Marketing/UserLocationRoleScenariosBase.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Marketing/UserLocationRoleScenariosBase.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Marketing/appsettings.json b/src/Tests/Services/Application.FunctionalTests/Services/Marketing/appsettings.json similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Marketing/appsettings.json rename to src/Tests/Services/Application.FunctionalTests/Services/Marketing/appsettings.json diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Ordering/OrderingScenarios.cs b/src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingScenarios.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Ordering/OrderingScenarios.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingScenarios.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Ordering/OrderingScenariosBase.cs b/src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingScenariosBase.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Ordering/OrderingScenariosBase.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingScenariosBase.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Ordering/OrderingTestsStartup.cs b/src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingTestsStartup.cs similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Ordering/OrderingTestsStartup.cs rename to src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingTestsStartup.cs diff --git a/test/ServicesTests/Application.FunctionalTests/Services/Ordering/appsettings.json b/src/Tests/Services/Application.FunctionalTests/Services/Ordering/appsettings.json similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Services/Ordering/appsettings.json rename to src/Tests/Services/Application.FunctionalTests/Services/Ordering/appsettings.json diff --git a/test/ServicesTests/Application.FunctionalTests/Setup/CatalogBrands.csv b/src/Tests/Services/Application.FunctionalTests/Setup/CatalogBrands.csv similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Setup/CatalogBrands.csv rename to src/Tests/Services/Application.FunctionalTests/Setup/CatalogBrands.csv diff --git a/test/ServicesTests/Application.FunctionalTests/Setup/CatalogItems.csv b/src/Tests/Services/Application.FunctionalTests/Setup/CatalogItems.csv similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Setup/CatalogItems.csv rename to src/Tests/Services/Application.FunctionalTests/Setup/CatalogItems.csv diff --git a/test/ServicesTests/Application.FunctionalTests/Setup/CatalogItems.zip b/src/Tests/Services/Application.FunctionalTests/Setup/CatalogItems.zip similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Setup/CatalogItems.zip rename to src/Tests/Services/Application.FunctionalTests/Setup/CatalogItems.zip diff --git a/test/ServicesTests/Application.FunctionalTests/Setup/CatalogTypes.csv b/src/Tests/Services/Application.FunctionalTests/Setup/CatalogTypes.csv similarity index 100% rename from test/ServicesTests/Application.FunctionalTests/Setup/CatalogTypes.csv rename to src/Tests/Services/Application.FunctionalTests/Setup/CatalogTypes.csv diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj index f6d02d0cdb..bdbb299247 100644 --- a/src/Web/WebMVC/WebMVC.csproj +++ b/src/Web/WebMVC/WebMVC.csproj @@ -1,13 +1,13 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 aspnet-Microsoft.eShopOnContainers-946ae052-8305-4a99-965b-ec8636ddbae3 ..\..\..\docker-compose.dcproj 3.0 false true - $(LangVersion) + preview @@ -22,7 +22,7 @@ - + @@ -32,14 +32,14 @@ - - + + - - + + diff --git a/src/Web/WebSPA/WebSPA.csproj b/src/Web/WebSPA/WebSPA.csproj index a3b2470865..baefec967e 100644 --- a/src/Web/WebSPA/WebSPA.csproj +++ b/src/Web/WebSPA/WebSPA.csproj @@ -1,7 +1,7 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 aspnetcorespa-c23d27a4-eb88-4b18-9b77-2a93f3b15119 ..\..\..\docker-compose.dcproj false @@ -10,7 +10,7 @@ wwwroot/dist/** $(DefaultItemExcludes);$(GeneratedItemPatterns) 2.9 - $(LangVersion) + preview @@ -93,7 +93,7 @@ - + diff --git a/src/Web/WebStatus/WebStatus.csproj b/src/Web/WebStatus/WebStatus.csproj index 7ddadb6f2e..39d4544738 100644 --- a/src/Web/WebStatus/WebStatus.csproj +++ b/src/Web/WebStatus/WebStatus.csproj @@ -1,10 +1,10 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; ..\..\..\docker-compose.dcproj true - $(LangVersion) + preview @@ -14,13 +14,13 @@ - + - - + + diff --git a/src/Web/WebhookClient/WebhookClient.csproj b/src/Web/WebhookClient/WebhookClient.csproj index 95f4b79e8f..7c67bced2c 100644 --- a/src/Web/WebhookClient/WebhookClient.csproj +++ b/src/Web/WebhookClient/WebhookClient.csproj @@ -1,18 +1,18 @@  - $(NetCoreTargetVersion) + netcoreapp3.0 InProcess Linux 36215d41-f31a-4aa6-9929-bd67d650e7b5 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false true - $(LangVersion) + preview - + diff --git a/src/eShopOnContainers-ServicesAndWebApps.sln b/src/eShopOnContainers-ServicesAndWebApps.sln index c41d22d921..08dd3e6561 100644 --- a/src/eShopOnContainers-ServicesAndWebApps.sln +++ b/src/eShopOnContainers-ServicesAndWebApps.sln @@ -24,9 +24,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Basket", "Basket", "{BF3EF4 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Ordering", "Ordering", "{0BD0DB92-2D98-44D9-9AC0-C59186D59B0B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{A857AD10-40FF-4303-BEC2-FF1C58D5735E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A857AD10-40FF-4303-BEC2-FF1C58D5735E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ServicesTests", "ServicesTests", "{EF0337F2-ED00-4643-89FD-EE10863F1870}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ServiceTests", "ServiceTests", "{EF0337F2-ED00-4643-89FD-EE10863F1870}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Identity", "Identity", "{24CD3B53-141E-4A07-9B0D-796641E1CF78}" EndProject @@ -116,7 +116,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.FunctionalTests", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Marketing.FunctionalTests", "Services\Marketing\Marketing.FunctionalTests\Marketing.FunctionalTests.csproj", "{94176D9B-9CAA-4762-8D12-1621E240EE34}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Application.FunctionalTests", "test\ServicesTests\Application.FunctionalTests\Application.FunctionalTests.csproj", "{639BB197-D112-47A7-A44A-471DDB0FA1AE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Application.FunctionalTests", "Tests\Services\Application.FunctionalTests\Application.FunctionalTests.csproj", "{639BB197-D112-47A7-A44A-471DDB0FA1AE}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{2751AC5C-D148-4D7A-AE8F-149B47C9A82D}" EndProject From 593be81bb01847c3d5024d6d6958c07eca2008d5 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Mon, 18 Nov 2019 15:04:11 +0000 Subject: [PATCH 130/149] Improve docker build cache usage --- src/.dockerignore | 23 ++------- .../Mobile.Bff.Shopping/aggregator/Dockerfile | 44 +++++++++++++++++- .../Web.Bff.Shopping/aggregator/Dockerfile | 44 +++++++++++++++++- src/DockerfileSolutionProjects.txt | Bin 0 -> 9084 bytes src/Get-DockerfileSolutionProjects.ps1 | 18 +++++++ src/Services/Basket/Basket.API/Dockerfile | 44 +++++++++++++++++- src/Services/Catalog/Catalog.API/Dockerfile | 44 +++++++++++++++++- src/Services/Identity/Identity.API/Dockerfile | 44 +++++++++++++++++- .../Location/Locations.API/Dockerfile | 44 +++++++++++++++++- .../Marketing/Marketing.API/Dockerfile | 44 +++++++++++++++++- src/Services/Ordering/Ordering.API/Dockerfile | 44 +++++++++++++++++- .../Ordering.BackgroundTasks/Dockerfile | 43 ++++++++++++++++- .../Ordering/Ordering.SignalrHub/Dockerfile | 44 +++++++++++++++++- src/Services/Payment/Payment.API/Dockerfile | 44 +++++++++++++++++- src/Services/Webhooks/Webhooks.API/Dockerfile | 44 +++++++++++++++++- src/Web/WebMVC/Dockerfile | 44 +++++++++++++++++- src/Web/WebSPA/Dockerfile | 44 +++++++++++++++++- src/Web/WebStatus/Dockerfile | 42 ++++++++++++++++- src/Web/WebhookClient/Dockerfile | 44 +++++++++++++++++- 19 files changed, 707 insertions(+), 35 deletions(-) create mode 100644 src/DockerfileSolutionProjects.txt create mode 100644 src/Get-DockerfileSolutionProjects.ps1 diff --git a/src/.dockerignore b/src/.dockerignore index 077c2c71e0..2cec0e7b04 100644 --- a/src/.dockerignore +++ b/src/.dockerignore @@ -9,31 +9,16 @@ docker-compose*.yml hosts LICENSE *.testsettings -vsts-docs -ServiceFabric -readme -k8s -img -docs -deploy -Components -cli-windows -cli-mac -cli-linux **/bin/ **/obj/ **/node_modules/ **/bower_components/ -**/wwwroot/lib/* +**/wwwroot/lib/ global.json **/appsettings.localhost.json -src/Web/WebSPA/wwwroot/ +Web/WebSPA/wwwroot/ packages/ -csproj-files/ test-results/ TestResults/ -src/Mobile/ -src/Web/Catalog.WebForms/ -src/Web/WebMonolithic/ -src/BuildingBlocks/CommandBus/ -src/Services/Marketing/Infrastructure/ \ No newline at end of file +Mobile/ +Services/Marketing/Infrastructure/ \ No newline at end of file diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile index 0a75d7b652..1f5c775732 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile @@ -5,9 +5,51 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/ApiGateways/Mobile.Bff.Shopping/aggregator -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build AS publish diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile index e6035ec148..b449be5b1e 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile @@ -5,9 +5,51 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/ApiGateways/Web.Bff.Shopping/aggregator -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build AS publish diff --git a/src/DockerfileSolutionProjects.txt b/src/DockerfileSolutionProjects.txt new file mode 100644 index 0000000000000000000000000000000000000000..006f664d87e72d6ca8af9e919471f54cbb415ce1 GIT binary patch literal 9084 zcmd5?+fv&w5Z&j_^dA`BvA=|Al&eOK*rjP3&xYN$-I+2bN#>egcY=&fvv0TJBJr(1>pF zmpuE)IxAX0Zi@d4cs9p>?qiLz)UMd6v=TajWDd)Rigp5qGPG^b*N>8m*N?IRm zGg|4r9G8`a(6O%ch9Q&ujc9A4Z&pUy2$8r(Wc)PId4za-G*L1w=M%@~7E$wHA}~h` z`en38`yY10e18Ye=a_vtX64qf;janz)Zb@HQbt;d?bj7D%(cl%Ir7s-jIl%@B_txw z*6tCOJ^F3BKjxnb3anGbkg z;Q1Jl)L&Mj+=a9L)`lPp17rI0g>a`j-FW37pKaLSOE3C>n;)dtj6f5^9c+62HIY=<~ zT++k+cK0vYc1ue%!+81(ZkFJrn;Tm~BH-K;76*2pk^@^pTJ`%qHu-`_o-=HU48doE z>bZ_}yZT)T=kW}&vMKjK)h&`;S4T{Do3yR36Sh9zPe}~B*o)_@n`0fXTPH3z zZd)<%`MJD6)Nm%>wYtFY@l;&z2x#T56ebtg9qA}sJ5-KlI#o=v&nYJkJ05*8*v&HSL zhD?)_h<4{m>wQ-gad^?r9&*GJvZdm2V)v~vVoON`em*WSYo3sGi!)G)TdwAFy=Lq6 z(w-g#ZQY?Z{5};okNnPeUA~c$HML(|E&V)`+SToAZ9CkO^sjjXW#1+hZ>R4tlbfeJ z->D_ViI3mLh3aXnyk>lo%VNCbD2)vd)eLBlX|ql9K5mb0yl3nMxkCxl+ z1X3UVx7$a{XP0j!bF53edoGxsn48L?t`CN=9vF|rG(#5QT|J*|4p8DfD!<3h zP?O-ybAzYmuOUL@HGAjq_dWW~(K}n?y$!F^`{s8i-K|w$S6G?OA $outfile + +Add-Content -Path $outfile "" +Select-String -Path $solution -Pattern ', "(.*?\.csproj)"' | ForEach-Object { $_.Matches.Groups[1].Value.Replace("\", "/") } | Sort-Object | ForEach-Object {"COPY ""$_"" ""$_"""} | Out-File -FilePath $outfile -Append +Add-Content -Path $outfile "" +Select-String -Path $solution -Pattern ', "(.*?\.dcproj)"' | ForEach-Object { $_.Matches.Groups[1].Value.Replace("\", "/") } | Sort-Object | ForEach-Object {"COPY ""$_"" ""$_"""} | Out-File -FilePath $outfile -Append +Add-Content -Path $outfile "" +Add-Content -Path $outfile "COPY ""NuGet.config"" ""NuGet.config""" +Add-Content -Path $outfile "" +Add-Content -Path $outfile "RUN dotnet restore ""$solution""" + +Get-Content $outfile diff --git a/src/Services/Basket/Basket.API/Dockerfile b/src/Services/Basket/Basket.API/Dockerfile index 6c7bac8f6c..9a068d83e9 100644 --- a/src/Services/Basket/Basket.API/Dockerfile +++ b/src/Services/Basket/Basket.API/Dockerfile @@ -5,9 +5,51 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/Services/Basket/Basket.API -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build as unittest WORKDIR /src/Services/Basket/Basket.UnitTests diff --git a/src/Services/Catalog/Catalog.API/Dockerfile b/src/Services/Catalog/Catalog.API/Dockerfile index b1a9fdba29..4c227b11a0 100644 --- a/src/Services/Catalog/Catalog.API/Dockerfile +++ b/src/Services/Catalog/Catalog.API/Dockerfile @@ -6,9 +6,51 @@ EXPOSE 443 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/Services/Catalog/Catalog.API -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build as unittest WORKDIR /src/Services/Catalog/Catalog.UnitTests diff --git a/src/Services/Identity/Identity.API/Dockerfile b/src/Services/Identity/Identity.API/Dockerfile index 129420dfef..a292540ed9 100644 --- a/src/Services/Identity/Identity.API/Dockerfile +++ b/src/Services/Identity/Identity.API/Dockerfile @@ -5,9 +5,51 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/Services/Identity/Identity.API -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build AS publish diff --git a/src/Services/Location/Locations.API/Dockerfile b/src/Services/Location/Locations.API/Dockerfile index 2a1986717d..f10437db65 100644 --- a/src/Services/Location/Locations.API/Dockerfile +++ b/src/Services/Location/Locations.API/Dockerfile @@ -5,9 +5,51 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/Services/Location/Locations.API -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build as functionaltest WORKDIR /src/Services/Location/Locations.FunctionalTests diff --git a/src/Services/Marketing/Marketing.API/Dockerfile b/src/Services/Marketing/Marketing.API/Dockerfile index 2ec76fd164..cd249e94e4 100644 --- a/src/Services/Marketing/Marketing.API/Dockerfile +++ b/src/Services/Marketing/Marketing.API/Dockerfile @@ -5,9 +5,51 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/Services/Marketing/Marketing.API -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build as functionaltest WORKDIR /src/Services/Marketing/Marketing.FunctionalTests diff --git a/src/Services/Ordering/Ordering.API/Dockerfile b/src/Services/Ordering/Ordering.API/Dockerfile index 1858c9a2e4..62894ce9f4 100644 --- a/src/Services/Ordering/Ordering.API/Dockerfile +++ b/src/Services/Ordering/Ordering.API/Dockerfile @@ -5,9 +5,51 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/Services/Ordering/Ordering.API -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build as unittest WORKDIR /src/Services/Ordering/Ordering.UnitTests diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile index 613185101b..c21192a89c 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile @@ -5,10 +5,51 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" COPY . . WORKDIR /src/Services/Ordering/Ordering.BackgroundTasks -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build AS publish diff --git a/src/Services/Ordering/Ordering.SignalrHub/Dockerfile b/src/Services/Ordering/Ordering.SignalrHub/Dockerfile index 28b18abe86..b684c30272 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Dockerfile +++ b/src/Services/Ordering/Ordering.SignalrHub/Dockerfile @@ -5,9 +5,51 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/Services/Ordering/Ordering.SignalrHub -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build AS publish diff --git a/src/Services/Payment/Payment.API/Dockerfile b/src/Services/Payment/Payment.API/Dockerfile index 69b6efa071..08115ed21a 100644 --- a/src/Services/Payment/Payment.API/Dockerfile +++ b/src/Services/Payment/Payment.API/Dockerfile @@ -5,9 +5,51 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/Services/Payment/Payment.API -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build AS publish diff --git a/src/Services/Webhooks/Webhooks.API/Dockerfile b/src/Services/Webhooks/Webhooks.API/Dockerfile index 6f6813fbe4..5e6c37b7d7 100644 --- a/src/Services/Webhooks/Webhooks.API/Dockerfile +++ b/src/Services/Webhooks/Webhooks.API/Dockerfile @@ -5,9 +5,51 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/Services/Webhooks/Webhooks.API -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build AS publish diff --git a/src/Web/WebMVC/Dockerfile b/src/Web/WebMVC/Dockerfile index 0027b1749e..60a2ff5ad8 100644 --- a/src/Web/WebMVC/Dockerfile +++ b/src/Web/WebMVC/Dockerfile @@ -5,9 +5,51 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/Web/WebMVC -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build AS publish diff --git a/src/Web/WebSPA/Dockerfile b/src/Web/WebSPA/Dockerfile index 99141bba61..acb039fe73 100644 --- a/src/Web/WebSPA/Dockerfile +++ b/src/Web/WebSPA/Dockerfile @@ -14,10 +14,52 @@ RUN npm run build:prod FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . COPY --from=node-build /web/wwwroot /src/Web/WebSPA/wwwroot/ WORKDIR /src/Web/WebSPA -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build AS publish diff --git a/src/Web/WebStatus/Dockerfile b/src/Web/WebStatus/Dockerfile index 89b03b5f29..b027268ba7 100644 --- a/src/Web/WebStatus/Dockerfile +++ b/src/Web/WebStatus/Dockerfile @@ -5,10 +5,50 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" COPY . . WORKDIR /src/Web/WebStatus -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build AS publish diff --git a/src/Web/WebhookClient/Dockerfile b/src/Web/WebhookClient/Dockerfile index 2fc4ef1471..bce6a4f543 100644 --- a/src/Web/WebhookClient/Dockerfile +++ b/src/Web/WebhookClient/Dockerfile @@ -6,9 +6,51 @@ EXPOSE 443 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src +COPY "eShopOnContainers-ServicesAndWebApps.sln" "eShopOnContainers-ServicesAndWebApps.sln" + +COPY "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" "ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj" +COPY "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" "ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj" +COPY "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" "BuildingBlocks/Devspaces.Support/Devspaces.Support.csproj" +COPY "BuildingBlocks/EventBus/EventBus/EventBus.csproj" "BuildingBlocks/EventBus/EventBus/EventBus.csproj" +COPY "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" "BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj" +COPY "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" "BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj" +COPY "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" "BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj" +COPY "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" "BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj" +COPY "Services/Basket/Basket.API/Basket.API.csproj" "Services/Basket/Basket.API/Basket.API.csproj" +COPY "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" "Services/Basket/Basket.FunctionalTests/Basket.FunctionalTests.csproj" +COPY "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" "Services/Basket/Basket.UnitTests/Basket.UnitTests.csproj" +COPY "Services/Catalog/Catalog.API/Catalog.API.csproj" "Services/Catalog/Catalog.API/Catalog.API.csproj" +COPY "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" "Services/Catalog/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj" +COPY "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" "Services/Catalog/Catalog.UnitTests/Catalog.UnitTests.csproj" +COPY "Services/Identity/Identity.API/Identity.API.csproj" "Services/Identity/Identity.API/Identity.API.csproj" +COPY "Services/Location/Locations.API/Locations.API.csproj" "Services/Location/Locations.API/Locations.API.csproj" +COPY "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" "Services/Location/Locations.FunctionalTests/Locations.FunctionalTests.csproj" +COPY "Services/Marketing/Marketing.API/Marketing.API.csproj" "Services/Marketing/Marketing.API/Marketing.API.csproj" +COPY "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" "Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.API/Ordering.API.csproj" "Services/Ordering/Ordering.API/Ordering.API.csproj" +COPY "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" "Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj" +COPY "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" "Services/Ordering/Ordering.Domain/Ordering.Domain.csproj" +COPY "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" "Services/Ordering/Ordering.FunctionalTests/Ordering.FunctionalTests.csproj" +COPY "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" "Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj" +COPY "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" "Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj" +COPY "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" "Services/Ordering/Ordering.UnitTests/Ordering.UnitTests.csproj" +COPY "Services/Payment/Payment.API/Payment.API.csproj" "Services/Payment/Payment.API/Payment.API.csproj" +COPY "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" "Services/Webhooks/Webhooks.API/Webhooks.API.csproj" +COPY "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" "Tests/Services/Application.FunctionalTests/Application.FunctionalTests.csproj" +COPY "Web/WebhookClient/WebhookClient.csproj" "Web/WebhookClient/WebhookClient.csproj" +COPY "Web/WebMVC/WebMVC.csproj" "Web/WebMVC/WebMVC.csproj" +COPY "Web/WebSPA/WebSPA.csproj" "Web/WebSPA/WebSPA.csproj" +COPY "Web/WebStatus/WebStatus.csproj" "Web/WebStatus/WebStatus.csproj" + +COPY "docker-compose.dcproj" "docker-compose.dcproj" + +COPY "NuGet.config" "NuGet.config" + +RUN dotnet restore "eShopOnContainers-ServicesAndWebApps.sln" + COPY . . WORKDIR /src/Web/WebhookClient -RUN dotnet publish -c Release -o /app +RUN dotnet publish --no-restore -c Release -o /app FROM build AS publish From 8734958e5e71e24858f39844642e34bc8f6bcda9 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Mon, 18 Nov 2019 18:31:34 +0000 Subject: [PATCH 131/149] Add IdentityUrlExternal config in appsettings --- src/Services/Basket/Basket.FunctionalTests/appsettings.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Services/Basket/Basket.FunctionalTests/appsettings.json b/src/Services/Basket/Basket.FunctionalTests/appsettings.json index 3f882d1bc3..8b9ec4d3c7 100644 --- a/src/Services/Basket/Basket.FunctionalTests/appsettings.json +++ b/src/Services/Basket/Basket.FunctionalTests/appsettings.json @@ -8,9 +8,10 @@ } }, "IdentityUrl": "http://localhost:5105", + "IdentityUrlExternal": "http://localhost:5105", "ConnectionString": "127.0.0.1", "isTest": "true", "EventBusConnection": "localhost", "SubscriptionClientName": "Basket", - "SuppressCheckForUnhandledSecurityMetadata":true + "SuppressCheckForUnhandledSecurityMetadata": true } From 4b48468d6a14d4321b943f7b461c1e470c84c488 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Mon, 18 Nov 2019 18:32:54 +0000 Subject: [PATCH 132/149] Fix tests compilation errors --- .../Services/Catalog/CatalogScenariosBase.cs | 2 +- .../Services/IntegrationEventsScenarios.cs | 8 ++++---- .../Services/Ordering/OrderingScenarios.cs | 2 +- .../Services/Ordering/OrderingScenariosBase.cs | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Tests/Services/Application.FunctionalTests/Services/Catalog/CatalogScenariosBase.cs b/src/Tests/Services/Application.FunctionalTests/Services/Catalog/CatalogScenariosBase.cs index 3ce419230a..ffaef64a39 100644 --- a/src/Tests/Services/Application.FunctionalTests/Services/Catalog/CatalogScenariosBase.cs +++ b/src/Tests/Services/Application.FunctionalTests/Services/Catalog/CatalogScenariosBase.cs @@ -33,7 +33,7 @@ public TestServer CreateServer() testServer.Host .MigrateDbContext((context, services) => { - var env = services.GetService(); + var env = services.GetService(); var settings = services.GetService>(); var logger = services.GetService>(); diff --git a/src/Tests/Services/Application.FunctionalTests/Services/IntegrationEventsScenarios.cs b/src/Tests/Services/Application.FunctionalTests/Services/IntegrationEventsScenarios.cs index fd270d159e..dd6eef99a7 100644 --- a/src/Tests/Services/Application.FunctionalTests/Services/IntegrationEventsScenarios.cs +++ b/src/Tests/Services/Application.FunctionalTests/Services/IntegrationEventsScenarios.cs @@ -56,7 +56,7 @@ public async Task Post_update_product_price_and_catalog_and_basket_list_modified else { //THEN the product price changes in the catalog - Assert.Equal(newPrice, modifiedCatalogProducts.Data.Single(it => it.Id == int.Parse(itemToModify.ProductId)).Price); + Assert.Equal(newPrice, modifiedCatalogProducts.Data.Single(it => it.Id == itemToModify.ProductId).Price); // AND the products in the basket reflects the changed priced and the original price Assert.Equal(newPrice, itemUpdated.UnitPrice); @@ -65,7 +65,7 @@ public async Task Post_update_product_price_and_catalog_and_basket_list_modified } } - private async Task GetUpdatedBasketItem(decimal newPrice, string productId, string userId, HttpClient basketClient) + private async Task GetUpdatedBasketItem(decimal newPrice, int productId, string userId, HttpClient basketClient) { bool continueLoop = true; var counter = 0; @@ -102,7 +102,7 @@ private async Task> GetCatalogAsync(HttpCl private string ChangePrice(BasketItem itemToModify, decimal newPrice, PaginatedItemsViewModel catalogProducts) { - var catalogProduct = catalogProducts.Data.Single(pr => pr.Id == int.Parse(itemToModify.ProductId)); + var catalogProduct = catalogProducts.Data.Single(pr => pr.Id == itemToModify.ProductId); catalogProduct.Price = newPrice; return JsonConvert.SerializeObject(catalogProduct); } @@ -117,7 +117,7 @@ private CustomerBasket ComposeBasket(string customerId, IEnumerable Id = Guid.NewGuid().ToString(), UnitPrice = item.Price, PictureUrl = item.PictureUri, - ProductId = item.Id.ToString(), + ProductId = item.Id, OldUnitPrice = 0, ProductName = item.Name, Quantity = 1 diff --git a/src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingScenarios.cs b/src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingScenarios.cs index 179717583b..cb1fc25263 100644 --- a/src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingScenarios.cs +++ b/src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingScenarios.cs @@ -104,7 +104,7 @@ string BuildBasket() { Id = "1", ProductName = "ProductName", - ProductId = "1", + ProductId = 1, UnitPrice = 10, Quantity = 1 } diff --git a/src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingScenariosBase.cs b/src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingScenariosBase.cs index ad5230fcd3..487e435d21 100644 --- a/src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingScenariosBase.cs +++ b/src/Tests/Services/Application.FunctionalTests/Services/Ordering/OrderingScenariosBase.cs @@ -33,7 +33,7 @@ public TestServer CreateServer() testServer.Host .MigrateDbContext((context, services) => { - var env = services.GetService(); + var env = services.GetService(); var settings = services.GetService>(); var logger = services.GetService>(); From 3adb63aba5926b6cc2ae69b2be7f0dba90cc35bf Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Mon, 18 Nov 2019 18:38:35 +0000 Subject: [PATCH 133/149] Run unit and integration tests from VS --- ...1 => Create-DockerfileSolutionRestore.ps1} | 2 +- ...ects.txt => DockerfileSolutionRestore.txt} | Bin src/docker-compose-tests.override.yml | 8 ++--- src/docker-compose-tests.yml | 30 +++++++++--------- src/docker-compose.yml | 20 ++++++------ src/run-test-infrastructure.ps1 | 1 + 6 files changed, 31 insertions(+), 30 deletions(-) rename src/{Get-DockerfileSolutionProjects.ps1 => Create-DockerfileSolutionRestore.ps1} (95%) rename src/{DockerfileSolutionProjects.txt => DockerfileSolutionRestore.txt} (100%) create mode 100644 src/run-test-infrastructure.ps1 diff --git a/src/Get-DockerfileSolutionProjects.ps1 b/src/Create-DockerfileSolutionRestore.ps1 similarity index 95% rename from src/Get-DockerfileSolutionProjects.ps1 rename to src/Create-DockerfileSolutionRestore.ps1 index fbb1c626e1..8c6714bd5c 100644 --- a/src/Get-DockerfileSolutionProjects.ps1 +++ b/src/Create-DockerfileSolutionRestore.ps1 @@ -2,7 +2,7 @@ param ( [string]$solution = "eShopOnContainers-ServicesAndWebApps.sln" ) -$outfile = "DockerfileSolutionProjects.txt" +$outfile = "DockerfileSolutionRestore.txt" Write-Output "COPY ""$solution"" ""$solution""" > $outfile diff --git a/src/DockerfileSolutionProjects.txt b/src/DockerfileSolutionRestore.txt similarity index 100% rename from src/DockerfileSolutionProjects.txt rename to src/DockerfileSolutionRestore.txt diff --git a/src/docker-compose-tests.override.yml b/src/docker-compose-tests.override.yml index cee5c6623f..35e8170daa 100644 --- a/src/docker-compose-tests.override.yml +++ b/src/docker-compose-tests.override.yml @@ -4,7 +4,7 @@ services: rabbitmq-test: ports: - "15672:15672" - - "5672:5672" + - "5672:5672" basket-data-test: ports: @@ -27,7 +27,7 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:80 - SpaClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5104 - XamarinCallback=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105/xamarincallback - - ConnectionString=${ESHOP_AZURE_IDENTITY_DB:-Server=sql-data-test;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word} + - ConnectionString=${ESHOP_AZURE_IDENTITY_DB:-Server=sql-data-test;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word} - MvcClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5100 - LocationApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5109 - MarketingApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5110 @@ -35,7 +35,7 @@ services: - OrderingApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5102 - MobileShoppingAggClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5120 - WebShoppingAggClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5121 - - UseCustomizationData=True + - UseCustomizationData=True - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} ports: @@ -179,7 +179,7 @@ services: - dotnet - test - --logger - - trx;LogFileName=/tests/ordering-unit-test-results.xml + - trx;LogFileName=/tests/ordering-unit-test-results.xml marketing-api-test: environment: diff --git a/src/docker-compose-tests.yml b/src/docker-compose-tests.yml index 440e3e5c00..13f1ddf46d 100644 --- a/src/docker-compose-tests.yml +++ b/src/docker-compose-tests.yml @@ -1,18 +1,18 @@ version: '3.4' services: - rabbitmq-test: - image: rabbitmq:3-management-alpine - - basket-data-test: - image: redis:alpine - sql-data-test: image: microsoft/mssql-server-linux:2017-latest nosql-data-test: image: mongo + basket-data-test: + image: redis:alpine + + rabbitmq-test: + image: rabbitmq:3-management-alpine + identity-api-test: image: ${REGISTRY:-eshop}/identity-api-test:${TAG:-latest} build: @@ -31,7 +31,7 @@ services: - basket-data-test - identity-api-test - rabbitmq-test - volumes: + volumes: - ${BUILD_ARTIFACTSTAGINGDIRECTORY:-./tests-results/}:/tests basket-api-unit-test: @@ -44,7 +44,7 @@ services: - basket-data-test - identity-api-test - rabbitmq-test - volumes: + volumes: - ${BUILD_ARTIFACTSTAGINGDIRECTORY:-./tests-results/}:/tests catalog-api-test: @@ -56,7 +56,7 @@ services: depends_on: - sql-data-test - rabbitmq-test - volumes: + volumes: - ${BUILD_ARTIFACTSTAGINGDIRECTORY:-./tests-results/}:/tests catalog-api-unit-test: @@ -68,7 +68,7 @@ services: depends_on: - sql-data-test - rabbitmq-test - volumes: + volumes: - ${BUILD_ARTIFACTSTAGINGDIRECTORY:-./tests-results/}:/tests ordering-api-test: @@ -80,7 +80,7 @@ services: depends_on: - sql-data-test - rabbitmq-test - volumes: + volumes: - ${BUILD_ARTIFACTSTAGINGDIRECTORY:-./tests-results/}:/tests ordering-api-unit-test: @@ -92,8 +92,8 @@ services: depends_on: - sql-data-test - rabbitmq-test - volumes: - - ${BUILD_ARTIFACTSTAGINGDIRECTORY:-./tests-results/}:/tests + volumes: + - ${BUILD_ARTIFACTSTAGINGDIRECTORY:-./tests-results/}:/tests marketing-api-test: image: ${REGISTRY:-eshop}/marketing-api-test:${TAG:-latest} @@ -106,7 +106,7 @@ services: - nosql-data-test - identity-api-test - rabbitmq-test - volumes: + volumes: - ${BUILD_ARTIFACTSTAGINGDIRECTORY:-./tests-results/}:/tests payment-api-test: @@ -126,5 +126,5 @@ services: depends_on: - nosql-data-test - rabbitmq-test - volumes: + volumes: - ${BUILD_ARTIFACTSTAGINGDIRECTORY:-./tests-results/}:/tests \ No newline at end of file diff --git a/src/docker-compose.yml b/src/docker-compose.yml index 97245790f1..65edc42f98 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -21,7 +21,7 @@ services: image: ${REGISTRY:-eshop}/identity.api:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: Services/Identity/Identity.API/Dockerfile + dockerfile: Services/Identity/Identity.API/Dockerfile depends_on: - sqldata @@ -29,7 +29,7 @@ services: image: ${REGISTRY:-eshop}/basket.api:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: Services/Basket/Basket.API/Dockerfile + dockerfile: Services/Basket/Basket.API/Dockerfile depends_on: - basketdata - identity-api @@ -48,7 +48,7 @@ services: image: ${REGISTRY:-eshop}/ordering.api:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: Services/Ordering/Ordering.API/Dockerfile + dockerfile: Services/Ordering/Ordering.API/Dockerfile depends_on: - sqldata - rabbitmq @@ -57,7 +57,7 @@ services: image: ${REGISTRY:-eshop}/ordering.backgroundtasks:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: Services/Ordering/Ordering.BackgroundTasks/Dockerfile + dockerfile: Services/Ordering/Ordering.BackgroundTasks/Dockerfile depends_on: - sqldata - rabbitmq @@ -66,7 +66,7 @@ services: image: ${REGISTRY:-eshop}/marketing.api:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: Services/Marketing/Marketing.API/Dockerfile + dockerfile: Services/Marketing/Marketing.API/Dockerfile depends_on: - sqldata - nosqldata @@ -79,7 +79,7 @@ services: context: . dockerfile: Services/Payment/Payment.API/Dockerfile depends_on: - - rabbitmq + - rabbitmq locations-api: image: ${REGISTRY:-eshop}/locations.api:${PLATFORM:-linux}-${TAG:-latest} @@ -96,7 +96,7 @@ services: context: . dockerfile: Services/Webhooks/Webhooks.API/Dockerfile depends_on: - - sqldata + - sqldata mobileshoppingapigw: image: envoyproxy/envoy:v1.11.1 @@ -159,7 +159,7 @@ services: image: ${REGISTRY:-eshop}/webspa:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: Web/WebSPA/Dockerfile + dockerfile: Web/WebSPA/Dockerfile args: NODE_IMAGE: ${NODE_IMAGE:-node:8.11} # depends_on: @@ -171,7 +171,7 @@ services: image: ${REGISTRY:-eshop}/webmvc:${PLATFORM:-linux}-${TAG:-latest} build: context: . - dockerfile: Web/WebMVC/Dockerfile + dockerfile: Web/WebMVC/Dockerfile depends_on: - webshoppingagg - webshoppingapigw @@ -183,7 +183,7 @@ services: context: . dockerfile: Web/WebhookClient/Dockerfile depends_on: - - webhooks-api + - webhooks-api webshoppingapigw: image: envoyproxy/envoy:v1.11.1 diff --git a/src/run-test-infrastructure.ps1 b/src/run-test-infrastructure.ps1 new file mode 100644 index 0000000000..156289511f --- /dev/null +++ b/src/run-test-infrastructure.ps1 @@ -0,0 +1 @@ +docker-compose -f .\docker-compose-tests.yml -f .\docker-compose-tests.override.yml up sql-data-test nosql-data-test basket-data-test rabbitmq-test identity-api-test payment-api-test From 37fdbf38e8fbbce65f8f20cc5a9b43e89fdd52c6 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Mon, 18 Nov 2019 20:14:54 +0000 Subject: [PATCH 134/149] Add required configuration --- .../Application.FunctionalTests/Services/Basket/appsettings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Tests/Services/Application.FunctionalTests/Services/Basket/appsettings.json b/src/Tests/Services/Application.FunctionalTests/Services/Basket/appsettings.json index 5e8dbc02e8..3ed325899f 100644 --- a/src/Tests/Services/Application.FunctionalTests/Services/Basket/appsettings.json +++ b/src/Tests/Services/Application.FunctionalTests/Services/Basket/appsettings.json @@ -8,6 +8,7 @@ } }, "IdentityUrl": "http://localhost:5105", + "IdentityUrlExternal": "http://localhost:5105", "ConnectionString": "127.0.0.1", "isTest": "true", "EventBusConnection": "localhost", From 285b0cebe410c22d102f26ab5cf1e35bdf87196b Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Wed, 20 Nov 2019 17:44:05 +0000 Subject: [PATCH 135/149] Fix to close issue #1162 --- .../IntegrationEvents/OrderingIntegrationEventService.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs index cb7ce55136..28cf08c4b2 100644 --- a/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs +++ b/src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs @@ -21,7 +21,6 @@ public class OrderingIntegrationEventService : IOrderingIntegrationEventService private readonly Func _integrationEventLogServiceFactory; private readonly IEventBus _eventBus; private readonly OrderingContext _orderingContext; - private readonly IntegrationEventLogContext _eventLogContext; private readonly IIntegrationEventLogService _eventLogService; private readonly ILogger _logger; @@ -32,7 +31,6 @@ public OrderingIntegrationEventService(IEventBus eventBus, ILogger logger) { _orderingContext = orderingContext ?? throw new ArgumentNullException(nameof(orderingContext)); - _eventLogContext = eventLogContext ?? throw new ArgumentNullException(nameof(eventLogContext)); _integrationEventLogServiceFactory = integrationEventLogServiceFactory ?? throw new ArgumentNullException(nameof(integrationEventLogServiceFactory)); _eventBus = eventBus ?? throw new ArgumentNullException(nameof(eventBus)); _eventLogService = _integrationEventLogServiceFactory(_orderingContext.Database.GetDbConnection()); From f39e0907d3fc312c84054f6f39f9948d99e9bd23 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Wed, 20 Nov 2019 18:36:38 +0000 Subject: [PATCH 136/149] Add configuration value for running in Mac --- src/.env | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/.env b/src/.env index 28a94504c0..260a546632 100644 --- a/src/.env +++ b/src/.env @@ -4,7 +4,12 @@ # The IP below should be swapped to your real IP or DNS name, like 192.168.88.248, etc. if testing from remote browsers or mobile devices +# Use this value to run the app locally in Windows/Linux ESHOP_EXTERNAL_DNS_NAME_OR_IP=localhost + +# Use this value to run the app locally in Mac +#ESHOP_EXTERNAL_DNS_NAME_OR_IP=docker.for.mac.localhost + ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP=10.121.122.162 #ESHOP_AZURE_REDIS_BASKET_DB= From b3a0c86e8f0c26acc078ff17dca74a05f653e9be Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Wed, 20 Nov 2019 19:02:01 +0000 Subject: [PATCH 137/149] Relocate/remove folders --- .../azurefunctions/azurefunctionsdeploy.json | 0 .../azurefunctionsdeploy.parameters.json | 0 .../{ => azure}/az/azurefunctions/readme.md | 0 .../{ => azure}/az/cosmos/deploycosmos.json | 0 .../az/cosmos/deploycosmos.parameters.json | 0 deploy/{ => azure}/az/cosmos/readme.md | 0 deploy/{ => azure}/az/create-resources.cmd | 0 deploy/{ => azure}/az/createresources.sh | 0 deploy/{ => azure}/az/readme.md | 0 deploy/{ => azure}/az/redis/readme.md | 0 deploy/{ => azure}/az/redis/redisdeploy.json | 0 .../az/redis/redisdeploy.parameters.json | 0 deploy/{ => azure}/az/servicebus/readme.md | 0 .../{ => azure}/az/servicebus/sbusdeploy.json | 0 .../az/servicebus/sbusdeploy.parameters.json | 0 .../LinuxContainers/gen-keyvaultcert.ps1 | 0 .../servicefabric/LinuxContainers/readme.md | 0 .../LinuxContainers/servicefabricdeploy.json | 0 .../servicefabricdeploy.parameters.json | 0 .../servicefabricdeploysecured.json | 0 ...servicefabricdeploysecured.parameters.json | 0 .../WindowsContainers/gen-keyvaultcert.ps1 | 0 .../servicefabric/WindowsContainers/readme.md | 0 .../servicefabricdeploy.json | 0 .../servicefabricdeploy.parameters.json | 0 .../servicefabricdeploysecured.json | 0 ...servicefabricdeploysecured.parameters.json | 0 deploy/{ => azure}/az/sql/readme.md | 0 deploy/{ => azure}/az/sql/sqldeploy.json | 0 .../az/sql/sqldeploy.parameters.json | 0 .../az/storage/catalog/deploystorage.json | 0 .../catalog/deploystorage.parameters.json | 0 .../{ => azure}/az/storage/catalog/readme.md | 0 .../az/storage/marketing/deploystorage.json | 0 .../marketing/deploystorage.parameters.json | 0 .../az/storage/marketing/readme.md | 0 deploy/{ => azure}/az/vms/docker-machine.md | 0 .../{ => azure}/az/vms/linux-vm/linuxvm.json | 0 .../az/vms/linux-vm/linuxvm.parameters.json | 0 deploy/{ => azure}/az/vms/plain-vm.md | 0 deploy/{ => azure}/az/vms/readme.md | 0 .../{ => azure}/az/vms/win-vm/windowsvm.json | 0 .../az/vms/win-vm/windowsvm.parameters.json | 0 deploy/{ => azure}/readme.md | 0 {elk => deploy/elk}/Readme.md | 0 {elk => deploy/elk}/elasticsearch/Dockerfile | 0 .../elasticsearch/config/elasticsearch.yml | 0 {elk => deploy/elk}/kibana/Dockerfile | 0 {elk => deploy/elk}/kibana/config/kibana.yml | 0 {elk => deploy/elk}/logstash/Dockerfile | 0 .../elk}/logstash/config/logstash.yml | 0 .../elk}/logstash/pipeline/logstash.conf | 0 {k8s => deploy/k8s}/README.CICD.k8s.md | 0 {k8s => deploy/k8s}/README.k8s.md | 0 {k8s => deploy/k8s}/build-push-images.ps1 | 0 {k8s => deploy/k8s}/conf-files.md | 0 {k8s => deploy/k8s}/conf_cloud.yaml | 0 {k8s => deploy/k8s}/conf_local.yaml | 0 {k8s => deploy/k8s}/deploy-ingress-azure.ps1 | 0 .../k8s}/deploy-ingress-dockerlocal.ps1 | 0 {k8s => deploy/k8s}/deploy-ingress.ps1 | 0 {k8s => deploy/k8s}/deploy-nodeports.ps1 | 0 {k8s => deploy/k8s}/deploy.ps1 | 0 {k8s => deploy/k8s}/deploy.sh | 0 {k8s => deploy/k8s}/gen-k8s-env-aks.ps1 | 0 {k8s => deploy/k8s}/helm-rbac.yaml | 0 .../k8s}/helm/aks-httpaddon-cfg.yaml | 0 {k8s => deploy/k8s}/helm/apigwmm/.helmignore | 0 {k8s => deploy/k8s}/helm/apigwmm/Chart.yaml | 0 {k8s => deploy/k8s}/helm/apigwmm/envoy.yaml | 0 .../k8s}/helm/apigwmm/templates/NOTES.txt | 0 .../k8s}/helm/apigwmm/templates/_helpers.tpl | 0 .../k8s}/helm/apigwmm/templates/_names.tpl | 0 .../helm/apigwmm/templates/deployment.yaml | 0 .../k8s}/helm/apigwmm/templates/envoy-cm.yaml | 0 .../k8s}/helm/apigwmm/templates/ingress.yaml | 0 .../k8s}/helm/apigwmm/templates/service.yaml | 0 {k8s => deploy/k8s}/helm/apigwmm/values.yaml | 0 {k8s => deploy/k8s}/helm/apigwms/.helmignore | 0 {k8s => deploy/k8s}/helm/apigwms/Chart.yaml | 0 {k8s => deploy/k8s}/helm/apigwms/envoy.yaml | 0 .../k8s}/helm/apigwms/templates/NOTES.txt | 0 .../k8s}/helm/apigwms/templates/_helpers.tpl | 0 .../k8s}/helm/apigwms/templates/_names.tpl | 0 .../helm/apigwms/templates/deployment.yaml | 0 .../k8s}/helm/apigwms/templates/envoy-cm.yaml | 0 .../k8s}/helm/apigwms/templates/ingress.yaml | 0 .../k8s}/helm/apigwms/templates/service.yaml | 0 {k8s => deploy/k8s}/helm/apigwms/values.yaml | 0 {k8s => deploy/k8s}/helm/apigwwm/.helmignore | 0 {k8s => deploy/k8s}/helm/apigwwm/Chart.yaml | 0 {k8s => deploy/k8s}/helm/apigwwm/envoy.yaml | 0 .../k8s}/helm/apigwwm/templates/NOTES.txt | 0 .../k8s}/helm/apigwwm/templates/_helpers.tpl | 0 .../k8s}/helm/apigwwm/templates/_names.tpl | 0 .../helm/apigwwm/templates/deployment.yaml | 0 .../k8s}/helm/apigwwm/templates/envoy-cm.yaml | 0 .../k8s}/helm/apigwwm/templates/ingress.yaml | 0 .../k8s}/helm/apigwwm/templates/service.yaml | 0 {k8s => deploy/k8s}/helm/apigwwm/values.yaml | 0 {k8s => deploy/k8s}/helm/apigwws/.helmignore | 0 {k8s => deploy/k8s}/helm/apigwws/Chart.yaml | 0 {k8s => deploy/k8s}/helm/apigwws/envoy.yaml | 0 .../k8s}/helm/apigwws/templates/NOTES.txt | 0 .../k8s}/helm/apigwws/templates/_helpers.tpl | 0 .../k8s}/helm/apigwws/templates/_names.tpl | 0 .../helm/apigwws/templates/deployment.yaml | 0 .../k8s}/helm/apigwws/templates/envoy-cm.yaml | 0 .../k8s}/helm/apigwws/templates/ingress.yaml | 0 .../k8s}/helm/apigwws/templates/service.yaml | 0 {k8s => deploy/k8s}/helm/apigwws/values.yaml | 0 {k8s => deploy/k8s}/helm/app.yaml | 0 .../k8s}/helm/basket-api/.helmignore | 0 .../k8s}/helm/basket-api/Chart.yaml | 0 .../k8s}/helm/basket-api/templates/NOTES.txt | 0 .../helm/basket-api/templates/_helpers.tpl | 0 .../k8s}/helm/basket-api/templates/_names.tpl | 0 .../helm/basket-api/templates/configmap.yaml | 0 .../helm/basket-api/templates/deployment.yaml | 0 .../helm/basket-api/templates/ingress.yaml | 0 .../helm/basket-api/templates/service.yaml | 0 .../k8s}/helm/basket-api/values.yaml | 0 .../k8s}/helm/basket-data/.helmignore | 0 .../k8s}/helm/basket-data/Chart.yaml | 0 .../k8s}/helm/basket-data/templates/NOTES.txt | 0 .../helm/basket-data/templates/_helpers.tpl | 0 .../basket-data/templates/deployment.yaml | 0 .../helm/basket-data/templates/service.yaml | 0 .../k8s}/helm/basket-data/values.yaml | 0 .../k8s}/helm/catalog-api/.helmignore | 0 .../k8s}/helm/catalog-api/Chart.yaml | 0 .../k8s}/helm/catalog-api/templates/NOTES.txt | 0 .../helm/catalog-api/templates/_helpers.tpl | 0 .../helm/catalog-api/templates/_names.tpl | 0 .../helm/catalog-api/templates/configmap.yaml | 0 .../catalog-api/templates/deployment.yaml | 0 .../helm/catalog-api/templates/ingress.yaml | 0 .../helm/catalog-api/templates/service.yaml | 0 .../k8s}/helm/catalog-api/values.yaml | 0 {k8s => deploy/k8s}/helm/deploy-all-istio.ps1 | 0 {k8s => deploy/k8s}/helm/deploy-all.ps1 | 0 {k8s => deploy/k8s}/helm/deploy-all.sh | 0 .../k8s}/helm/eshop-common/.helmignore | 0 .../k8s}/helm/eshop-common/Chart.yaml | 0 .../helm/eshop-common/templates/NOTES.txt | 0 .../helm/eshop-common/templates/_helpers.tpl | 0 .../helm/eshop-common/templates/_names.tpl | 0 .../helm/eshop-common/templates/secret.yaml | 0 .../k8s}/helm/eshop-common/values.yaml | 0 .../k8s}/helm/identity-api/.helmignore | 0 .../k8s}/helm/identity-api/Chart.yaml | 0 .../helm/identity-api/templates/NOTES.txt | 0 .../helm/identity-api/templates/_helpers.tpl | 0 .../helm/identity-api/templates/_names.tpl | 0 .../identity-api/templates/configmap.yaml | 0 .../identity-api/templates/deployment.yaml | 0 .../templates/ingress-dockerk8s.yaml | 0 .../helm/identity-api/templates/ingress.yaml | 0 .../helm/identity-api/templates/service.yaml | 0 .../k8s}/helm/identity-api/values.yaml | 0 {k8s => deploy/k8s}/helm/inf.yaml | 0 {k8s => deploy/k8s}/helm/ingress_values.yaml | 0 .../k8s}/helm/ingress_values_dockerk8s.yaml | 0 .../k8s}/helm/ingress_values_linkerd.yaml | 0 {k8s => deploy/k8s}/helm/istio/doc.md | 0 {k8s => deploy/k8s}/helm/istio/gateway.yml | 0 .../k8s}/helm/istio/virtualservices.yml | 0 .../k8s}/helm/keystore-data/.helmignore | 0 .../k8s}/helm/keystore-data/Chart.yaml | 0 .../helm/keystore-data/templates/NOTES.txt | 0 .../helm/keystore-data/templates/_helpers.tpl | 0 .../keystore-data/templates/deployment.yaml | 0 .../helm/keystore-data/templates/service.yaml | 0 .../k8s}/helm/keystore-data/values.yaml | 0 .../k8s}/helm/locations-api/.helmignore | 0 .../k8s}/helm/locations-api/Chart.yaml | 0 .../helm/locations-api/templates/NOTES.txt | 0 .../helm/locations-api/templates/_helpers.tpl | 0 .../helm/locations-api/templates/_names.tpl | 0 .../locations-api/templates/configmap.yaml | 0 .../locations-api/templates/deployment.yaml | 0 .../helm/locations-api/templates/ingress.yaml | 0 .../helm/locations-api/templates/service.yaml | 0 .../k8s}/helm/locations-api/values.yaml | 0 .../k8s}/helm/marketing-api/.helmignore | 0 .../k8s}/helm/marketing-api/Chart.yaml | 0 .../helm/marketing-api/templates/NOTES.txt | 0 .../helm/marketing-api/templates/_helpers.tpl | 0 .../helm/marketing-api/templates/_names.tpl | 0 .../marketing-api/templates/configmap.yaml | 0 .../marketing-api/templates/deployment.yaml | 0 .../helm/marketing-api/templates/ingress.yaml | 0 .../helm/marketing-api/templates/service.yaml | 0 .../k8s}/helm/marketing-api/values.yaml | 0 .../k8s}/helm/mobileshoppingagg/.helmignore | 0 .../k8s}/helm/mobileshoppingagg/Chart.yaml | 0 .../mobileshoppingagg/templates/NOTES.txt | 0 .../mobileshoppingagg/templates/_helpers.tpl | 0 .../mobileshoppingagg/templates/_names.tpl | 0 .../templates/configmap.yaml | 0 .../templates/deployment.yaml | 0 .../mobileshoppingagg/templates/ingress.yaml | 0 .../mobileshoppingagg/templates/service.yaml | 0 .../k8s}/helm/mobileshoppingagg/values.yaml | 0 .../k8s}/helm/nosql-data/.helmignore | 0 .../k8s}/helm/nosql-data/Chart.yaml | 0 .../k8s}/helm/nosql-data/templates/NOTES.txt | 0 .../helm/nosql-data/templates/_helpers.tpl | 0 .../k8s}/helm/nosql-data/templates/_names.tpl | 0 .../helm/nosql-data/templates/deployment.yaml | 0 .../helm/nosql-data/templates/service.yaml | 0 .../k8s}/helm/nosql-data/values.yaml | 0 .../k8s}/helm/ordering-api/.helmignore | 0 .../k8s}/helm/ordering-api/Chart.yaml | 0 .../helm/ordering-api/templates/NOTES.txt | 0 .../helm/ordering-api/templates/_helpers.tpl | 0 .../helm/ordering-api/templates/_names.tpl | 0 .../ordering-api/templates/configmap.yaml | 0 .../ordering-api/templates/deployment.yaml | 0 .../helm/ordering-api/templates/service.yaml | 0 .../k8s}/helm/ordering-api/values.yaml | 0 .../helm/ordering-backgroundtasks/.helmignore | 0 .../helm/ordering-backgroundtasks/Chart.yaml | 0 .../templates/NOTES.txt | 0 .../templates/_helpers.tpl | 0 .../templates/_names.tpl | 0 .../templates/configmap.yaml | 0 .../templates/deployment.yaml | 0 .../templates/service.yaml | 0 .../helm/ordering-backgroundtasks/values.yaml | 0 .../k8s}/helm/ordering-signalrhub/.helmignore | 0 .../k8s}/helm/ordering-signalrhub/Chart.yaml | 0 .../ordering-signalrhub/templates/NOTES.txt | 0 .../templates/_helpers.tpl | 0 .../ordering-signalrhub/templates/_names.tpl | 0 .../templates/configmap.yaml | 0 .../templates/deployment.yaml | 0 .../templates/service.yaml | 0 .../k8s}/helm/ordering-signalrhub/values.yaml | 0 .../k8s}/helm/payment-api/.helmignore | 0 .../k8s}/helm/payment-api/Chart.yaml | 0 .../k8s}/helm/payment-api/templates/NOTES.txt | 0 .../helm/payment-api/templates/_helpers.tpl | 0 .../helm/payment-api/templates/_names.tpl | 0 .../helm/payment-api/templates/configmap.yaml | 0 .../payment-api/templates/deployment.yaml | 0 .../helm/payment-api/templates/service.yaml | 0 .../k8s}/helm/payment-api/values.yaml | 0 {k8s => deploy/k8s}/helm/rabbitmq/.helmignore | 0 {k8s => deploy/k8s}/helm/rabbitmq/Chart.yaml | 0 .../k8s}/helm/rabbitmq/templates/NOTES.txt | 0 .../k8s}/helm/rabbitmq/templates/_helpers.tpl | 0 .../k8s}/helm/rabbitmq/templates/_names.tpl | 0 .../helm/rabbitmq/templates/deployment.yaml | 0 .../k8s}/helm/rabbitmq/templates/service.yaml | 0 {k8s => deploy/k8s}/helm/rabbitmq/values.yaml | 0 {k8s => deploy/k8s}/helm/sql-data/.helmignore | 0 {k8s => deploy/k8s}/helm/sql-data/Chart.yaml | 0 .../k8s}/helm/sql-data/templates/NOTES.txt | 0 .../k8s}/helm/sql-data/templates/_helpers.tpl | 0 .../k8s}/helm/sql-data/templates/_names.tpl | 0 .../helm/sql-data/templates/deployment.yaml | 0 .../k8s}/helm/sql-data/templates/service.yaml | 0 {k8s => deploy/k8s}/helm/sql-data/values.yaml | 0 .../k8s}/helm/webhooks-api/.helmignore | 0 .../k8s}/helm/webhooks-api/Chart.yaml | 0 .../helm/webhooks-api/templates/NOTES.txt | 0 .../helm/webhooks-api/templates/_helpers.tpl | 0 .../helm/webhooks-api/templates/_names.tpl | 0 .../webhooks-api/templates/configmap.yaml | 0 .../webhooks-api/templates/deployment.yaml | 0 .../helm/webhooks-api/templates/ingress.yaml | 0 .../helm/webhooks-api/templates/service.yaml | 0 .../k8s}/helm/webhooks-api/values.yaml | 0 .../k8s}/helm/webhooks-web/.helmignore | 0 .../k8s}/helm/webhooks-web/Chart.yaml | 0 .../helm/webhooks-web/templates/NOTES.txt | 0 .../helm/webhooks-web/templates/_helpers.tpl | 0 .../helm/webhooks-web/templates/_names.tpl | 0 .../webhooks-web/templates/configmap.yaml | 0 .../webhooks-web/templates/deployment.yaml | 0 .../helm/webhooks-web/templates/ingress.yaml | 0 .../helm/webhooks-web/templates/service.yaml | 0 .../k8s}/helm/webhooks-web/values.yaml | 0 {k8s => deploy/k8s}/helm/webmvc/.helmignore | 0 {k8s => deploy/k8s}/helm/webmvc/Chart.yaml | 0 .../k8s}/helm/webmvc/templates/NOTES.txt | 0 .../k8s}/helm/webmvc/templates/_helpers.tpl | 0 .../k8s}/helm/webmvc/templates/_names.tpl | 0 .../k8s}/helm/webmvc/templates/configmap.yaml | 0 .../helm/webmvc/templates/deployment.yaml | 0 .../webmvc/templates/ingress-dockerk8s.yaml | 0 .../k8s}/helm/webmvc/templates/ingress.yaml | 0 .../k8s}/helm/webmvc/templates/service.yaml | 0 {k8s => deploy/k8s}/helm/webmvc/values.yaml | 0 .../k8s}/helm/webshoppingagg/.helmignore | 0 .../k8s}/helm/webshoppingagg/Chart.yaml | 0 .../helm/webshoppingagg/templates/NOTES.txt | 0 .../webshoppingagg/templates/_helpers.tpl | 0 .../helm/webshoppingagg/templates/_names.tpl | 0 .../webshoppingagg/templates/configmap.yaml | 0 .../webshoppingagg/templates/deployment.yaml | 0 .../webshoppingagg/templates/ingress.yaml | 0 .../webshoppingagg/templates/service.yaml | 0 .../k8s}/helm/webshoppingagg/values.yaml | 0 {k8s => deploy/k8s}/helm/webspa/.helmignore | 0 {k8s => deploy/k8s}/helm/webspa/Chart.yaml | 0 .../k8s}/helm/webspa/templates/NOTES.txt | 0 .../k8s}/helm/webspa/templates/_helpers.tpl | 0 .../k8s}/helm/webspa/templates/_names.tpl | 0 .../k8s}/helm/webspa/templates/configmap.yaml | 0 .../helm/webspa/templates/deployment.yaml | 0 .../k8s}/helm/webspa/templates/ingress.yaml | 0 .../k8s}/helm/webspa/templates/service.yaml | 0 {k8s => deploy/k8s}/helm/webspa/values.yaml | 0 .../k8s}/helm/webstatus/.helmignore | 0 {k8s => deploy/k8s}/helm/webstatus/Chart.yaml | 0 .../k8s}/helm/webstatus/templates/NOTES.txt | 0 .../helm/webstatus/templates/_helpers.tpl | 0 .../k8s}/helm/webstatus/templates/_names.tpl | 0 .../helm/webstatus/templates/configmap.yaml | 0 .../helm/webstatus/templates/deployment.yaml | 0 .../helm/webstatus/templates/ingress.yaml | 0 .../helm/webstatus/templates/service.yaml | 0 .../k8s}/helm/webstatus/values.yaml | 0 {k8s => deploy/k8s}/img/blob_creation.png | Bin .../k8s}/img/deploy_script_task.png | Bin .../k8s}/img/get_kubectlbin_task.png | Bin .../k8s}/img/get_kubectlconfig_task.png | Bin {k8s => deploy/k8s}/internalurls.yaml | 0 .../k8s}/linkerd/basket-api-sp.yaml | 0 .../k8s}/linkerd/catalog-api-sp.yaml | 0 .../k8s}/nginx-ingress/cloud-generic.yaml | 0 {k8s => deploy/k8s}/nginx-ingress/cm.yaml | Bin .../local-dockerk8s/identityapi-cm-fix.yaml | 0 .../local-dockerk8s/mvc-cm-fix.yaml | 0 .../local-dockerk8s/mvc-fix.yaml | 0 .../k8s}/nginx-ingress/mandatory-istio.yaml | 0 .../k8s}/nginx-ingress/mandatory.yaml | 0 .../k8s}/nginx-ingress/service-nodeport.yaml | 0 .../k8s}/nodeports/rabbitmq-admin.yaml | 0 .../k8s}/nodeports/sql-service.yaml | 0 {k8s => deploy/k8s}/readme.md | 0 k8s/.kube/schema/v1.6.6/api/v1/schema.json | 20838 ---------------- .../apis/extensions/v1beta1/schema.json | 9977 -------- k8s/.kube/schema/v1.6.6/schema566625515 | 9977 -------- k8s/.kube/schema/v1.6.6/schema629255130 | 20838 ---------------- .../cli-linux}/build-bits-linux.sh | 0 .../cli-linux}/docker-compose.local.build.yml | 0 .../cli-linux}/prepare-spa-app.sh | 0 {cli-linux => obsolete/cli-linux}/run.sh | 0 {cli-mac => obsolete/cli-mac}/build-bits.sh | 0 ...irewall-rules-for-sts-auth-thru-docker.ps1 | 0 .../cli-windows}/build-bits-simple.ps1 | 0 .../cli-windows}/build-bits.ps1 | 0 .../cli-windows}/build-images.ps1 | 0 .../cli-windows}/delete-images.ps1 | 0 .../delete-vs-and-eshop-images.ps1 | 0 ...et-dockernat-networkategory-to-private.ps1 | 0 .../cli-windows}/start-external.ps1 | 0 .../cli-windows}/start-windows-containers.ps1 | 0 .../vsts/build-bits-no-parallel.ps1 | 0 {readme => obsolete/readme}/README.ENV.md | 0 .../readme}/readme-docker-compose.md | 0 {readme => obsolete/readme}/readme.md | 0 .../run-docker-compose-build.ps1 | 0 .../builds/images/android-build-step1.png | Bin .../builds/images/android-build-step2.png | Bin .../builds/images/android-build-step3.png | Bin .../builds/images/android-build-step4.png | Bin .../builds/images/android-build-step5.png | Bin .../builds/images/android-build.png | Bin .../builds/images/ios-build-step1.png | Bin .../builds/images/ios-build-step2.png | Bin .../builds/images/ios-build-step3.png | Bin .../vsts-docs}/builds/images/ios-build.png | Bin .../vsts-docs}/builds/xamarin-android.md | 0 .../vsts-docs}/builds/xamarin-iOS.md | 0 {vsts-docs => obsolete/vsts-docs}/readme.md | 0 restore-packages.cmd | 1 - .../Components}/GeolocatorPlugin-1.0.3.info | 0 .../Components}/GeolocatorPlugin-1.0.3.png | 0 .../component/Details.md | 0 .../component/GettingStarted.md | 0 .../component/License.md | 0 .../component/Manifest.xml | 0 .../icons/GeolocatorPlugin_128x128.png | Bin .../icons/GeolocatorPlugin_512x512.png | Bin .../GeolocatorSample/GeolocatorSample.sln | 0 .../Assets/AboutAssets.txt | 0 .../GeolocatorSample.Droid.csproj | 0 .../GeolocatorSample.Droid/MainActivity.cs | 0 .../PluginsHelp/GeolocatorReadme.txt | 0 .../Properties/AndroidManifest.xml | 0 .../Properties/AssemblyInfo.cs | 0 .../Resources/AboutResources.txt | 0 .../Resources/Resource.Designer.cs | 0 .../Resources/drawable-hdpi/icon.png | Bin .../Resources/drawable-xhdpi/icon.png | Bin .../Resources/drawable-xxhdpi/icon.png | Bin .../Resources/drawable/icon.png | Bin .../GeolocatorSample.Droid/packages.config | 0 .../GeolocatorSample.WinPhone/App.xaml | 0 .../GeolocatorSample.WinPhone/App.xaml.cs | 0 .../Assets/AlignmentGrid.png | Bin .../Assets/ApplicationIcon.png | Bin .../Assets/Tiles/FlipCycleTileLarge.png | Bin .../Assets/Tiles/FlipCycleTileMedium.png | Bin .../Assets/Tiles/FlipCycleTileSmall.png | Bin .../Assets/Tiles/IconicTileMediumLarge.png | Bin .../Assets/Tiles/IconicTileSmall.png | Bin .../GeolocatorSample.WinPhone.csproj | 0 .../LocalizedStrings.cs | 0 .../GeolocatorSample.WinPhone/MainPage.xaml | 0 .../MainPage.xaml.cs | 0 .../PluginsHelp/GeolocatorReadme.txt | 0 .../Properties/AppManifest.xml | 0 .../Properties/AssemblyInfo.cs | 0 .../Properties/WMAppManifest.xml | 0 .../README_FIRST.txt | 0 .../Resources/AppResources.Designer.cs | 0 .../Resources/AppResources.resx | 0 .../SplashScreenImage.jpg | Bin .../Toolkit.Content/ApplicationBar.Add.png | Bin .../Toolkit.Content/ApplicationBar.Cancel.png | Bin .../Toolkit.Content/ApplicationBar.Check.png | Bin .../Toolkit.Content/ApplicationBar.Delete.png | Bin .../Toolkit.Content/ApplicationBar.Select.png | Bin .../GeolocatorSample.WinPhone/packages.config | 0 .../GeolocatorSample.iOS/AppDelegate.cs | 0 .../GeolocatorSample.iOS/Entitlements.plist | 0 .../GeolocatorSample.iOS.csproj | 0 .../GeolocatorSample.iOS/Info.plist | 0 .../GeolocatorSample.iOS/Main.cs | 0 .../PluginsHelp/GeolocatorReadme.txt | 0 .../Properties/AssemblyInfo.cs | 0 .../Resources/Default-568h@2x.png | Bin .../Resources/Default-Portrait.png | Bin .../Resources/Default-Portrait@2x.png | Bin .../Resources/Default.png | Bin .../Resources/Default@2x.png | Bin .../Resources/Icon-60@2x.png | Bin .../Resources/Icon-60@3x.png | Bin .../Resources/Icon-76.png | Bin .../Resources/Icon-76@2x.png | Bin .../Resources/Icon-Small-40.png | Bin .../Resources/Icon-Small-40@2x.png | Bin .../Resources/Icon-Small-40@3x.png | Bin .../Resources/Icon-Small.png | Bin .../Resources/Icon-Small@2x.png | Bin .../Resources/Icon-Small@3x.png | Bin .../Resources/LaunchScreen.storyboard | 0 .../GeolocatorSample.iOS/iTunesArtwork | Bin .../GeolocatorSample.iOS/iTunesArtwork@2x | Bin .../GeolocatorSample.iOS/packages.config | 0 .../GeolocatorSample/GeolocatorSample/App.cs | 0 .../GeolocatorSample/GeolocatorSample.csproj | 0 .../PluginsHelp/GeolocatorReadme.txt | 0 .../Properties/AssemblyInfo.cs | 0 .../GeolocatorSample/packages.config | 0 src/docker-compose.prod.yml | 66 +- src/eShopOnContainers-ServicesAndWebApps.sln | 2 +- 462 files changed, 34 insertions(+), 61665 deletions(-) rename deploy/{ => azure}/az/azurefunctions/azurefunctionsdeploy.json (100%) rename deploy/{ => azure}/az/azurefunctions/azurefunctionsdeploy.parameters.json (100%) rename deploy/{ => azure}/az/azurefunctions/readme.md (100%) rename deploy/{ => azure}/az/cosmos/deploycosmos.json (100%) rename deploy/{ => azure}/az/cosmos/deploycosmos.parameters.json (100%) rename deploy/{ => azure}/az/cosmos/readme.md (100%) rename deploy/{ => azure}/az/create-resources.cmd (100%) rename deploy/{ => azure}/az/createresources.sh (100%) rename deploy/{ => azure}/az/readme.md (100%) rename deploy/{ => azure}/az/redis/readme.md (100%) rename deploy/{ => azure}/az/redis/redisdeploy.json (100%) rename deploy/{ => azure}/az/redis/redisdeploy.parameters.json (100%) rename deploy/{ => azure}/az/servicebus/readme.md (100%) rename deploy/{ => azure}/az/servicebus/sbusdeploy.json (100%) rename deploy/{ => azure}/az/servicebus/sbusdeploy.parameters.json (100%) rename deploy/{ => azure}/az/servicefabric/LinuxContainers/gen-keyvaultcert.ps1 (100%) rename deploy/{ => azure}/az/servicefabric/LinuxContainers/readme.md (100%) rename deploy/{ => azure}/az/servicefabric/LinuxContainers/servicefabricdeploy.json (100%) rename deploy/{ => azure}/az/servicefabric/LinuxContainers/servicefabricdeploy.parameters.json (100%) rename deploy/{ => azure}/az/servicefabric/LinuxContainers/servicefabricdeploysecured.json (100%) rename deploy/{ => azure}/az/servicefabric/LinuxContainers/servicefabricdeploysecured.parameters.json (100%) rename deploy/{ => azure}/az/servicefabric/WindowsContainers/gen-keyvaultcert.ps1 (100%) rename deploy/{ => azure}/az/servicefabric/WindowsContainers/readme.md (100%) rename deploy/{ => azure}/az/servicefabric/WindowsContainers/servicefabricdeploy.json (100%) rename deploy/{ => azure}/az/servicefabric/WindowsContainers/servicefabricdeploy.parameters.json (100%) rename deploy/{ => azure}/az/servicefabric/WindowsContainers/servicefabricdeploysecured.json (100%) rename deploy/{ => azure}/az/servicefabric/WindowsContainers/servicefabricdeploysecured.parameters.json (100%) rename deploy/{ => azure}/az/sql/readme.md (100%) rename deploy/{ => azure}/az/sql/sqldeploy.json (100%) rename deploy/{ => azure}/az/sql/sqldeploy.parameters.json (100%) rename deploy/{ => azure}/az/storage/catalog/deploystorage.json (100%) rename deploy/{ => azure}/az/storage/catalog/deploystorage.parameters.json (100%) rename deploy/{ => azure}/az/storage/catalog/readme.md (100%) rename deploy/{ => azure}/az/storage/marketing/deploystorage.json (100%) rename deploy/{ => azure}/az/storage/marketing/deploystorage.parameters.json (100%) rename deploy/{ => azure}/az/storage/marketing/readme.md (100%) rename deploy/{ => azure}/az/vms/docker-machine.md (100%) rename deploy/{ => azure}/az/vms/linux-vm/linuxvm.json (100%) rename deploy/{ => azure}/az/vms/linux-vm/linuxvm.parameters.json (100%) rename deploy/{ => azure}/az/vms/plain-vm.md (100%) rename deploy/{ => azure}/az/vms/readme.md (100%) rename deploy/{ => azure}/az/vms/win-vm/windowsvm.json (100%) rename deploy/{ => azure}/az/vms/win-vm/windowsvm.parameters.json (100%) rename deploy/{ => azure}/readme.md (100%) rename {elk => deploy/elk}/Readme.md (100%) rename {elk => deploy/elk}/elasticsearch/Dockerfile (100%) rename {elk => deploy/elk}/elasticsearch/config/elasticsearch.yml (100%) rename {elk => deploy/elk}/kibana/Dockerfile (100%) rename {elk => deploy/elk}/kibana/config/kibana.yml (100%) rename {elk => deploy/elk}/logstash/Dockerfile (100%) rename {elk => deploy/elk}/logstash/config/logstash.yml (100%) rename {elk => deploy/elk}/logstash/pipeline/logstash.conf (100%) rename {k8s => deploy/k8s}/README.CICD.k8s.md (100%) rename {k8s => deploy/k8s}/README.k8s.md (100%) rename {k8s => deploy/k8s}/build-push-images.ps1 (100%) rename {k8s => deploy/k8s}/conf-files.md (100%) rename {k8s => deploy/k8s}/conf_cloud.yaml (100%) rename {k8s => deploy/k8s}/conf_local.yaml (100%) rename {k8s => deploy/k8s}/deploy-ingress-azure.ps1 (100%) rename {k8s => deploy/k8s}/deploy-ingress-dockerlocal.ps1 (100%) rename {k8s => deploy/k8s}/deploy-ingress.ps1 (100%) rename {k8s => deploy/k8s}/deploy-nodeports.ps1 (100%) rename {k8s => deploy/k8s}/deploy.ps1 (100%) rename {k8s => deploy/k8s}/deploy.sh (100%) mode change 100755 => 100644 rename {k8s => deploy/k8s}/gen-k8s-env-aks.ps1 (100%) rename {k8s => deploy/k8s}/helm-rbac.yaml (100%) rename {k8s => deploy/k8s}/helm/aks-httpaddon-cfg.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwmm/.helmignore (100%) rename {k8s => deploy/k8s}/helm/apigwmm/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwmm/envoy.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwmm/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/apigwmm/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/apigwmm/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/apigwmm/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwmm/templates/envoy-cm.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwmm/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwmm/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwmm/values.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwms/.helmignore (100%) rename {k8s => deploy/k8s}/helm/apigwms/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwms/envoy.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwms/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/apigwms/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/apigwms/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/apigwms/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwms/templates/envoy-cm.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwms/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwms/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwms/values.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwwm/.helmignore (100%) rename {k8s => deploy/k8s}/helm/apigwwm/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwwm/envoy.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwwm/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/apigwwm/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/apigwwm/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/apigwwm/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwwm/templates/envoy-cm.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwwm/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwwm/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwwm/values.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwws/.helmignore (100%) rename {k8s => deploy/k8s}/helm/apigwws/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwws/envoy.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwws/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/apigwws/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/apigwws/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/apigwws/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwws/templates/envoy-cm.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwws/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwws/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/apigwws/values.yaml (100%) rename {k8s => deploy/k8s}/helm/app.yaml (100%) rename {k8s => deploy/k8s}/helm/basket-api/.helmignore (100%) rename {k8s => deploy/k8s}/helm/basket-api/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/basket-api/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/basket-api/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/basket-api/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/basket-api/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/basket-api/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/basket-api/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/basket-api/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/basket-api/values.yaml (100%) rename {k8s => deploy/k8s}/helm/basket-data/.helmignore (100%) rename {k8s => deploy/k8s}/helm/basket-data/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/basket-data/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/basket-data/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/basket-data/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/basket-data/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/basket-data/values.yaml (100%) rename {k8s => deploy/k8s}/helm/catalog-api/.helmignore (100%) rename {k8s => deploy/k8s}/helm/catalog-api/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/catalog-api/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/catalog-api/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/catalog-api/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/catalog-api/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/catalog-api/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/catalog-api/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/catalog-api/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/catalog-api/values.yaml (100%) rename {k8s => deploy/k8s}/helm/deploy-all-istio.ps1 (100%) rename {k8s => deploy/k8s}/helm/deploy-all.ps1 (100%) rename {k8s => deploy/k8s}/helm/deploy-all.sh (100%) mode change 100755 => 100644 rename {k8s => deploy/k8s}/helm/eshop-common/.helmignore (100%) rename {k8s => deploy/k8s}/helm/eshop-common/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/eshop-common/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/eshop-common/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/eshop-common/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/eshop-common/templates/secret.yaml (100%) rename {k8s => deploy/k8s}/helm/eshop-common/values.yaml (100%) rename {k8s => deploy/k8s}/helm/identity-api/.helmignore (100%) rename {k8s => deploy/k8s}/helm/identity-api/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/identity-api/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/identity-api/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/identity-api/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/identity-api/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/identity-api/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/identity-api/templates/ingress-dockerk8s.yaml (100%) rename {k8s => deploy/k8s}/helm/identity-api/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/identity-api/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/identity-api/values.yaml (100%) rename {k8s => deploy/k8s}/helm/inf.yaml (100%) rename {k8s => deploy/k8s}/helm/ingress_values.yaml (100%) rename {k8s => deploy/k8s}/helm/ingress_values_dockerk8s.yaml (100%) rename {k8s => deploy/k8s}/helm/ingress_values_linkerd.yaml (100%) rename {k8s => deploy/k8s}/helm/istio/doc.md (100%) rename {k8s => deploy/k8s}/helm/istio/gateway.yml (100%) rename {k8s => deploy/k8s}/helm/istio/virtualservices.yml (100%) rename {k8s => deploy/k8s}/helm/keystore-data/.helmignore (100%) rename {k8s => deploy/k8s}/helm/keystore-data/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/keystore-data/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/keystore-data/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/keystore-data/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/keystore-data/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/keystore-data/values.yaml (100%) rename {k8s => deploy/k8s}/helm/locations-api/.helmignore (100%) rename {k8s => deploy/k8s}/helm/locations-api/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/locations-api/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/locations-api/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/locations-api/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/locations-api/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/locations-api/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/locations-api/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/locations-api/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/locations-api/values.yaml (100%) rename {k8s => deploy/k8s}/helm/marketing-api/.helmignore (100%) rename {k8s => deploy/k8s}/helm/marketing-api/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/marketing-api/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/marketing-api/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/marketing-api/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/marketing-api/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/marketing-api/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/marketing-api/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/marketing-api/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/marketing-api/values.yaml (100%) rename {k8s => deploy/k8s}/helm/mobileshoppingagg/.helmignore (100%) rename {k8s => deploy/k8s}/helm/mobileshoppingagg/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/mobileshoppingagg/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/mobileshoppingagg/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/mobileshoppingagg/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/mobileshoppingagg/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/mobileshoppingagg/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/mobileshoppingagg/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/mobileshoppingagg/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/mobileshoppingagg/values.yaml (100%) rename {k8s => deploy/k8s}/helm/nosql-data/.helmignore (100%) rename {k8s => deploy/k8s}/helm/nosql-data/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/nosql-data/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/nosql-data/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/nosql-data/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/nosql-data/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/nosql-data/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/nosql-data/values.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-api/.helmignore (100%) rename {k8s => deploy/k8s}/helm/ordering-api/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-api/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/ordering-api/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/ordering-api/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/ordering-api/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-api/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-api/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-api/values.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-backgroundtasks/.helmignore (100%) rename {k8s => deploy/k8s}/helm/ordering-backgroundtasks/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-backgroundtasks/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/ordering-backgroundtasks/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/ordering-backgroundtasks/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/ordering-backgroundtasks/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-backgroundtasks/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-backgroundtasks/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-backgroundtasks/values.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-signalrhub/.helmignore (100%) rename {k8s => deploy/k8s}/helm/ordering-signalrhub/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-signalrhub/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/ordering-signalrhub/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/ordering-signalrhub/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/ordering-signalrhub/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-signalrhub/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-signalrhub/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/ordering-signalrhub/values.yaml (100%) rename {k8s => deploy/k8s}/helm/payment-api/.helmignore (100%) rename {k8s => deploy/k8s}/helm/payment-api/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/payment-api/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/payment-api/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/payment-api/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/payment-api/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/payment-api/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/payment-api/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/payment-api/values.yaml (100%) rename {k8s => deploy/k8s}/helm/rabbitmq/.helmignore (100%) rename {k8s => deploy/k8s}/helm/rabbitmq/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/rabbitmq/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/rabbitmq/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/rabbitmq/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/rabbitmq/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/rabbitmq/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/rabbitmq/values.yaml (100%) rename {k8s => deploy/k8s}/helm/sql-data/.helmignore (100%) rename {k8s => deploy/k8s}/helm/sql-data/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/sql-data/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/sql-data/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/sql-data/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/sql-data/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/sql-data/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/sql-data/values.yaml (100%) rename {k8s => deploy/k8s}/helm/webhooks-api/.helmignore (100%) rename {k8s => deploy/k8s}/helm/webhooks-api/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/webhooks-api/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/webhooks-api/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/webhooks-api/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/webhooks-api/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/webhooks-api/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/webhooks-api/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/webhooks-api/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/webhooks-api/values.yaml (100%) rename {k8s => deploy/k8s}/helm/webhooks-web/.helmignore (100%) rename {k8s => deploy/k8s}/helm/webhooks-web/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/webhooks-web/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/webhooks-web/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/webhooks-web/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/webhooks-web/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/webhooks-web/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/webhooks-web/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/webhooks-web/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/webhooks-web/values.yaml (100%) rename {k8s => deploy/k8s}/helm/webmvc/.helmignore (100%) rename {k8s => deploy/k8s}/helm/webmvc/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/webmvc/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/webmvc/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/webmvc/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/webmvc/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/webmvc/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/webmvc/templates/ingress-dockerk8s.yaml (100%) rename {k8s => deploy/k8s}/helm/webmvc/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/webmvc/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/webmvc/values.yaml (100%) rename {k8s => deploy/k8s}/helm/webshoppingagg/.helmignore (100%) rename {k8s => deploy/k8s}/helm/webshoppingagg/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/webshoppingagg/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/webshoppingagg/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/webshoppingagg/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/webshoppingagg/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/webshoppingagg/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/webshoppingagg/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/webshoppingagg/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/webshoppingagg/values.yaml (100%) rename {k8s => deploy/k8s}/helm/webspa/.helmignore (100%) rename {k8s => deploy/k8s}/helm/webspa/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/webspa/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/webspa/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/webspa/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/webspa/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/webspa/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/webspa/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/webspa/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/webspa/values.yaml (100%) rename {k8s => deploy/k8s}/helm/webstatus/.helmignore (100%) rename {k8s => deploy/k8s}/helm/webstatus/Chart.yaml (100%) rename {k8s => deploy/k8s}/helm/webstatus/templates/NOTES.txt (100%) rename {k8s => deploy/k8s}/helm/webstatus/templates/_helpers.tpl (100%) rename {k8s => deploy/k8s}/helm/webstatus/templates/_names.tpl (100%) rename {k8s => deploy/k8s}/helm/webstatus/templates/configmap.yaml (100%) rename {k8s => deploy/k8s}/helm/webstatus/templates/deployment.yaml (100%) rename {k8s => deploy/k8s}/helm/webstatus/templates/ingress.yaml (100%) rename {k8s => deploy/k8s}/helm/webstatus/templates/service.yaml (100%) rename {k8s => deploy/k8s}/helm/webstatus/values.yaml (100%) rename {k8s => deploy/k8s}/img/blob_creation.png (100%) rename {k8s => deploy/k8s}/img/deploy_script_task.png (100%) rename {k8s => deploy/k8s}/img/get_kubectlbin_task.png (100%) rename {k8s => deploy/k8s}/img/get_kubectlconfig_task.png (100%) rename {k8s => deploy/k8s}/internalurls.yaml (100%) rename {k8s => deploy/k8s}/linkerd/basket-api-sp.yaml (100%) rename {k8s => deploy/k8s}/linkerd/catalog-api-sp.yaml (100%) rename {k8s => deploy/k8s}/nginx-ingress/cloud-generic.yaml (100%) rename {k8s => deploy/k8s}/nginx-ingress/cm.yaml (100%) rename {k8s => deploy/k8s}/nginx-ingress/local-dockerk8s/identityapi-cm-fix.yaml (100%) rename {k8s => deploy/k8s}/nginx-ingress/local-dockerk8s/mvc-cm-fix.yaml (100%) rename {k8s => deploy/k8s}/nginx-ingress/local-dockerk8s/mvc-fix.yaml (100%) rename {k8s => deploy/k8s}/nginx-ingress/mandatory-istio.yaml (100%) rename {k8s => deploy/k8s}/nginx-ingress/mandatory.yaml (100%) rename {k8s => deploy/k8s}/nginx-ingress/service-nodeport.yaml (100%) rename {k8s => deploy/k8s}/nodeports/rabbitmq-admin.yaml (100%) rename {k8s => deploy/k8s}/nodeports/sql-service.yaml (100%) rename {k8s => deploy/k8s}/readme.md (100%) delete mode 100644 k8s/.kube/schema/v1.6.6/api/v1/schema.json delete mode 100644 k8s/.kube/schema/v1.6.6/apis/extensions/v1beta1/schema.json delete mode 100644 k8s/.kube/schema/v1.6.6/schema566625515 delete mode 100644 k8s/.kube/schema/v1.6.6/schema629255130 rename {cli-linux => obsolete/cli-linux}/build-bits-linux.sh (100%) mode change 100755 => 100644 rename {cli-linux => obsolete/cli-linux}/docker-compose.local.build.yml (100%) rename {cli-linux => obsolete/cli-linux}/prepare-spa-app.sh (100%) rename {cli-linux => obsolete/cli-linux}/run.sh (100%) rename {cli-mac => obsolete/cli-mac}/build-bits.sh (100%) mode change 100755 => 100644 rename {cli-windows => obsolete/cli-windows}/add-firewall-rules-for-sts-auth-thru-docker.ps1 (100%) rename {cli-windows => obsolete/cli-windows}/build-bits-simple.ps1 (100%) rename {cli-windows => obsolete/cli-windows}/build-bits.ps1 (100%) rename {cli-windows => obsolete/cli-windows}/build-images.ps1 (100%) rename {cli-windows => obsolete/cli-windows}/delete-images.ps1 (100%) rename {cli-windows => obsolete/cli-windows}/delete-vs-and-eshop-images.ps1 (100%) rename {cli-windows => obsolete/cli-windows}/set-dockernat-networkategory-to-private.ps1 (100%) rename {cli-windows => obsolete/cli-windows}/start-external.ps1 (100%) rename {cli-windows => obsolete/cli-windows}/start-windows-containers.ps1 (100%) rename {cli-windows => obsolete/cli-windows}/vsts/build-bits-no-parallel.ps1 (100%) rename {readme => obsolete/readme}/README.ENV.md (100%) rename {readme => obsolete/readme}/readme-docker-compose.md (100%) rename {readme => obsolete/readme}/readme.md (100%) rename run-docker-compose-build.ps1 => obsolete/run-docker-compose-build.ps1 (100%) rename {vsts-docs => obsolete/vsts-docs}/builds/images/android-build-step1.png (100%) rename {vsts-docs => obsolete/vsts-docs}/builds/images/android-build-step2.png (100%) rename {vsts-docs => obsolete/vsts-docs}/builds/images/android-build-step3.png (100%) rename {vsts-docs => obsolete/vsts-docs}/builds/images/android-build-step4.png (100%) rename {vsts-docs => obsolete/vsts-docs}/builds/images/android-build-step5.png (100%) rename {vsts-docs => obsolete/vsts-docs}/builds/images/android-build.png (100%) rename {vsts-docs => obsolete/vsts-docs}/builds/images/ios-build-step1.png (100%) rename {vsts-docs => obsolete/vsts-docs}/builds/images/ios-build-step2.png (100%) rename {vsts-docs => obsolete/vsts-docs}/builds/images/ios-build-step3.png (100%) rename {vsts-docs => obsolete/vsts-docs}/builds/images/ios-build.png (100%) rename {vsts-docs => obsolete/vsts-docs}/builds/xamarin-android.md (100%) rename {vsts-docs => obsolete/vsts-docs}/builds/xamarin-iOS.md (100%) rename {vsts-docs => obsolete/vsts-docs}/readme.md (100%) delete mode 100644 restore-packages.cmd rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3.info (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/component/Details.md (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/component/GettingStarted.md (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/component/License.md (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/component/Manifest.xml (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/component/icons/GeolocatorPlugin_128x128.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/component/icons/GeolocatorPlugin_512x512.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample.sln (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Assets/AboutAssets.txt (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/GeolocatorSample.Droid.csproj (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/MainActivity.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/PluginsHelp/GeolocatorReadme.txt (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Properties/AndroidManifest.xml (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Properties/AssemblyInfo.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/AboutResources.txt (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/Resource.Designer.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-hdpi/icon.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-xhdpi/icon.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-xxhdpi/icon.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable/icon.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/packages.config (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/App.xaml (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/App.xaml.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/AlignmentGrid.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/ApplicationIcon.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileLarge.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileMedium.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileSmall.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/IconicTileMediumLarge.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/IconicTileSmall.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/GeolocatorSample.WinPhone.csproj (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/LocalizedStrings.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/MainPage.xaml (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/MainPage.xaml.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/PluginsHelp/GeolocatorReadme.txt (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/AppManifest.xml (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/AssemblyInfo.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/WMAppManifest.xml (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/README_FIRST.txt (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Resources/AppResources.Designer.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Resources/AppResources.resx (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/SplashScreenImage.jpg (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Add.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Cancel.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Check.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Delete.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Select.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/packages.config (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/AppDelegate.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Entitlements.plist (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/GeolocatorSample.iOS.csproj (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Info.plist (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Main.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/PluginsHelp/GeolocatorReadme.txt (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Properties/AssemblyInfo.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-568h@2x.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-Portrait.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-Portrait@2x.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default@2x.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-60@2x.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-60@3x.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-76.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-76@2x.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40@2x.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40@3x.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small@2x.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small@3x.png (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/LaunchScreen.storyboard (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/iTunesArtwork (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/iTunesArtwork@2x (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/packages.config (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/App.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/GeolocatorSample.csproj (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/PluginsHelp/GeolocatorReadme.txt (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/Properties/AssemblyInfo.cs (100%) rename {Components => src/Mobile/Components}/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/packages.config (100%) diff --git a/deploy/az/azurefunctions/azurefunctionsdeploy.json b/deploy/azure/az/azurefunctions/azurefunctionsdeploy.json similarity index 100% rename from deploy/az/azurefunctions/azurefunctionsdeploy.json rename to deploy/azure/az/azurefunctions/azurefunctionsdeploy.json diff --git a/deploy/az/azurefunctions/azurefunctionsdeploy.parameters.json b/deploy/azure/az/azurefunctions/azurefunctionsdeploy.parameters.json similarity index 100% rename from deploy/az/azurefunctions/azurefunctionsdeploy.parameters.json rename to deploy/azure/az/azurefunctions/azurefunctionsdeploy.parameters.json diff --git a/deploy/az/azurefunctions/readme.md b/deploy/azure/az/azurefunctions/readme.md similarity index 100% rename from deploy/az/azurefunctions/readme.md rename to deploy/azure/az/azurefunctions/readme.md diff --git a/deploy/az/cosmos/deploycosmos.json b/deploy/azure/az/cosmos/deploycosmos.json similarity index 100% rename from deploy/az/cosmos/deploycosmos.json rename to deploy/azure/az/cosmos/deploycosmos.json diff --git a/deploy/az/cosmos/deploycosmos.parameters.json b/deploy/azure/az/cosmos/deploycosmos.parameters.json similarity index 100% rename from deploy/az/cosmos/deploycosmos.parameters.json rename to deploy/azure/az/cosmos/deploycosmos.parameters.json diff --git a/deploy/az/cosmos/readme.md b/deploy/azure/az/cosmos/readme.md similarity index 100% rename from deploy/az/cosmos/readme.md rename to deploy/azure/az/cosmos/readme.md diff --git a/deploy/az/create-resources.cmd b/deploy/azure/az/create-resources.cmd similarity index 100% rename from deploy/az/create-resources.cmd rename to deploy/azure/az/create-resources.cmd diff --git a/deploy/az/createresources.sh b/deploy/azure/az/createresources.sh similarity index 100% rename from deploy/az/createresources.sh rename to deploy/azure/az/createresources.sh diff --git a/deploy/az/readme.md b/deploy/azure/az/readme.md similarity index 100% rename from deploy/az/readme.md rename to deploy/azure/az/readme.md diff --git a/deploy/az/redis/readme.md b/deploy/azure/az/redis/readme.md similarity index 100% rename from deploy/az/redis/readme.md rename to deploy/azure/az/redis/readme.md diff --git a/deploy/az/redis/redisdeploy.json b/deploy/azure/az/redis/redisdeploy.json similarity index 100% rename from deploy/az/redis/redisdeploy.json rename to deploy/azure/az/redis/redisdeploy.json diff --git a/deploy/az/redis/redisdeploy.parameters.json b/deploy/azure/az/redis/redisdeploy.parameters.json similarity index 100% rename from deploy/az/redis/redisdeploy.parameters.json rename to deploy/azure/az/redis/redisdeploy.parameters.json diff --git a/deploy/az/servicebus/readme.md b/deploy/azure/az/servicebus/readme.md similarity index 100% rename from deploy/az/servicebus/readme.md rename to deploy/azure/az/servicebus/readme.md diff --git a/deploy/az/servicebus/sbusdeploy.json b/deploy/azure/az/servicebus/sbusdeploy.json similarity index 100% rename from deploy/az/servicebus/sbusdeploy.json rename to deploy/azure/az/servicebus/sbusdeploy.json diff --git a/deploy/az/servicebus/sbusdeploy.parameters.json b/deploy/azure/az/servicebus/sbusdeploy.parameters.json similarity index 100% rename from deploy/az/servicebus/sbusdeploy.parameters.json rename to deploy/azure/az/servicebus/sbusdeploy.parameters.json diff --git a/deploy/az/servicefabric/LinuxContainers/gen-keyvaultcert.ps1 b/deploy/azure/az/servicefabric/LinuxContainers/gen-keyvaultcert.ps1 similarity index 100% rename from deploy/az/servicefabric/LinuxContainers/gen-keyvaultcert.ps1 rename to deploy/azure/az/servicefabric/LinuxContainers/gen-keyvaultcert.ps1 diff --git a/deploy/az/servicefabric/LinuxContainers/readme.md b/deploy/azure/az/servicefabric/LinuxContainers/readme.md similarity index 100% rename from deploy/az/servicefabric/LinuxContainers/readme.md rename to deploy/azure/az/servicefabric/LinuxContainers/readme.md diff --git a/deploy/az/servicefabric/LinuxContainers/servicefabricdeploy.json b/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploy.json similarity index 100% rename from deploy/az/servicefabric/LinuxContainers/servicefabricdeploy.json rename to deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploy.json diff --git a/deploy/az/servicefabric/LinuxContainers/servicefabricdeploy.parameters.json b/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploy.parameters.json similarity index 100% rename from deploy/az/servicefabric/LinuxContainers/servicefabricdeploy.parameters.json rename to deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploy.parameters.json diff --git a/deploy/az/servicefabric/LinuxContainers/servicefabricdeploysecured.json b/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploysecured.json similarity index 100% rename from deploy/az/servicefabric/LinuxContainers/servicefabricdeploysecured.json rename to deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploysecured.json diff --git a/deploy/az/servicefabric/LinuxContainers/servicefabricdeploysecured.parameters.json b/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploysecured.parameters.json similarity index 100% rename from deploy/az/servicefabric/LinuxContainers/servicefabricdeploysecured.parameters.json rename to deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploysecured.parameters.json diff --git a/deploy/az/servicefabric/WindowsContainers/gen-keyvaultcert.ps1 b/deploy/azure/az/servicefabric/WindowsContainers/gen-keyvaultcert.ps1 similarity index 100% rename from deploy/az/servicefabric/WindowsContainers/gen-keyvaultcert.ps1 rename to deploy/azure/az/servicefabric/WindowsContainers/gen-keyvaultcert.ps1 diff --git a/deploy/az/servicefabric/WindowsContainers/readme.md b/deploy/azure/az/servicefabric/WindowsContainers/readme.md similarity index 100% rename from deploy/az/servicefabric/WindowsContainers/readme.md rename to deploy/azure/az/servicefabric/WindowsContainers/readme.md diff --git a/deploy/az/servicefabric/WindowsContainers/servicefabricdeploy.json b/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploy.json similarity index 100% rename from deploy/az/servicefabric/WindowsContainers/servicefabricdeploy.json rename to deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploy.json diff --git a/deploy/az/servicefabric/WindowsContainers/servicefabricdeploy.parameters.json b/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploy.parameters.json similarity index 100% rename from deploy/az/servicefabric/WindowsContainers/servicefabricdeploy.parameters.json rename to deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploy.parameters.json diff --git a/deploy/az/servicefabric/WindowsContainers/servicefabricdeploysecured.json b/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploysecured.json similarity index 100% rename from deploy/az/servicefabric/WindowsContainers/servicefabricdeploysecured.json rename to deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploysecured.json diff --git a/deploy/az/servicefabric/WindowsContainers/servicefabricdeploysecured.parameters.json b/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploysecured.parameters.json similarity index 100% rename from deploy/az/servicefabric/WindowsContainers/servicefabricdeploysecured.parameters.json rename to deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploysecured.parameters.json diff --git a/deploy/az/sql/readme.md b/deploy/azure/az/sql/readme.md similarity index 100% rename from deploy/az/sql/readme.md rename to deploy/azure/az/sql/readme.md diff --git a/deploy/az/sql/sqldeploy.json b/deploy/azure/az/sql/sqldeploy.json similarity index 100% rename from deploy/az/sql/sqldeploy.json rename to deploy/azure/az/sql/sqldeploy.json diff --git a/deploy/az/sql/sqldeploy.parameters.json b/deploy/azure/az/sql/sqldeploy.parameters.json similarity index 100% rename from deploy/az/sql/sqldeploy.parameters.json rename to deploy/azure/az/sql/sqldeploy.parameters.json diff --git a/deploy/az/storage/catalog/deploystorage.json b/deploy/azure/az/storage/catalog/deploystorage.json similarity index 100% rename from deploy/az/storage/catalog/deploystorage.json rename to deploy/azure/az/storage/catalog/deploystorage.json diff --git a/deploy/az/storage/catalog/deploystorage.parameters.json b/deploy/azure/az/storage/catalog/deploystorage.parameters.json similarity index 100% rename from deploy/az/storage/catalog/deploystorage.parameters.json rename to deploy/azure/az/storage/catalog/deploystorage.parameters.json diff --git a/deploy/az/storage/catalog/readme.md b/deploy/azure/az/storage/catalog/readme.md similarity index 100% rename from deploy/az/storage/catalog/readme.md rename to deploy/azure/az/storage/catalog/readme.md diff --git a/deploy/az/storage/marketing/deploystorage.json b/deploy/azure/az/storage/marketing/deploystorage.json similarity index 100% rename from deploy/az/storage/marketing/deploystorage.json rename to deploy/azure/az/storage/marketing/deploystorage.json diff --git a/deploy/az/storage/marketing/deploystorage.parameters.json b/deploy/azure/az/storage/marketing/deploystorage.parameters.json similarity index 100% rename from deploy/az/storage/marketing/deploystorage.parameters.json rename to deploy/azure/az/storage/marketing/deploystorage.parameters.json diff --git a/deploy/az/storage/marketing/readme.md b/deploy/azure/az/storage/marketing/readme.md similarity index 100% rename from deploy/az/storage/marketing/readme.md rename to deploy/azure/az/storage/marketing/readme.md diff --git a/deploy/az/vms/docker-machine.md b/deploy/azure/az/vms/docker-machine.md similarity index 100% rename from deploy/az/vms/docker-machine.md rename to deploy/azure/az/vms/docker-machine.md diff --git a/deploy/az/vms/linux-vm/linuxvm.json b/deploy/azure/az/vms/linux-vm/linuxvm.json similarity index 100% rename from deploy/az/vms/linux-vm/linuxvm.json rename to deploy/azure/az/vms/linux-vm/linuxvm.json diff --git a/deploy/az/vms/linux-vm/linuxvm.parameters.json b/deploy/azure/az/vms/linux-vm/linuxvm.parameters.json similarity index 100% rename from deploy/az/vms/linux-vm/linuxvm.parameters.json rename to deploy/azure/az/vms/linux-vm/linuxvm.parameters.json diff --git a/deploy/az/vms/plain-vm.md b/deploy/azure/az/vms/plain-vm.md similarity index 100% rename from deploy/az/vms/plain-vm.md rename to deploy/azure/az/vms/plain-vm.md diff --git a/deploy/az/vms/readme.md b/deploy/azure/az/vms/readme.md similarity index 100% rename from deploy/az/vms/readme.md rename to deploy/azure/az/vms/readme.md diff --git a/deploy/az/vms/win-vm/windowsvm.json b/deploy/azure/az/vms/win-vm/windowsvm.json similarity index 100% rename from deploy/az/vms/win-vm/windowsvm.json rename to deploy/azure/az/vms/win-vm/windowsvm.json diff --git a/deploy/az/vms/win-vm/windowsvm.parameters.json b/deploy/azure/az/vms/win-vm/windowsvm.parameters.json similarity index 100% rename from deploy/az/vms/win-vm/windowsvm.parameters.json rename to deploy/azure/az/vms/win-vm/windowsvm.parameters.json diff --git a/deploy/readme.md b/deploy/azure/readme.md similarity index 100% rename from deploy/readme.md rename to deploy/azure/readme.md diff --git a/elk/Readme.md b/deploy/elk/Readme.md similarity index 100% rename from elk/Readme.md rename to deploy/elk/Readme.md diff --git a/elk/elasticsearch/Dockerfile b/deploy/elk/elasticsearch/Dockerfile similarity index 100% rename from elk/elasticsearch/Dockerfile rename to deploy/elk/elasticsearch/Dockerfile diff --git a/elk/elasticsearch/config/elasticsearch.yml b/deploy/elk/elasticsearch/config/elasticsearch.yml similarity index 100% rename from elk/elasticsearch/config/elasticsearch.yml rename to deploy/elk/elasticsearch/config/elasticsearch.yml diff --git a/elk/kibana/Dockerfile b/deploy/elk/kibana/Dockerfile similarity index 100% rename from elk/kibana/Dockerfile rename to deploy/elk/kibana/Dockerfile diff --git a/elk/kibana/config/kibana.yml b/deploy/elk/kibana/config/kibana.yml similarity index 100% rename from elk/kibana/config/kibana.yml rename to deploy/elk/kibana/config/kibana.yml diff --git a/elk/logstash/Dockerfile b/deploy/elk/logstash/Dockerfile similarity index 100% rename from elk/logstash/Dockerfile rename to deploy/elk/logstash/Dockerfile diff --git a/elk/logstash/config/logstash.yml b/deploy/elk/logstash/config/logstash.yml similarity index 100% rename from elk/logstash/config/logstash.yml rename to deploy/elk/logstash/config/logstash.yml diff --git a/elk/logstash/pipeline/logstash.conf b/deploy/elk/logstash/pipeline/logstash.conf similarity index 100% rename from elk/logstash/pipeline/logstash.conf rename to deploy/elk/logstash/pipeline/logstash.conf diff --git a/k8s/README.CICD.k8s.md b/deploy/k8s/README.CICD.k8s.md similarity index 100% rename from k8s/README.CICD.k8s.md rename to deploy/k8s/README.CICD.k8s.md diff --git a/k8s/README.k8s.md b/deploy/k8s/README.k8s.md similarity index 100% rename from k8s/README.k8s.md rename to deploy/k8s/README.k8s.md diff --git a/k8s/build-push-images.ps1 b/deploy/k8s/build-push-images.ps1 similarity index 100% rename from k8s/build-push-images.ps1 rename to deploy/k8s/build-push-images.ps1 diff --git a/k8s/conf-files.md b/deploy/k8s/conf-files.md similarity index 100% rename from k8s/conf-files.md rename to deploy/k8s/conf-files.md diff --git a/k8s/conf_cloud.yaml b/deploy/k8s/conf_cloud.yaml similarity index 100% rename from k8s/conf_cloud.yaml rename to deploy/k8s/conf_cloud.yaml diff --git a/k8s/conf_local.yaml b/deploy/k8s/conf_local.yaml similarity index 100% rename from k8s/conf_local.yaml rename to deploy/k8s/conf_local.yaml diff --git a/k8s/deploy-ingress-azure.ps1 b/deploy/k8s/deploy-ingress-azure.ps1 similarity index 100% rename from k8s/deploy-ingress-azure.ps1 rename to deploy/k8s/deploy-ingress-azure.ps1 diff --git a/k8s/deploy-ingress-dockerlocal.ps1 b/deploy/k8s/deploy-ingress-dockerlocal.ps1 similarity index 100% rename from k8s/deploy-ingress-dockerlocal.ps1 rename to deploy/k8s/deploy-ingress-dockerlocal.ps1 diff --git a/k8s/deploy-ingress.ps1 b/deploy/k8s/deploy-ingress.ps1 similarity index 100% rename from k8s/deploy-ingress.ps1 rename to deploy/k8s/deploy-ingress.ps1 diff --git a/k8s/deploy-nodeports.ps1 b/deploy/k8s/deploy-nodeports.ps1 similarity index 100% rename from k8s/deploy-nodeports.ps1 rename to deploy/k8s/deploy-nodeports.ps1 diff --git a/k8s/deploy.ps1 b/deploy/k8s/deploy.ps1 similarity index 100% rename from k8s/deploy.ps1 rename to deploy/k8s/deploy.ps1 diff --git a/k8s/deploy.sh b/deploy/k8s/deploy.sh old mode 100755 new mode 100644 similarity index 100% rename from k8s/deploy.sh rename to deploy/k8s/deploy.sh diff --git a/k8s/gen-k8s-env-aks.ps1 b/deploy/k8s/gen-k8s-env-aks.ps1 similarity index 100% rename from k8s/gen-k8s-env-aks.ps1 rename to deploy/k8s/gen-k8s-env-aks.ps1 diff --git a/k8s/helm-rbac.yaml b/deploy/k8s/helm-rbac.yaml similarity index 100% rename from k8s/helm-rbac.yaml rename to deploy/k8s/helm-rbac.yaml diff --git a/k8s/helm/aks-httpaddon-cfg.yaml b/deploy/k8s/helm/aks-httpaddon-cfg.yaml similarity index 100% rename from k8s/helm/aks-httpaddon-cfg.yaml rename to deploy/k8s/helm/aks-httpaddon-cfg.yaml diff --git a/k8s/helm/apigwmm/.helmignore b/deploy/k8s/helm/apigwmm/.helmignore similarity index 100% rename from k8s/helm/apigwmm/.helmignore rename to deploy/k8s/helm/apigwmm/.helmignore diff --git a/k8s/helm/apigwmm/Chart.yaml b/deploy/k8s/helm/apigwmm/Chart.yaml similarity index 100% rename from k8s/helm/apigwmm/Chart.yaml rename to deploy/k8s/helm/apigwmm/Chart.yaml diff --git a/k8s/helm/apigwmm/envoy.yaml b/deploy/k8s/helm/apigwmm/envoy.yaml similarity index 100% rename from k8s/helm/apigwmm/envoy.yaml rename to deploy/k8s/helm/apigwmm/envoy.yaml diff --git a/k8s/helm/apigwmm/templates/NOTES.txt b/deploy/k8s/helm/apigwmm/templates/NOTES.txt similarity index 100% rename from k8s/helm/apigwmm/templates/NOTES.txt rename to deploy/k8s/helm/apigwmm/templates/NOTES.txt diff --git a/k8s/helm/apigwmm/templates/_helpers.tpl b/deploy/k8s/helm/apigwmm/templates/_helpers.tpl similarity index 100% rename from k8s/helm/apigwmm/templates/_helpers.tpl rename to deploy/k8s/helm/apigwmm/templates/_helpers.tpl diff --git a/k8s/helm/apigwmm/templates/_names.tpl b/deploy/k8s/helm/apigwmm/templates/_names.tpl similarity index 100% rename from k8s/helm/apigwmm/templates/_names.tpl rename to deploy/k8s/helm/apigwmm/templates/_names.tpl diff --git a/k8s/helm/apigwmm/templates/deployment.yaml b/deploy/k8s/helm/apigwmm/templates/deployment.yaml similarity index 100% rename from k8s/helm/apigwmm/templates/deployment.yaml rename to deploy/k8s/helm/apigwmm/templates/deployment.yaml diff --git a/k8s/helm/apigwmm/templates/envoy-cm.yaml b/deploy/k8s/helm/apigwmm/templates/envoy-cm.yaml similarity index 100% rename from k8s/helm/apigwmm/templates/envoy-cm.yaml rename to deploy/k8s/helm/apigwmm/templates/envoy-cm.yaml diff --git a/k8s/helm/apigwmm/templates/ingress.yaml b/deploy/k8s/helm/apigwmm/templates/ingress.yaml similarity index 100% rename from k8s/helm/apigwmm/templates/ingress.yaml rename to deploy/k8s/helm/apigwmm/templates/ingress.yaml diff --git a/k8s/helm/apigwmm/templates/service.yaml b/deploy/k8s/helm/apigwmm/templates/service.yaml similarity index 100% rename from k8s/helm/apigwmm/templates/service.yaml rename to deploy/k8s/helm/apigwmm/templates/service.yaml diff --git a/k8s/helm/apigwmm/values.yaml b/deploy/k8s/helm/apigwmm/values.yaml similarity index 100% rename from k8s/helm/apigwmm/values.yaml rename to deploy/k8s/helm/apigwmm/values.yaml diff --git a/k8s/helm/apigwms/.helmignore b/deploy/k8s/helm/apigwms/.helmignore similarity index 100% rename from k8s/helm/apigwms/.helmignore rename to deploy/k8s/helm/apigwms/.helmignore diff --git a/k8s/helm/apigwms/Chart.yaml b/deploy/k8s/helm/apigwms/Chart.yaml similarity index 100% rename from k8s/helm/apigwms/Chart.yaml rename to deploy/k8s/helm/apigwms/Chart.yaml diff --git a/k8s/helm/apigwms/envoy.yaml b/deploy/k8s/helm/apigwms/envoy.yaml similarity index 100% rename from k8s/helm/apigwms/envoy.yaml rename to deploy/k8s/helm/apigwms/envoy.yaml diff --git a/k8s/helm/apigwms/templates/NOTES.txt b/deploy/k8s/helm/apigwms/templates/NOTES.txt similarity index 100% rename from k8s/helm/apigwms/templates/NOTES.txt rename to deploy/k8s/helm/apigwms/templates/NOTES.txt diff --git a/k8s/helm/apigwms/templates/_helpers.tpl b/deploy/k8s/helm/apigwms/templates/_helpers.tpl similarity index 100% rename from k8s/helm/apigwms/templates/_helpers.tpl rename to deploy/k8s/helm/apigwms/templates/_helpers.tpl diff --git a/k8s/helm/apigwms/templates/_names.tpl b/deploy/k8s/helm/apigwms/templates/_names.tpl similarity index 100% rename from k8s/helm/apigwms/templates/_names.tpl rename to deploy/k8s/helm/apigwms/templates/_names.tpl diff --git a/k8s/helm/apigwms/templates/deployment.yaml b/deploy/k8s/helm/apigwms/templates/deployment.yaml similarity index 100% rename from k8s/helm/apigwms/templates/deployment.yaml rename to deploy/k8s/helm/apigwms/templates/deployment.yaml diff --git a/k8s/helm/apigwms/templates/envoy-cm.yaml b/deploy/k8s/helm/apigwms/templates/envoy-cm.yaml similarity index 100% rename from k8s/helm/apigwms/templates/envoy-cm.yaml rename to deploy/k8s/helm/apigwms/templates/envoy-cm.yaml diff --git a/k8s/helm/apigwms/templates/ingress.yaml b/deploy/k8s/helm/apigwms/templates/ingress.yaml similarity index 100% rename from k8s/helm/apigwms/templates/ingress.yaml rename to deploy/k8s/helm/apigwms/templates/ingress.yaml diff --git a/k8s/helm/apigwms/templates/service.yaml b/deploy/k8s/helm/apigwms/templates/service.yaml similarity index 100% rename from k8s/helm/apigwms/templates/service.yaml rename to deploy/k8s/helm/apigwms/templates/service.yaml diff --git a/k8s/helm/apigwms/values.yaml b/deploy/k8s/helm/apigwms/values.yaml similarity index 100% rename from k8s/helm/apigwms/values.yaml rename to deploy/k8s/helm/apigwms/values.yaml diff --git a/k8s/helm/apigwwm/.helmignore b/deploy/k8s/helm/apigwwm/.helmignore similarity index 100% rename from k8s/helm/apigwwm/.helmignore rename to deploy/k8s/helm/apigwwm/.helmignore diff --git a/k8s/helm/apigwwm/Chart.yaml b/deploy/k8s/helm/apigwwm/Chart.yaml similarity index 100% rename from k8s/helm/apigwwm/Chart.yaml rename to deploy/k8s/helm/apigwwm/Chart.yaml diff --git a/k8s/helm/apigwwm/envoy.yaml b/deploy/k8s/helm/apigwwm/envoy.yaml similarity index 100% rename from k8s/helm/apigwwm/envoy.yaml rename to deploy/k8s/helm/apigwwm/envoy.yaml diff --git a/k8s/helm/apigwwm/templates/NOTES.txt b/deploy/k8s/helm/apigwwm/templates/NOTES.txt similarity index 100% rename from k8s/helm/apigwwm/templates/NOTES.txt rename to deploy/k8s/helm/apigwwm/templates/NOTES.txt diff --git a/k8s/helm/apigwwm/templates/_helpers.tpl b/deploy/k8s/helm/apigwwm/templates/_helpers.tpl similarity index 100% rename from k8s/helm/apigwwm/templates/_helpers.tpl rename to deploy/k8s/helm/apigwwm/templates/_helpers.tpl diff --git a/k8s/helm/apigwwm/templates/_names.tpl b/deploy/k8s/helm/apigwwm/templates/_names.tpl similarity index 100% rename from k8s/helm/apigwwm/templates/_names.tpl rename to deploy/k8s/helm/apigwwm/templates/_names.tpl diff --git a/k8s/helm/apigwwm/templates/deployment.yaml b/deploy/k8s/helm/apigwwm/templates/deployment.yaml similarity index 100% rename from k8s/helm/apigwwm/templates/deployment.yaml rename to deploy/k8s/helm/apigwwm/templates/deployment.yaml diff --git a/k8s/helm/apigwwm/templates/envoy-cm.yaml b/deploy/k8s/helm/apigwwm/templates/envoy-cm.yaml similarity index 100% rename from k8s/helm/apigwwm/templates/envoy-cm.yaml rename to deploy/k8s/helm/apigwwm/templates/envoy-cm.yaml diff --git a/k8s/helm/apigwwm/templates/ingress.yaml b/deploy/k8s/helm/apigwwm/templates/ingress.yaml similarity index 100% rename from k8s/helm/apigwwm/templates/ingress.yaml rename to deploy/k8s/helm/apigwwm/templates/ingress.yaml diff --git a/k8s/helm/apigwwm/templates/service.yaml b/deploy/k8s/helm/apigwwm/templates/service.yaml similarity index 100% rename from k8s/helm/apigwwm/templates/service.yaml rename to deploy/k8s/helm/apigwwm/templates/service.yaml diff --git a/k8s/helm/apigwwm/values.yaml b/deploy/k8s/helm/apigwwm/values.yaml similarity index 100% rename from k8s/helm/apigwwm/values.yaml rename to deploy/k8s/helm/apigwwm/values.yaml diff --git a/k8s/helm/apigwws/.helmignore b/deploy/k8s/helm/apigwws/.helmignore similarity index 100% rename from k8s/helm/apigwws/.helmignore rename to deploy/k8s/helm/apigwws/.helmignore diff --git a/k8s/helm/apigwws/Chart.yaml b/deploy/k8s/helm/apigwws/Chart.yaml similarity index 100% rename from k8s/helm/apigwws/Chart.yaml rename to deploy/k8s/helm/apigwws/Chart.yaml diff --git a/k8s/helm/apigwws/envoy.yaml b/deploy/k8s/helm/apigwws/envoy.yaml similarity index 100% rename from k8s/helm/apigwws/envoy.yaml rename to deploy/k8s/helm/apigwws/envoy.yaml diff --git a/k8s/helm/apigwws/templates/NOTES.txt b/deploy/k8s/helm/apigwws/templates/NOTES.txt similarity index 100% rename from k8s/helm/apigwws/templates/NOTES.txt rename to deploy/k8s/helm/apigwws/templates/NOTES.txt diff --git a/k8s/helm/apigwws/templates/_helpers.tpl b/deploy/k8s/helm/apigwws/templates/_helpers.tpl similarity index 100% rename from k8s/helm/apigwws/templates/_helpers.tpl rename to deploy/k8s/helm/apigwws/templates/_helpers.tpl diff --git a/k8s/helm/apigwws/templates/_names.tpl b/deploy/k8s/helm/apigwws/templates/_names.tpl similarity index 100% rename from k8s/helm/apigwws/templates/_names.tpl rename to deploy/k8s/helm/apigwws/templates/_names.tpl diff --git a/k8s/helm/apigwws/templates/deployment.yaml b/deploy/k8s/helm/apigwws/templates/deployment.yaml similarity index 100% rename from k8s/helm/apigwws/templates/deployment.yaml rename to deploy/k8s/helm/apigwws/templates/deployment.yaml diff --git a/k8s/helm/apigwws/templates/envoy-cm.yaml b/deploy/k8s/helm/apigwws/templates/envoy-cm.yaml similarity index 100% rename from k8s/helm/apigwws/templates/envoy-cm.yaml rename to deploy/k8s/helm/apigwws/templates/envoy-cm.yaml diff --git a/k8s/helm/apigwws/templates/ingress.yaml b/deploy/k8s/helm/apigwws/templates/ingress.yaml similarity index 100% rename from k8s/helm/apigwws/templates/ingress.yaml rename to deploy/k8s/helm/apigwws/templates/ingress.yaml diff --git a/k8s/helm/apigwws/templates/service.yaml b/deploy/k8s/helm/apigwws/templates/service.yaml similarity index 100% rename from k8s/helm/apigwws/templates/service.yaml rename to deploy/k8s/helm/apigwws/templates/service.yaml diff --git a/k8s/helm/apigwws/values.yaml b/deploy/k8s/helm/apigwws/values.yaml similarity index 100% rename from k8s/helm/apigwws/values.yaml rename to deploy/k8s/helm/apigwws/values.yaml diff --git a/k8s/helm/app.yaml b/deploy/k8s/helm/app.yaml similarity index 100% rename from k8s/helm/app.yaml rename to deploy/k8s/helm/app.yaml diff --git a/k8s/helm/basket-api/.helmignore b/deploy/k8s/helm/basket-api/.helmignore similarity index 100% rename from k8s/helm/basket-api/.helmignore rename to deploy/k8s/helm/basket-api/.helmignore diff --git a/k8s/helm/basket-api/Chart.yaml b/deploy/k8s/helm/basket-api/Chart.yaml similarity index 100% rename from k8s/helm/basket-api/Chart.yaml rename to deploy/k8s/helm/basket-api/Chart.yaml diff --git a/k8s/helm/basket-api/templates/NOTES.txt b/deploy/k8s/helm/basket-api/templates/NOTES.txt similarity index 100% rename from k8s/helm/basket-api/templates/NOTES.txt rename to deploy/k8s/helm/basket-api/templates/NOTES.txt diff --git a/k8s/helm/basket-api/templates/_helpers.tpl b/deploy/k8s/helm/basket-api/templates/_helpers.tpl similarity index 100% rename from k8s/helm/basket-api/templates/_helpers.tpl rename to deploy/k8s/helm/basket-api/templates/_helpers.tpl diff --git a/k8s/helm/basket-api/templates/_names.tpl b/deploy/k8s/helm/basket-api/templates/_names.tpl similarity index 100% rename from k8s/helm/basket-api/templates/_names.tpl rename to deploy/k8s/helm/basket-api/templates/_names.tpl diff --git a/k8s/helm/basket-api/templates/configmap.yaml b/deploy/k8s/helm/basket-api/templates/configmap.yaml similarity index 100% rename from k8s/helm/basket-api/templates/configmap.yaml rename to deploy/k8s/helm/basket-api/templates/configmap.yaml diff --git a/k8s/helm/basket-api/templates/deployment.yaml b/deploy/k8s/helm/basket-api/templates/deployment.yaml similarity index 100% rename from k8s/helm/basket-api/templates/deployment.yaml rename to deploy/k8s/helm/basket-api/templates/deployment.yaml diff --git a/k8s/helm/basket-api/templates/ingress.yaml b/deploy/k8s/helm/basket-api/templates/ingress.yaml similarity index 100% rename from k8s/helm/basket-api/templates/ingress.yaml rename to deploy/k8s/helm/basket-api/templates/ingress.yaml diff --git a/k8s/helm/basket-api/templates/service.yaml b/deploy/k8s/helm/basket-api/templates/service.yaml similarity index 100% rename from k8s/helm/basket-api/templates/service.yaml rename to deploy/k8s/helm/basket-api/templates/service.yaml diff --git a/k8s/helm/basket-api/values.yaml b/deploy/k8s/helm/basket-api/values.yaml similarity index 100% rename from k8s/helm/basket-api/values.yaml rename to deploy/k8s/helm/basket-api/values.yaml diff --git a/k8s/helm/basket-data/.helmignore b/deploy/k8s/helm/basket-data/.helmignore similarity index 100% rename from k8s/helm/basket-data/.helmignore rename to deploy/k8s/helm/basket-data/.helmignore diff --git a/k8s/helm/basket-data/Chart.yaml b/deploy/k8s/helm/basket-data/Chart.yaml similarity index 100% rename from k8s/helm/basket-data/Chart.yaml rename to deploy/k8s/helm/basket-data/Chart.yaml diff --git a/k8s/helm/basket-data/templates/NOTES.txt b/deploy/k8s/helm/basket-data/templates/NOTES.txt similarity index 100% rename from k8s/helm/basket-data/templates/NOTES.txt rename to deploy/k8s/helm/basket-data/templates/NOTES.txt diff --git a/k8s/helm/basket-data/templates/_helpers.tpl b/deploy/k8s/helm/basket-data/templates/_helpers.tpl similarity index 100% rename from k8s/helm/basket-data/templates/_helpers.tpl rename to deploy/k8s/helm/basket-data/templates/_helpers.tpl diff --git a/k8s/helm/basket-data/templates/deployment.yaml b/deploy/k8s/helm/basket-data/templates/deployment.yaml similarity index 100% rename from k8s/helm/basket-data/templates/deployment.yaml rename to deploy/k8s/helm/basket-data/templates/deployment.yaml diff --git a/k8s/helm/basket-data/templates/service.yaml b/deploy/k8s/helm/basket-data/templates/service.yaml similarity index 100% rename from k8s/helm/basket-data/templates/service.yaml rename to deploy/k8s/helm/basket-data/templates/service.yaml diff --git a/k8s/helm/basket-data/values.yaml b/deploy/k8s/helm/basket-data/values.yaml similarity index 100% rename from k8s/helm/basket-data/values.yaml rename to deploy/k8s/helm/basket-data/values.yaml diff --git a/k8s/helm/catalog-api/.helmignore b/deploy/k8s/helm/catalog-api/.helmignore similarity index 100% rename from k8s/helm/catalog-api/.helmignore rename to deploy/k8s/helm/catalog-api/.helmignore diff --git a/k8s/helm/catalog-api/Chart.yaml b/deploy/k8s/helm/catalog-api/Chart.yaml similarity index 100% rename from k8s/helm/catalog-api/Chart.yaml rename to deploy/k8s/helm/catalog-api/Chart.yaml diff --git a/k8s/helm/catalog-api/templates/NOTES.txt b/deploy/k8s/helm/catalog-api/templates/NOTES.txt similarity index 100% rename from k8s/helm/catalog-api/templates/NOTES.txt rename to deploy/k8s/helm/catalog-api/templates/NOTES.txt diff --git a/k8s/helm/catalog-api/templates/_helpers.tpl b/deploy/k8s/helm/catalog-api/templates/_helpers.tpl similarity index 100% rename from k8s/helm/catalog-api/templates/_helpers.tpl rename to deploy/k8s/helm/catalog-api/templates/_helpers.tpl diff --git a/k8s/helm/catalog-api/templates/_names.tpl b/deploy/k8s/helm/catalog-api/templates/_names.tpl similarity index 100% rename from k8s/helm/catalog-api/templates/_names.tpl rename to deploy/k8s/helm/catalog-api/templates/_names.tpl diff --git a/k8s/helm/catalog-api/templates/configmap.yaml b/deploy/k8s/helm/catalog-api/templates/configmap.yaml similarity index 100% rename from k8s/helm/catalog-api/templates/configmap.yaml rename to deploy/k8s/helm/catalog-api/templates/configmap.yaml diff --git a/k8s/helm/catalog-api/templates/deployment.yaml b/deploy/k8s/helm/catalog-api/templates/deployment.yaml similarity index 100% rename from k8s/helm/catalog-api/templates/deployment.yaml rename to deploy/k8s/helm/catalog-api/templates/deployment.yaml diff --git a/k8s/helm/catalog-api/templates/ingress.yaml b/deploy/k8s/helm/catalog-api/templates/ingress.yaml similarity index 100% rename from k8s/helm/catalog-api/templates/ingress.yaml rename to deploy/k8s/helm/catalog-api/templates/ingress.yaml diff --git a/k8s/helm/catalog-api/templates/service.yaml b/deploy/k8s/helm/catalog-api/templates/service.yaml similarity index 100% rename from k8s/helm/catalog-api/templates/service.yaml rename to deploy/k8s/helm/catalog-api/templates/service.yaml diff --git a/k8s/helm/catalog-api/values.yaml b/deploy/k8s/helm/catalog-api/values.yaml similarity index 100% rename from k8s/helm/catalog-api/values.yaml rename to deploy/k8s/helm/catalog-api/values.yaml diff --git a/k8s/helm/deploy-all-istio.ps1 b/deploy/k8s/helm/deploy-all-istio.ps1 similarity index 100% rename from k8s/helm/deploy-all-istio.ps1 rename to deploy/k8s/helm/deploy-all-istio.ps1 diff --git a/k8s/helm/deploy-all.ps1 b/deploy/k8s/helm/deploy-all.ps1 similarity index 100% rename from k8s/helm/deploy-all.ps1 rename to deploy/k8s/helm/deploy-all.ps1 diff --git a/k8s/helm/deploy-all.sh b/deploy/k8s/helm/deploy-all.sh old mode 100755 new mode 100644 similarity index 100% rename from k8s/helm/deploy-all.sh rename to deploy/k8s/helm/deploy-all.sh diff --git a/k8s/helm/eshop-common/.helmignore b/deploy/k8s/helm/eshop-common/.helmignore similarity index 100% rename from k8s/helm/eshop-common/.helmignore rename to deploy/k8s/helm/eshop-common/.helmignore diff --git a/k8s/helm/eshop-common/Chart.yaml b/deploy/k8s/helm/eshop-common/Chart.yaml similarity index 100% rename from k8s/helm/eshop-common/Chart.yaml rename to deploy/k8s/helm/eshop-common/Chart.yaml diff --git a/k8s/helm/eshop-common/templates/NOTES.txt b/deploy/k8s/helm/eshop-common/templates/NOTES.txt similarity index 100% rename from k8s/helm/eshop-common/templates/NOTES.txt rename to deploy/k8s/helm/eshop-common/templates/NOTES.txt diff --git a/k8s/helm/eshop-common/templates/_helpers.tpl b/deploy/k8s/helm/eshop-common/templates/_helpers.tpl similarity index 100% rename from k8s/helm/eshop-common/templates/_helpers.tpl rename to deploy/k8s/helm/eshop-common/templates/_helpers.tpl diff --git a/k8s/helm/eshop-common/templates/_names.tpl b/deploy/k8s/helm/eshop-common/templates/_names.tpl similarity index 100% rename from k8s/helm/eshop-common/templates/_names.tpl rename to deploy/k8s/helm/eshop-common/templates/_names.tpl diff --git a/k8s/helm/eshop-common/templates/secret.yaml b/deploy/k8s/helm/eshop-common/templates/secret.yaml similarity index 100% rename from k8s/helm/eshop-common/templates/secret.yaml rename to deploy/k8s/helm/eshop-common/templates/secret.yaml diff --git a/k8s/helm/eshop-common/values.yaml b/deploy/k8s/helm/eshop-common/values.yaml similarity index 100% rename from k8s/helm/eshop-common/values.yaml rename to deploy/k8s/helm/eshop-common/values.yaml diff --git a/k8s/helm/identity-api/.helmignore b/deploy/k8s/helm/identity-api/.helmignore similarity index 100% rename from k8s/helm/identity-api/.helmignore rename to deploy/k8s/helm/identity-api/.helmignore diff --git a/k8s/helm/identity-api/Chart.yaml b/deploy/k8s/helm/identity-api/Chart.yaml similarity index 100% rename from k8s/helm/identity-api/Chart.yaml rename to deploy/k8s/helm/identity-api/Chart.yaml diff --git a/k8s/helm/identity-api/templates/NOTES.txt b/deploy/k8s/helm/identity-api/templates/NOTES.txt similarity index 100% rename from k8s/helm/identity-api/templates/NOTES.txt rename to deploy/k8s/helm/identity-api/templates/NOTES.txt diff --git a/k8s/helm/identity-api/templates/_helpers.tpl b/deploy/k8s/helm/identity-api/templates/_helpers.tpl similarity index 100% rename from k8s/helm/identity-api/templates/_helpers.tpl rename to deploy/k8s/helm/identity-api/templates/_helpers.tpl diff --git a/k8s/helm/identity-api/templates/_names.tpl b/deploy/k8s/helm/identity-api/templates/_names.tpl similarity index 100% rename from k8s/helm/identity-api/templates/_names.tpl rename to deploy/k8s/helm/identity-api/templates/_names.tpl diff --git a/k8s/helm/identity-api/templates/configmap.yaml b/deploy/k8s/helm/identity-api/templates/configmap.yaml similarity index 100% rename from k8s/helm/identity-api/templates/configmap.yaml rename to deploy/k8s/helm/identity-api/templates/configmap.yaml diff --git a/k8s/helm/identity-api/templates/deployment.yaml b/deploy/k8s/helm/identity-api/templates/deployment.yaml similarity index 100% rename from k8s/helm/identity-api/templates/deployment.yaml rename to deploy/k8s/helm/identity-api/templates/deployment.yaml diff --git a/k8s/helm/identity-api/templates/ingress-dockerk8s.yaml b/deploy/k8s/helm/identity-api/templates/ingress-dockerk8s.yaml similarity index 100% rename from k8s/helm/identity-api/templates/ingress-dockerk8s.yaml rename to deploy/k8s/helm/identity-api/templates/ingress-dockerk8s.yaml diff --git a/k8s/helm/identity-api/templates/ingress.yaml b/deploy/k8s/helm/identity-api/templates/ingress.yaml similarity index 100% rename from k8s/helm/identity-api/templates/ingress.yaml rename to deploy/k8s/helm/identity-api/templates/ingress.yaml diff --git a/k8s/helm/identity-api/templates/service.yaml b/deploy/k8s/helm/identity-api/templates/service.yaml similarity index 100% rename from k8s/helm/identity-api/templates/service.yaml rename to deploy/k8s/helm/identity-api/templates/service.yaml diff --git a/k8s/helm/identity-api/values.yaml b/deploy/k8s/helm/identity-api/values.yaml similarity index 100% rename from k8s/helm/identity-api/values.yaml rename to deploy/k8s/helm/identity-api/values.yaml diff --git a/k8s/helm/inf.yaml b/deploy/k8s/helm/inf.yaml similarity index 100% rename from k8s/helm/inf.yaml rename to deploy/k8s/helm/inf.yaml diff --git a/k8s/helm/ingress_values.yaml b/deploy/k8s/helm/ingress_values.yaml similarity index 100% rename from k8s/helm/ingress_values.yaml rename to deploy/k8s/helm/ingress_values.yaml diff --git a/k8s/helm/ingress_values_dockerk8s.yaml b/deploy/k8s/helm/ingress_values_dockerk8s.yaml similarity index 100% rename from k8s/helm/ingress_values_dockerk8s.yaml rename to deploy/k8s/helm/ingress_values_dockerk8s.yaml diff --git a/k8s/helm/ingress_values_linkerd.yaml b/deploy/k8s/helm/ingress_values_linkerd.yaml similarity index 100% rename from k8s/helm/ingress_values_linkerd.yaml rename to deploy/k8s/helm/ingress_values_linkerd.yaml diff --git a/k8s/helm/istio/doc.md b/deploy/k8s/helm/istio/doc.md similarity index 100% rename from k8s/helm/istio/doc.md rename to deploy/k8s/helm/istio/doc.md diff --git a/k8s/helm/istio/gateway.yml b/deploy/k8s/helm/istio/gateway.yml similarity index 100% rename from k8s/helm/istio/gateway.yml rename to deploy/k8s/helm/istio/gateway.yml diff --git a/k8s/helm/istio/virtualservices.yml b/deploy/k8s/helm/istio/virtualservices.yml similarity index 100% rename from k8s/helm/istio/virtualservices.yml rename to deploy/k8s/helm/istio/virtualservices.yml diff --git a/k8s/helm/keystore-data/.helmignore b/deploy/k8s/helm/keystore-data/.helmignore similarity index 100% rename from k8s/helm/keystore-data/.helmignore rename to deploy/k8s/helm/keystore-data/.helmignore diff --git a/k8s/helm/keystore-data/Chart.yaml b/deploy/k8s/helm/keystore-data/Chart.yaml similarity index 100% rename from k8s/helm/keystore-data/Chart.yaml rename to deploy/k8s/helm/keystore-data/Chart.yaml diff --git a/k8s/helm/keystore-data/templates/NOTES.txt b/deploy/k8s/helm/keystore-data/templates/NOTES.txt similarity index 100% rename from k8s/helm/keystore-data/templates/NOTES.txt rename to deploy/k8s/helm/keystore-data/templates/NOTES.txt diff --git a/k8s/helm/keystore-data/templates/_helpers.tpl b/deploy/k8s/helm/keystore-data/templates/_helpers.tpl similarity index 100% rename from k8s/helm/keystore-data/templates/_helpers.tpl rename to deploy/k8s/helm/keystore-data/templates/_helpers.tpl diff --git a/k8s/helm/keystore-data/templates/deployment.yaml b/deploy/k8s/helm/keystore-data/templates/deployment.yaml similarity index 100% rename from k8s/helm/keystore-data/templates/deployment.yaml rename to deploy/k8s/helm/keystore-data/templates/deployment.yaml diff --git a/k8s/helm/keystore-data/templates/service.yaml b/deploy/k8s/helm/keystore-data/templates/service.yaml similarity index 100% rename from k8s/helm/keystore-data/templates/service.yaml rename to deploy/k8s/helm/keystore-data/templates/service.yaml diff --git a/k8s/helm/keystore-data/values.yaml b/deploy/k8s/helm/keystore-data/values.yaml similarity index 100% rename from k8s/helm/keystore-data/values.yaml rename to deploy/k8s/helm/keystore-data/values.yaml diff --git a/k8s/helm/locations-api/.helmignore b/deploy/k8s/helm/locations-api/.helmignore similarity index 100% rename from k8s/helm/locations-api/.helmignore rename to deploy/k8s/helm/locations-api/.helmignore diff --git a/k8s/helm/locations-api/Chart.yaml b/deploy/k8s/helm/locations-api/Chart.yaml similarity index 100% rename from k8s/helm/locations-api/Chart.yaml rename to deploy/k8s/helm/locations-api/Chart.yaml diff --git a/k8s/helm/locations-api/templates/NOTES.txt b/deploy/k8s/helm/locations-api/templates/NOTES.txt similarity index 100% rename from k8s/helm/locations-api/templates/NOTES.txt rename to deploy/k8s/helm/locations-api/templates/NOTES.txt diff --git a/k8s/helm/locations-api/templates/_helpers.tpl b/deploy/k8s/helm/locations-api/templates/_helpers.tpl similarity index 100% rename from k8s/helm/locations-api/templates/_helpers.tpl rename to deploy/k8s/helm/locations-api/templates/_helpers.tpl diff --git a/k8s/helm/locations-api/templates/_names.tpl b/deploy/k8s/helm/locations-api/templates/_names.tpl similarity index 100% rename from k8s/helm/locations-api/templates/_names.tpl rename to deploy/k8s/helm/locations-api/templates/_names.tpl diff --git a/k8s/helm/locations-api/templates/configmap.yaml b/deploy/k8s/helm/locations-api/templates/configmap.yaml similarity index 100% rename from k8s/helm/locations-api/templates/configmap.yaml rename to deploy/k8s/helm/locations-api/templates/configmap.yaml diff --git a/k8s/helm/locations-api/templates/deployment.yaml b/deploy/k8s/helm/locations-api/templates/deployment.yaml similarity index 100% rename from k8s/helm/locations-api/templates/deployment.yaml rename to deploy/k8s/helm/locations-api/templates/deployment.yaml diff --git a/k8s/helm/locations-api/templates/ingress.yaml b/deploy/k8s/helm/locations-api/templates/ingress.yaml similarity index 100% rename from k8s/helm/locations-api/templates/ingress.yaml rename to deploy/k8s/helm/locations-api/templates/ingress.yaml diff --git a/k8s/helm/locations-api/templates/service.yaml b/deploy/k8s/helm/locations-api/templates/service.yaml similarity index 100% rename from k8s/helm/locations-api/templates/service.yaml rename to deploy/k8s/helm/locations-api/templates/service.yaml diff --git a/k8s/helm/locations-api/values.yaml b/deploy/k8s/helm/locations-api/values.yaml similarity index 100% rename from k8s/helm/locations-api/values.yaml rename to deploy/k8s/helm/locations-api/values.yaml diff --git a/k8s/helm/marketing-api/.helmignore b/deploy/k8s/helm/marketing-api/.helmignore similarity index 100% rename from k8s/helm/marketing-api/.helmignore rename to deploy/k8s/helm/marketing-api/.helmignore diff --git a/k8s/helm/marketing-api/Chart.yaml b/deploy/k8s/helm/marketing-api/Chart.yaml similarity index 100% rename from k8s/helm/marketing-api/Chart.yaml rename to deploy/k8s/helm/marketing-api/Chart.yaml diff --git a/k8s/helm/marketing-api/templates/NOTES.txt b/deploy/k8s/helm/marketing-api/templates/NOTES.txt similarity index 100% rename from k8s/helm/marketing-api/templates/NOTES.txt rename to deploy/k8s/helm/marketing-api/templates/NOTES.txt diff --git a/k8s/helm/marketing-api/templates/_helpers.tpl b/deploy/k8s/helm/marketing-api/templates/_helpers.tpl similarity index 100% rename from k8s/helm/marketing-api/templates/_helpers.tpl rename to deploy/k8s/helm/marketing-api/templates/_helpers.tpl diff --git a/k8s/helm/marketing-api/templates/_names.tpl b/deploy/k8s/helm/marketing-api/templates/_names.tpl similarity index 100% rename from k8s/helm/marketing-api/templates/_names.tpl rename to deploy/k8s/helm/marketing-api/templates/_names.tpl diff --git a/k8s/helm/marketing-api/templates/configmap.yaml b/deploy/k8s/helm/marketing-api/templates/configmap.yaml similarity index 100% rename from k8s/helm/marketing-api/templates/configmap.yaml rename to deploy/k8s/helm/marketing-api/templates/configmap.yaml diff --git a/k8s/helm/marketing-api/templates/deployment.yaml b/deploy/k8s/helm/marketing-api/templates/deployment.yaml similarity index 100% rename from k8s/helm/marketing-api/templates/deployment.yaml rename to deploy/k8s/helm/marketing-api/templates/deployment.yaml diff --git a/k8s/helm/marketing-api/templates/ingress.yaml b/deploy/k8s/helm/marketing-api/templates/ingress.yaml similarity index 100% rename from k8s/helm/marketing-api/templates/ingress.yaml rename to deploy/k8s/helm/marketing-api/templates/ingress.yaml diff --git a/k8s/helm/marketing-api/templates/service.yaml b/deploy/k8s/helm/marketing-api/templates/service.yaml similarity index 100% rename from k8s/helm/marketing-api/templates/service.yaml rename to deploy/k8s/helm/marketing-api/templates/service.yaml diff --git a/k8s/helm/marketing-api/values.yaml b/deploy/k8s/helm/marketing-api/values.yaml similarity index 100% rename from k8s/helm/marketing-api/values.yaml rename to deploy/k8s/helm/marketing-api/values.yaml diff --git a/k8s/helm/mobileshoppingagg/.helmignore b/deploy/k8s/helm/mobileshoppingagg/.helmignore similarity index 100% rename from k8s/helm/mobileshoppingagg/.helmignore rename to deploy/k8s/helm/mobileshoppingagg/.helmignore diff --git a/k8s/helm/mobileshoppingagg/Chart.yaml b/deploy/k8s/helm/mobileshoppingagg/Chart.yaml similarity index 100% rename from k8s/helm/mobileshoppingagg/Chart.yaml rename to deploy/k8s/helm/mobileshoppingagg/Chart.yaml diff --git a/k8s/helm/mobileshoppingagg/templates/NOTES.txt b/deploy/k8s/helm/mobileshoppingagg/templates/NOTES.txt similarity index 100% rename from k8s/helm/mobileshoppingagg/templates/NOTES.txt rename to deploy/k8s/helm/mobileshoppingagg/templates/NOTES.txt diff --git a/k8s/helm/mobileshoppingagg/templates/_helpers.tpl b/deploy/k8s/helm/mobileshoppingagg/templates/_helpers.tpl similarity index 100% rename from k8s/helm/mobileshoppingagg/templates/_helpers.tpl rename to deploy/k8s/helm/mobileshoppingagg/templates/_helpers.tpl diff --git a/k8s/helm/mobileshoppingagg/templates/_names.tpl b/deploy/k8s/helm/mobileshoppingagg/templates/_names.tpl similarity index 100% rename from k8s/helm/mobileshoppingagg/templates/_names.tpl rename to deploy/k8s/helm/mobileshoppingagg/templates/_names.tpl diff --git a/k8s/helm/mobileshoppingagg/templates/configmap.yaml b/deploy/k8s/helm/mobileshoppingagg/templates/configmap.yaml similarity index 100% rename from k8s/helm/mobileshoppingagg/templates/configmap.yaml rename to deploy/k8s/helm/mobileshoppingagg/templates/configmap.yaml diff --git a/k8s/helm/mobileshoppingagg/templates/deployment.yaml b/deploy/k8s/helm/mobileshoppingagg/templates/deployment.yaml similarity index 100% rename from k8s/helm/mobileshoppingagg/templates/deployment.yaml rename to deploy/k8s/helm/mobileshoppingagg/templates/deployment.yaml diff --git a/k8s/helm/mobileshoppingagg/templates/ingress.yaml b/deploy/k8s/helm/mobileshoppingagg/templates/ingress.yaml similarity index 100% rename from k8s/helm/mobileshoppingagg/templates/ingress.yaml rename to deploy/k8s/helm/mobileshoppingagg/templates/ingress.yaml diff --git a/k8s/helm/mobileshoppingagg/templates/service.yaml b/deploy/k8s/helm/mobileshoppingagg/templates/service.yaml similarity index 100% rename from k8s/helm/mobileshoppingagg/templates/service.yaml rename to deploy/k8s/helm/mobileshoppingagg/templates/service.yaml diff --git a/k8s/helm/mobileshoppingagg/values.yaml b/deploy/k8s/helm/mobileshoppingagg/values.yaml similarity index 100% rename from k8s/helm/mobileshoppingagg/values.yaml rename to deploy/k8s/helm/mobileshoppingagg/values.yaml diff --git a/k8s/helm/nosql-data/.helmignore b/deploy/k8s/helm/nosql-data/.helmignore similarity index 100% rename from k8s/helm/nosql-data/.helmignore rename to deploy/k8s/helm/nosql-data/.helmignore diff --git a/k8s/helm/nosql-data/Chart.yaml b/deploy/k8s/helm/nosql-data/Chart.yaml similarity index 100% rename from k8s/helm/nosql-data/Chart.yaml rename to deploy/k8s/helm/nosql-data/Chart.yaml diff --git a/k8s/helm/nosql-data/templates/NOTES.txt b/deploy/k8s/helm/nosql-data/templates/NOTES.txt similarity index 100% rename from k8s/helm/nosql-data/templates/NOTES.txt rename to deploy/k8s/helm/nosql-data/templates/NOTES.txt diff --git a/k8s/helm/nosql-data/templates/_helpers.tpl b/deploy/k8s/helm/nosql-data/templates/_helpers.tpl similarity index 100% rename from k8s/helm/nosql-data/templates/_helpers.tpl rename to deploy/k8s/helm/nosql-data/templates/_helpers.tpl diff --git a/k8s/helm/nosql-data/templates/_names.tpl b/deploy/k8s/helm/nosql-data/templates/_names.tpl similarity index 100% rename from k8s/helm/nosql-data/templates/_names.tpl rename to deploy/k8s/helm/nosql-data/templates/_names.tpl diff --git a/k8s/helm/nosql-data/templates/deployment.yaml b/deploy/k8s/helm/nosql-data/templates/deployment.yaml similarity index 100% rename from k8s/helm/nosql-data/templates/deployment.yaml rename to deploy/k8s/helm/nosql-data/templates/deployment.yaml diff --git a/k8s/helm/nosql-data/templates/service.yaml b/deploy/k8s/helm/nosql-data/templates/service.yaml similarity index 100% rename from k8s/helm/nosql-data/templates/service.yaml rename to deploy/k8s/helm/nosql-data/templates/service.yaml diff --git a/k8s/helm/nosql-data/values.yaml b/deploy/k8s/helm/nosql-data/values.yaml similarity index 100% rename from k8s/helm/nosql-data/values.yaml rename to deploy/k8s/helm/nosql-data/values.yaml diff --git a/k8s/helm/ordering-api/.helmignore b/deploy/k8s/helm/ordering-api/.helmignore similarity index 100% rename from k8s/helm/ordering-api/.helmignore rename to deploy/k8s/helm/ordering-api/.helmignore diff --git a/k8s/helm/ordering-api/Chart.yaml b/deploy/k8s/helm/ordering-api/Chart.yaml similarity index 100% rename from k8s/helm/ordering-api/Chart.yaml rename to deploy/k8s/helm/ordering-api/Chart.yaml diff --git a/k8s/helm/ordering-api/templates/NOTES.txt b/deploy/k8s/helm/ordering-api/templates/NOTES.txt similarity index 100% rename from k8s/helm/ordering-api/templates/NOTES.txt rename to deploy/k8s/helm/ordering-api/templates/NOTES.txt diff --git a/k8s/helm/ordering-api/templates/_helpers.tpl b/deploy/k8s/helm/ordering-api/templates/_helpers.tpl similarity index 100% rename from k8s/helm/ordering-api/templates/_helpers.tpl rename to deploy/k8s/helm/ordering-api/templates/_helpers.tpl diff --git a/k8s/helm/ordering-api/templates/_names.tpl b/deploy/k8s/helm/ordering-api/templates/_names.tpl similarity index 100% rename from k8s/helm/ordering-api/templates/_names.tpl rename to deploy/k8s/helm/ordering-api/templates/_names.tpl diff --git a/k8s/helm/ordering-api/templates/configmap.yaml b/deploy/k8s/helm/ordering-api/templates/configmap.yaml similarity index 100% rename from k8s/helm/ordering-api/templates/configmap.yaml rename to deploy/k8s/helm/ordering-api/templates/configmap.yaml diff --git a/k8s/helm/ordering-api/templates/deployment.yaml b/deploy/k8s/helm/ordering-api/templates/deployment.yaml similarity index 100% rename from k8s/helm/ordering-api/templates/deployment.yaml rename to deploy/k8s/helm/ordering-api/templates/deployment.yaml diff --git a/k8s/helm/ordering-api/templates/service.yaml b/deploy/k8s/helm/ordering-api/templates/service.yaml similarity index 100% rename from k8s/helm/ordering-api/templates/service.yaml rename to deploy/k8s/helm/ordering-api/templates/service.yaml diff --git a/k8s/helm/ordering-api/values.yaml b/deploy/k8s/helm/ordering-api/values.yaml similarity index 100% rename from k8s/helm/ordering-api/values.yaml rename to deploy/k8s/helm/ordering-api/values.yaml diff --git a/k8s/helm/ordering-backgroundtasks/.helmignore b/deploy/k8s/helm/ordering-backgroundtasks/.helmignore similarity index 100% rename from k8s/helm/ordering-backgroundtasks/.helmignore rename to deploy/k8s/helm/ordering-backgroundtasks/.helmignore diff --git a/k8s/helm/ordering-backgroundtasks/Chart.yaml b/deploy/k8s/helm/ordering-backgroundtasks/Chart.yaml similarity index 100% rename from k8s/helm/ordering-backgroundtasks/Chart.yaml rename to deploy/k8s/helm/ordering-backgroundtasks/Chart.yaml diff --git a/k8s/helm/ordering-backgroundtasks/templates/NOTES.txt b/deploy/k8s/helm/ordering-backgroundtasks/templates/NOTES.txt similarity index 100% rename from k8s/helm/ordering-backgroundtasks/templates/NOTES.txt rename to deploy/k8s/helm/ordering-backgroundtasks/templates/NOTES.txt diff --git a/k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl b/deploy/k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl similarity index 100% rename from k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl rename to deploy/k8s/helm/ordering-backgroundtasks/templates/_helpers.tpl diff --git a/k8s/helm/ordering-backgroundtasks/templates/_names.tpl b/deploy/k8s/helm/ordering-backgroundtasks/templates/_names.tpl similarity index 100% rename from k8s/helm/ordering-backgroundtasks/templates/_names.tpl rename to deploy/k8s/helm/ordering-backgroundtasks/templates/_names.tpl diff --git a/k8s/helm/ordering-backgroundtasks/templates/configmap.yaml b/deploy/k8s/helm/ordering-backgroundtasks/templates/configmap.yaml similarity index 100% rename from k8s/helm/ordering-backgroundtasks/templates/configmap.yaml rename to deploy/k8s/helm/ordering-backgroundtasks/templates/configmap.yaml diff --git a/k8s/helm/ordering-backgroundtasks/templates/deployment.yaml b/deploy/k8s/helm/ordering-backgroundtasks/templates/deployment.yaml similarity index 100% rename from k8s/helm/ordering-backgroundtasks/templates/deployment.yaml rename to deploy/k8s/helm/ordering-backgroundtasks/templates/deployment.yaml diff --git a/k8s/helm/ordering-backgroundtasks/templates/service.yaml b/deploy/k8s/helm/ordering-backgroundtasks/templates/service.yaml similarity index 100% rename from k8s/helm/ordering-backgroundtasks/templates/service.yaml rename to deploy/k8s/helm/ordering-backgroundtasks/templates/service.yaml diff --git a/k8s/helm/ordering-backgroundtasks/values.yaml b/deploy/k8s/helm/ordering-backgroundtasks/values.yaml similarity index 100% rename from k8s/helm/ordering-backgroundtasks/values.yaml rename to deploy/k8s/helm/ordering-backgroundtasks/values.yaml diff --git a/k8s/helm/ordering-signalrhub/.helmignore b/deploy/k8s/helm/ordering-signalrhub/.helmignore similarity index 100% rename from k8s/helm/ordering-signalrhub/.helmignore rename to deploy/k8s/helm/ordering-signalrhub/.helmignore diff --git a/k8s/helm/ordering-signalrhub/Chart.yaml b/deploy/k8s/helm/ordering-signalrhub/Chart.yaml similarity index 100% rename from k8s/helm/ordering-signalrhub/Chart.yaml rename to deploy/k8s/helm/ordering-signalrhub/Chart.yaml diff --git a/k8s/helm/ordering-signalrhub/templates/NOTES.txt b/deploy/k8s/helm/ordering-signalrhub/templates/NOTES.txt similarity index 100% rename from k8s/helm/ordering-signalrhub/templates/NOTES.txt rename to deploy/k8s/helm/ordering-signalrhub/templates/NOTES.txt diff --git a/k8s/helm/ordering-signalrhub/templates/_helpers.tpl b/deploy/k8s/helm/ordering-signalrhub/templates/_helpers.tpl similarity index 100% rename from k8s/helm/ordering-signalrhub/templates/_helpers.tpl rename to deploy/k8s/helm/ordering-signalrhub/templates/_helpers.tpl diff --git a/k8s/helm/ordering-signalrhub/templates/_names.tpl b/deploy/k8s/helm/ordering-signalrhub/templates/_names.tpl similarity index 100% rename from k8s/helm/ordering-signalrhub/templates/_names.tpl rename to deploy/k8s/helm/ordering-signalrhub/templates/_names.tpl diff --git a/k8s/helm/ordering-signalrhub/templates/configmap.yaml b/deploy/k8s/helm/ordering-signalrhub/templates/configmap.yaml similarity index 100% rename from k8s/helm/ordering-signalrhub/templates/configmap.yaml rename to deploy/k8s/helm/ordering-signalrhub/templates/configmap.yaml diff --git a/k8s/helm/ordering-signalrhub/templates/deployment.yaml b/deploy/k8s/helm/ordering-signalrhub/templates/deployment.yaml similarity index 100% rename from k8s/helm/ordering-signalrhub/templates/deployment.yaml rename to deploy/k8s/helm/ordering-signalrhub/templates/deployment.yaml diff --git a/k8s/helm/ordering-signalrhub/templates/service.yaml b/deploy/k8s/helm/ordering-signalrhub/templates/service.yaml similarity index 100% rename from k8s/helm/ordering-signalrhub/templates/service.yaml rename to deploy/k8s/helm/ordering-signalrhub/templates/service.yaml diff --git a/k8s/helm/ordering-signalrhub/values.yaml b/deploy/k8s/helm/ordering-signalrhub/values.yaml similarity index 100% rename from k8s/helm/ordering-signalrhub/values.yaml rename to deploy/k8s/helm/ordering-signalrhub/values.yaml diff --git a/k8s/helm/payment-api/.helmignore b/deploy/k8s/helm/payment-api/.helmignore similarity index 100% rename from k8s/helm/payment-api/.helmignore rename to deploy/k8s/helm/payment-api/.helmignore diff --git a/k8s/helm/payment-api/Chart.yaml b/deploy/k8s/helm/payment-api/Chart.yaml similarity index 100% rename from k8s/helm/payment-api/Chart.yaml rename to deploy/k8s/helm/payment-api/Chart.yaml diff --git a/k8s/helm/payment-api/templates/NOTES.txt b/deploy/k8s/helm/payment-api/templates/NOTES.txt similarity index 100% rename from k8s/helm/payment-api/templates/NOTES.txt rename to deploy/k8s/helm/payment-api/templates/NOTES.txt diff --git a/k8s/helm/payment-api/templates/_helpers.tpl b/deploy/k8s/helm/payment-api/templates/_helpers.tpl similarity index 100% rename from k8s/helm/payment-api/templates/_helpers.tpl rename to deploy/k8s/helm/payment-api/templates/_helpers.tpl diff --git a/k8s/helm/payment-api/templates/_names.tpl b/deploy/k8s/helm/payment-api/templates/_names.tpl similarity index 100% rename from k8s/helm/payment-api/templates/_names.tpl rename to deploy/k8s/helm/payment-api/templates/_names.tpl diff --git a/k8s/helm/payment-api/templates/configmap.yaml b/deploy/k8s/helm/payment-api/templates/configmap.yaml similarity index 100% rename from k8s/helm/payment-api/templates/configmap.yaml rename to deploy/k8s/helm/payment-api/templates/configmap.yaml diff --git a/k8s/helm/payment-api/templates/deployment.yaml b/deploy/k8s/helm/payment-api/templates/deployment.yaml similarity index 100% rename from k8s/helm/payment-api/templates/deployment.yaml rename to deploy/k8s/helm/payment-api/templates/deployment.yaml diff --git a/k8s/helm/payment-api/templates/service.yaml b/deploy/k8s/helm/payment-api/templates/service.yaml similarity index 100% rename from k8s/helm/payment-api/templates/service.yaml rename to deploy/k8s/helm/payment-api/templates/service.yaml diff --git a/k8s/helm/payment-api/values.yaml b/deploy/k8s/helm/payment-api/values.yaml similarity index 100% rename from k8s/helm/payment-api/values.yaml rename to deploy/k8s/helm/payment-api/values.yaml diff --git a/k8s/helm/rabbitmq/.helmignore b/deploy/k8s/helm/rabbitmq/.helmignore similarity index 100% rename from k8s/helm/rabbitmq/.helmignore rename to deploy/k8s/helm/rabbitmq/.helmignore diff --git a/k8s/helm/rabbitmq/Chart.yaml b/deploy/k8s/helm/rabbitmq/Chart.yaml similarity index 100% rename from k8s/helm/rabbitmq/Chart.yaml rename to deploy/k8s/helm/rabbitmq/Chart.yaml diff --git a/k8s/helm/rabbitmq/templates/NOTES.txt b/deploy/k8s/helm/rabbitmq/templates/NOTES.txt similarity index 100% rename from k8s/helm/rabbitmq/templates/NOTES.txt rename to deploy/k8s/helm/rabbitmq/templates/NOTES.txt diff --git a/k8s/helm/rabbitmq/templates/_helpers.tpl b/deploy/k8s/helm/rabbitmq/templates/_helpers.tpl similarity index 100% rename from k8s/helm/rabbitmq/templates/_helpers.tpl rename to deploy/k8s/helm/rabbitmq/templates/_helpers.tpl diff --git a/k8s/helm/rabbitmq/templates/_names.tpl b/deploy/k8s/helm/rabbitmq/templates/_names.tpl similarity index 100% rename from k8s/helm/rabbitmq/templates/_names.tpl rename to deploy/k8s/helm/rabbitmq/templates/_names.tpl diff --git a/k8s/helm/rabbitmq/templates/deployment.yaml b/deploy/k8s/helm/rabbitmq/templates/deployment.yaml similarity index 100% rename from k8s/helm/rabbitmq/templates/deployment.yaml rename to deploy/k8s/helm/rabbitmq/templates/deployment.yaml diff --git a/k8s/helm/rabbitmq/templates/service.yaml b/deploy/k8s/helm/rabbitmq/templates/service.yaml similarity index 100% rename from k8s/helm/rabbitmq/templates/service.yaml rename to deploy/k8s/helm/rabbitmq/templates/service.yaml diff --git a/k8s/helm/rabbitmq/values.yaml b/deploy/k8s/helm/rabbitmq/values.yaml similarity index 100% rename from k8s/helm/rabbitmq/values.yaml rename to deploy/k8s/helm/rabbitmq/values.yaml diff --git a/k8s/helm/sql-data/.helmignore b/deploy/k8s/helm/sql-data/.helmignore similarity index 100% rename from k8s/helm/sql-data/.helmignore rename to deploy/k8s/helm/sql-data/.helmignore diff --git a/k8s/helm/sql-data/Chart.yaml b/deploy/k8s/helm/sql-data/Chart.yaml similarity index 100% rename from k8s/helm/sql-data/Chart.yaml rename to deploy/k8s/helm/sql-data/Chart.yaml diff --git a/k8s/helm/sql-data/templates/NOTES.txt b/deploy/k8s/helm/sql-data/templates/NOTES.txt similarity index 100% rename from k8s/helm/sql-data/templates/NOTES.txt rename to deploy/k8s/helm/sql-data/templates/NOTES.txt diff --git a/k8s/helm/sql-data/templates/_helpers.tpl b/deploy/k8s/helm/sql-data/templates/_helpers.tpl similarity index 100% rename from k8s/helm/sql-data/templates/_helpers.tpl rename to deploy/k8s/helm/sql-data/templates/_helpers.tpl diff --git a/k8s/helm/sql-data/templates/_names.tpl b/deploy/k8s/helm/sql-data/templates/_names.tpl similarity index 100% rename from k8s/helm/sql-data/templates/_names.tpl rename to deploy/k8s/helm/sql-data/templates/_names.tpl diff --git a/k8s/helm/sql-data/templates/deployment.yaml b/deploy/k8s/helm/sql-data/templates/deployment.yaml similarity index 100% rename from k8s/helm/sql-data/templates/deployment.yaml rename to deploy/k8s/helm/sql-data/templates/deployment.yaml diff --git a/k8s/helm/sql-data/templates/service.yaml b/deploy/k8s/helm/sql-data/templates/service.yaml similarity index 100% rename from k8s/helm/sql-data/templates/service.yaml rename to deploy/k8s/helm/sql-data/templates/service.yaml diff --git a/k8s/helm/sql-data/values.yaml b/deploy/k8s/helm/sql-data/values.yaml similarity index 100% rename from k8s/helm/sql-data/values.yaml rename to deploy/k8s/helm/sql-data/values.yaml diff --git a/k8s/helm/webhooks-api/.helmignore b/deploy/k8s/helm/webhooks-api/.helmignore similarity index 100% rename from k8s/helm/webhooks-api/.helmignore rename to deploy/k8s/helm/webhooks-api/.helmignore diff --git a/k8s/helm/webhooks-api/Chart.yaml b/deploy/k8s/helm/webhooks-api/Chart.yaml similarity index 100% rename from k8s/helm/webhooks-api/Chart.yaml rename to deploy/k8s/helm/webhooks-api/Chart.yaml diff --git a/k8s/helm/webhooks-api/templates/NOTES.txt b/deploy/k8s/helm/webhooks-api/templates/NOTES.txt similarity index 100% rename from k8s/helm/webhooks-api/templates/NOTES.txt rename to deploy/k8s/helm/webhooks-api/templates/NOTES.txt diff --git a/k8s/helm/webhooks-api/templates/_helpers.tpl b/deploy/k8s/helm/webhooks-api/templates/_helpers.tpl similarity index 100% rename from k8s/helm/webhooks-api/templates/_helpers.tpl rename to deploy/k8s/helm/webhooks-api/templates/_helpers.tpl diff --git a/k8s/helm/webhooks-api/templates/_names.tpl b/deploy/k8s/helm/webhooks-api/templates/_names.tpl similarity index 100% rename from k8s/helm/webhooks-api/templates/_names.tpl rename to deploy/k8s/helm/webhooks-api/templates/_names.tpl diff --git a/k8s/helm/webhooks-api/templates/configmap.yaml b/deploy/k8s/helm/webhooks-api/templates/configmap.yaml similarity index 100% rename from k8s/helm/webhooks-api/templates/configmap.yaml rename to deploy/k8s/helm/webhooks-api/templates/configmap.yaml diff --git a/k8s/helm/webhooks-api/templates/deployment.yaml b/deploy/k8s/helm/webhooks-api/templates/deployment.yaml similarity index 100% rename from k8s/helm/webhooks-api/templates/deployment.yaml rename to deploy/k8s/helm/webhooks-api/templates/deployment.yaml diff --git a/k8s/helm/webhooks-api/templates/ingress.yaml b/deploy/k8s/helm/webhooks-api/templates/ingress.yaml similarity index 100% rename from k8s/helm/webhooks-api/templates/ingress.yaml rename to deploy/k8s/helm/webhooks-api/templates/ingress.yaml diff --git a/k8s/helm/webhooks-api/templates/service.yaml b/deploy/k8s/helm/webhooks-api/templates/service.yaml similarity index 100% rename from k8s/helm/webhooks-api/templates/service.yaml rename to deploy/k8s/helm/webhooks-api/templates/service.yaml diff --git a/k8s/helm/webhooks-api/values.yaml b/deploy/k8s/helm/webhooks-api/values.yaml similarity index 100% rename from k8s/helm/webhooks-api/values.yaml rename to deploy/k8s/helm/webhooks-api/values.yaml diff --git a/k8s/helm/webhooks-web/.helmignore b/deploy/k8s/helm/webhooks-web/.helmignore similarity index 100% rename from k8s/helm/webhooks-web/.helmignore rename to deploy/k8s/helm/webhooks-web/.helmignore diff --git a/k8s/helm/webhooks-web/Chart.yaml b/deploy/k8s/helm/webhooks-web/Chart.yaml similarity index 100% rename from k8s/helm/webhooks-web/Chart.yaml rename to deploy/k8s/helm/webhooks-web/Chart.yaml diff --git a/k8s/helm/webhooks-web/templates/NOTES.txt b/deploy/k8s/helm/webhooks-web/templates/NOTES.txt similarity index 100% rename from k8s/helm/webhooks-web/templates/NOTES.txt rename to deploy/k8s/helm/webhooks-web/templates/NOTES.txt diff --git a/k8s/helm/webhooks-web/templates/_helpers.tpl b/deploy/k8s/helm/webhooks-web/templates/_helpers.tpl similarity index 100% rename from k8s/helm/webhooks-web/templates/_helpers.tpl rename to deploy/k8s/helm/webhooks-web/templates/_helpers.tpl diff --git a/k8s/helm/webhooks-web/templates/_names.tpl b/deploy/k8s/helm/webhooks-web/templates/_names.tpl similarity index 100% rename from k8s/helm/webhooks-web/templates/_names.tpl rename to deploy/k8s/helm/webhooks-web/templates/_names.tpl diff --git a/k8s/helm/webhooks-web/templates/configmap.yaml b/deploy/k8s/helm/webhooks-web/templates/configmap.yaml similarity index 100% rename from k8s/helm/webhooks-web/templates/configmap.yaml rename to deploy/k8s/helm/webhooks-web/templates/configmap.yaml diff --git a/k8s/helm/webhooks-web/templates/deployment.yaml b/deploy/k8s/helm/webhooks-web/templates/deployment.yaml similarity index 100% rename from k8s/helm/webhooks-web/templates/deployment.yaml rename to deploy/k8s/helm/webhooks-web/templates/deployment.yaml diff --git a/k8s/helm/webhooks-web/templates/ingress.yaml b/deploy/k8s/helm/webhooks-web/templates/ingress.yaml similarity index 100% rename from k8s/helm/webhooks-web/templates/ingress.yaml rename to deploy/k8s/helm/webhooks-web/templates/ingress.yaml diff --git a/k8s/helm/webhooks-web/templates/service.yaml b/deploy/k8s/helm/webhooks-web/templates/service.yaml similarity index 100% rename from k8s/helm/webhooks-web/templates/service.yaml rename to deploy/k8s/helm/webhooks-web/templates/service.yaml diff --git a/k8s/helm/webhooks-web/values.yaml b/deploy/k8s/helm/webhooks-web/values.yaml similarity index 100% rename from k8s/helm/webhooks-web/values.yaml rename to deploy/k8s/helm/webhooks-web/values.yaml diff --git a/k8s/helm/webmvc/.helmignore b/deploy/k8s/helm/webmvc/.helmignore similarity index 100% rename from k8s/helm/webmvc/.helmignore rename to deploy/k8s/helm/webmvc/.helmignore diff --git a/k8s/helm/webmvc/Chart.yaml b/deploy/k8s/helm/webmvc/Chart.yaml similarity index 100% rename from k8s/helm/webmvc/Chart.yaml rename to deploy/k8s/helm/webmvc/Chart.yaml diff --git a/k8s/helm/webmvc/templates/NOTES.txt b/deploy/k8s/helm/webmvc/templates/NOTES.txt similarity index 100% rename from k8s/helm/webmvc/templates/NOTES.txt rename to deploy/k8s/helm/webmvc/templates/NOTES.txt diff --git a/k8s/helm/webmvc/templates/_helpers.tpl b/deploy/k8s/helm/webmvc/templates/_helpers.tpl similarity index 100% rename from k8s/helm/webmvc/templates/_helpers.tpl rename to deploy/k8s/helm/webmvc/templates/_helpers.tpl diff --git a/k8s/helm/webmvc/templates/_names.tpl b/deploy/k8s/helm/webmvc/templates/_names.tpl similarity index 100% rename from k8s/helm/webmvc/templates/_names.tpl rename to deploy/k8s/helm/webmvc/templates/_names.tpl diff --git a/k8s/helm/webmvc/templates/configmap.yaml b/deploy/k8s/helm/webmvc/templates/configmap.yaml similarity index 100% rename from k8s/helm/webmvc/templates/configmap.yaml rename to deploy/k8s/helm/webmvc/templates/configmap.yaml diff --git a/k8s/helm/webmvc/templates/deployment.yaml b/deploy/k8s/helm/webmvc/templates/deployment.yaml similarity index 100% rename from k8s/helm/webmvc/templates/deployment.yaml rename to deploy/k8s/helm/webmvc/templates/deployment.yaml diff --git a/k8s/helm/webmvc/templates/ingress-dockerk8s.yaml b/deploy/k8s/helm/webmvc/templates/ingress-dockerk8s.yaml similarity index 100% rename from k8s/helm/webmvc/templates/ingress-dockerk8s.yaml rename to deploy/k8s/helm/webmvc/templates/ingress-dockerk8s.yaml diff --git a/k8s/helm/webmvc/templates/ingress.yaml b/deploy/k8s/helm/webmvc/templates/ingress.yaml similarity index 100% rename from k8s/helm/webmvc/templates/ingress.yaml rename to deploy/k8s/helm/webmvc/templates/ingress.yaml diff --git a/k8s/helm/webmvc/templates/service.yaml b/deploy/k8s/helm/webmvc/templates/service.yaml similarity index 100% rename from k8s/helm/webmvc/templates/service.yaml rename to deploy/k8s/helm/webmvc/templates/service.yaml diff --git a/k8s/helm/webmvc/values.yaml b/deploy/k8s/helm/webmvc/values.yaml similarity index 100% rename from k8s/helm/webmvc/values.yaml rename to deploy/k8s/helm/webmvc/values.yaml diff --git a/k8s/helm/webshoppingagg/.helmignore b/deploy/k8s/helm/webshoppingagg/.helmignore similarity index 100% rename from k8s/helm/webshoppingagg/.helmignore rename to deploy/k8s/helm/webshoppingagg/.helmignore diff --git a/k8s/helm/webshoppingagg/Chart.yaml b/deploy/k8s/helm/webshoppingagg/Chart.yaml similarity index 100% rename from k8s/helm/webshoppingagg/Chart.yaml rename to deploy/k8s/helm/webshoppingagg/Chart.yaml diff --git a/k8s/helm/webshoppingagg/templates/NOTES.txt b/deploy/k8s/helm/webshoppingagg/templates/NOTES.txt similarity index 100% rename from k8s/helm/webshoppingagg/templates/NOTES.txt rename to deploy/k8s/helm/webshoppingagg/templates/NOTES.txt diff --git a/k8s/helm/webshoppingagg/templates/_helpers.tpl b/deploy/k8s/helm/webshoppingagg/templates/_helpers.tpl similarity index 100% rename from k8s/helm/webshoppingagg/templates/_helpers.tpl rename to deploy/k8s/helm/webshoppingagg/templates/_helpers.tpl diff --git a/k8s/helm/webshoppingagg/templates/_names.tpl b/deploy/k8s/helm/webshoppingagg/templates/_names.tpl similarity index 100% rename from k8s/helm/webshoppingagg/templates/_names.tpl rename to deploy/k8s/helm/webshoppingagg/templates/_names.tpl diff --git a/k8s/helm/webshoppingagg/templates/configmap.yaml b/deploy/k8s/helm/webshoppingagg/templates/configmap.yaml similarity index 100% rename from k8s/helm/webshoppingagg/templates/configmap.yaml rename to deploy/k8s/helm/webshoppingagg/templates/configmap.yaml diff --git a/k8s/helm/webshoppingagg/templates/deployment.yaml b/deploy/k8s/helm/webshoppingagg/templates/deployment.yaml similarity index 100% rename from k8s/helm/webshoppingagg/templates/deployment.yaml rename to deploy/k8s/helm/webshoppingagg/templates/deployment.yaml diff --git a/k8s/helm/webshoppingagg/templates/ingress.yaml b/deploy/k8s/helm/webshoppingagg/templates/ingress.yaml similarity index 100% rename from k8s/helm/webshoppingagg/templates/ingress.yaml rename to deploy/k8s/helm/webshoppingagg/templates/ingress.yaml diff --git a/k8s/helm/webshoppingagg/templates/service.yaml b/deploy/k8s/helm/webshoppingagg/templates/service.yaml similarity index 100% rename from k8s/helm/webshoppingagg/templates/service.yaml rename to deploy/k8s/helm/webshoppingagg/templates/service.yaml diff --git a/k8s/helm/webshoppingagg/values.yaml b/deploy/k8s/helm/webshoppingagg/values.yaml similarity index 100% rename from k8s/helm/webshoppingagg/values.yaml rename to deploy/k8s/helm/webshoppingagg/values.yaml diff --git a/k8s/helm/webspa/.helmignore b/deploy/k8s/helm/webspa/.helmignore similarity index 100% rename from k8s/helm/webspa/.helmignore rename to deploy/k8s/helm/webspa/.helmignore diff --git a/k8s/helm/webspa/Chart.yaml b/deploy/k8s/helm/webspa/Chart.yaml similarity index 100% rename from k8s/helm/webspa/Chart.yaml rename to deploy/k8s/helm/webspa/Chart.yaml diff --git a/k8s/helm/webspa/templates/NOTES.txt b/deploy/k8s/helm/webspa/templates/NOTES.txt similarity index 100% rename from k8s/helm/webspa/templates/NOTES.txt rename to deploy/k8s/helm/webspa/templates/NOTES.txt diff --git a/k8s/helm/webspa/templates/_helpers.tpl b/deploy/k8s/helm/webspa/templates/_helpers.tpl similarity index 100% rename from k8s/helm/webspa/templates/_helpers.tpl rename to deploy/k8s/helm/webspa/templates/_helpers.tpl diff --git a/k8s/helm/webspa/templates/_names.tpl b/deploy/k8s/helm/webspa/templates/_names.tpl similarity index 100% rename from k8s/helm/webspa/templates/_names.tpl rename to deploy/k8s/helm/webspa/templates/_names.tpl diff --git a/k8s/helm/webspa/templates/configmap.yaml b/deploy/k8s/helm/webspa/templates/configmap.yaml similarity index 100% rename from k8s/helm/webspa/templates/configmap.yaml rename to deploy/k8s/helm/webspa/templates/configmap.yaml diff --git a/k8s/helm/webspa/templates/deployment.yaml b/deploy/k8s/helm/webspa/templates/deployment.yaml similarity index 100% rename from k8s/helm/webspa/templates/deployment.yaml rename to deploy/k8s/helm/webspa/templates/deployment.yaml diff --git a/k8s/helm/webspa/templates/ingress.yaml b/deploy/k8s/helm/webspa/templates/ingress.yaml similarity index 100% rename from k8s/helm/webspa/templates/ingress.yaml rename to deploy/k8s/helm/webspa/templates/ingress.yaml diff --git a/k8s/helm/webspa/templates/service.yaml b/deploy/k8s/helm/webspa/templates/service.yaml similarity index 100% rename from k8s/helm/webspa/templates/service.yaml rename to deploy/k8s/helm/webspa/templates/service.yaml diff --git a/k8s/helm/webspa/values.yaml b/deploy/k8s/helm/webspa/values.yaml similarity index 100% rename from k8s/helm/webspa/values.yaml rename to deploy/k8s/helm/webspa/values.yaml diff --git a/k8s/helm/webstatus/.helmignore b/deploy/k8s/helm/webstatus/.helmignore similarity index 100% rename from k8s/helm/webstatus/.helmignore rename to deploy/k8s/helm/webstatus/.helmignore diff --git a/k8s/helm/webstatus/Chart.yaml b/deploy/k8s/helm/webstatus/Chart.yaml similarity index 100% rename from k8s/helm/webstatus/Chart.yaml rename to deploy/k8s/helm/webstatus/Chart.yaml diff --git a/k8s/helm/webstatus/templates/NOTES.txt b/deploy/k8s/helm/webstatus/templates/NOTES.txt similarity index 100% rename from k8s/helm/webstatus/templates/NOTES.txt rename to deploy/k8s/helm/webstatus/templates/NOTES.txt diff --git a/k8s/helm/webstatus/templates/_helpers.tpl b/deploy/k8s/helm/webstatus/templates/_helpers.tpl similarity index 100% rename from k8s/helm/webstatus/templates/_helpers.tpl rename to deploy/k8s/helm/webstatus/templates/_helpers.tpl diff --git a/k8s/helm/webstatus/templates/_names.tpl b/deploy/k8s/helm/webstatus/templates/_names.tpl similarity index 100% rename from k8s/helm/webstatus/templates/_names.tpl rename to deploy/k8s/helm/webstatus/templates/_names.tpl diff --git a/k8s/helm/webstatus/templates/configmap.yaml b/deploy/k8s/helm/webstatus/templates/configmap.yaml similarity index 100% rename from k8s/helm/webstatus/templates/configmap.yaml rename to deploy/k8s/helm/webstatus/templates/configmap.yaml diff --git a/k8s/helm/webstatus/templates/deployment.yaml b/deploy/k8s/helm/webstatus/templates/deployment.yaml similarity index 100% rename from k8s/helm/webstatus/templates/deployment.yaml rename to deploy/k8s/helm/webstatus/templates/deployment.yaml diff --git a/k8s/helm/webstatus/templates/ingress.yaml b/deploy/k8s/helm/webstatus/templates/ingress.yaml similarity index 100% rename from k8s/helm/webstatus/templates/ingress.yaml rename to deploy/k8s/helm/webstatus/templates/ingress.yaml diff --git a/k8s/helm/webstatus/templates/service.yaml b/deploy/k8s/helm/webstatus/templates/service.yaml similarity index 100% rename from k8s/helm/webstatus/templates/service.yaml rename to deploy/k8s/helm/webstatus/templates/service.yaml diff --git a/k8s/helm/webstatus/values.yaml b/deploy/k8s/helm/webstatus/values.yaml similarity index 100% rename from k8s/helm/webstatus/values.yaml rename to deploy/k8s/helm/webstatus/values.yaml diff --git a/k8s/img/blob_creation.png b/deploy/k8s/img/blob_creation.png similarity index 100% rename from k8s/img/blob_creation.png rename to deploy/k8s/img/blob_creation.png diff --git a/k8s/img/deploy_script_task.png b/deploy/k8s/img/deploy_script_task.png similarity index 100% rename from k8s/img/deploy_script_task.png rename to deploy/k8s/img/deploy_script_task.png diff --git a/k8s/img/get_kubectlbin_task.png b/deploy/k8s/img/get_kubectlbin_task.png similarity index 100% rename from k8s/img/get_kubectlbin_task.png rename to deploy/k8s/img/get_kubectlbin_task.png diff --git a/k8s/img/get_kubectlconfig_task.png b/deploy/k8s/img/get_kubectlconfig_task.png similarity index 100% rename from k8s/img/get_kubectlconfig_task.png rename to deploy/k8s/img/get_kubectlconfig_task.png diff --git a/k8s/internalurls.yaml b/deploy/k8s/internalurls.yaml similarity index 100% rename from k8s/internalurls.yaml rename to deploy/k8s/internalurls.yaml diff --git a/k8s/linkerd/basket-api-sp.yaml b/deploy/k8s/linkerd/basket-api-sp.yaml similarity index 100% rename from k8s/linkerd/basket-api-sp.yaml rename to deploy/k8s/linkerd/basket-api-sp.yaml diff --git a/k8s/linkerd/catalog-api-sp.yaml b/deploy/k8s/linkerd/catalog-api-sp.yaml similarity index 100% rename from k8s/linkerd/catalog-api-sp.yaml rename to deploy/k8s/linkerd/catalog-api-sp.yaml diff --git a/k8s/nginx-ingress/cloud-generic.yaml b/deploy/k8s/nginx-ingress/cloud-generic.yaml similarity index 100% rename from k8s/nginx-ingress/cloud-generic.yaml rename to deploy/k8s/nginx-ingress/cloud-generic.yaml diff --git a/k8s/nginx-ingress/cm.yaml b/deploy/k8s/nginx-ingress/cm.yaml similarity index 100% rename from k8s/nginx-ingress/cm.yaml rename to deploy/k8s/nginx-ingress/cm.yaml diff --git a/k8s/nginx-ingress/local-dockerk8s/identityapi-cm-fix.yaml b/deploy/k8s/nginx-ingress/local-dockerk8s/identityapi-cm-fix.yaml similarity index 100% rename from k8s/nginx-ingress/local-dockerk8s/identityapi-cm-fix.yaml rename to deploy/k8s/nginx-ingress/local-dockerk8s/identityapi-cm-fix.yaml diff --git a/k8s/nginx-ingress/local-dockerk8s/mvc-cm-fix.yaml b/deploy/k8s/nginx-ingress/local-dockerk8s/mvc-cm-fix.yaml similarity index 100% rename from k8s/nginx-ingress/local-dockerk8s/mvc-cm-fix.yaml rename to deploy/k8s/nginx-ingress/local-dockerk8s/mvc-cm-fix.yaml diff --git a/k8s/nginx-ingress/local-dockerk8s/mvc-fix.yaml b/deploy/k8s/nginx-ingress/local-dockerk8s/mvc-fix.yaml similarity index 100% rename from k8s/nginx-ingress/local-dockerk8s/mvc-fix.yaml rename to deploy/k8s/nginx-ingress/local-dockerk8s/mvc-fix.yaml diff --git a/k8s/nginx-ingress/mandatory-istio.yaml b/deploy/k8s/nginx-ingress/mandatory-istio.yaml similarity index 100% rename from k8s/nginx-ingress/mandatory-istio.yaml rename to deploy/k8s/nginx-ingress/mandatory-istio.yaml diff --git a/k8s/nginx-ingress/mandatory.yaml b/deploy/k8s/nginx-ingress/mandatory.yaml similarity index 100% rename from k8s/nginx-ingress/mandatory.yaml rename to deploy/k8s/nginx-ingress/mandatory.yaml diff --git a/k8s/nginx-ingress/service-nodeport.yaml b/deploy/k8s/nginx-ingress/service-nodeport.yaml similarity index 100% rename from k8s/nginx-ingress/service-nodeport.yaml rename to deploy/k8s/nginx-ingress/service-nodeport.yaml diff --git a/k8s/nodeports/rabbitmq-admin.yaml b/deploy/k8s/nodeports/rabbitmq-admin.yaml similarity index 100% rename from k8s/nodeports/rabbitmq-admin.yaml rename to deploy/k8s/nodeports/rabbitmq-admin.yaml diff --git a/k8s/nodeports/sql-service.yaml b/deploy/k8s/nodeports/sql-service.yaml similarity index 100% rename from k8s/nodeports/sql-service.yaml rename to deploy/k8s/nodeports/sql-service.yaml diff --git a/k8s/readme.md b/deploy/k8s/readme.md similarity index 100% rename from k8s/readme.md rename to deploy/k8s/readme.md diff --git a/k8s/.kube/schema/v1.6.6/api/v1/schema.json b/k8s/.kube/schema/v1.6.6/api/v1/schema.json deleted file mode 100644 index 1fb315f47a..0000000000 --- a/k8s/.kube/schema/v1.6.6/api/v1/schema.json +++ /dev/null @@ -1,20838 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "v1", - "basePath": "https://10.240.255.15:443", - "resourcePath": "/api/v1", - "info": { - "title": "", - "description": "" - }, - "apis": [ - { - "path": "/api/v1/namespaces/{namespace}/bindings", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Binding", - "method": "POST", - "summary": "create a Binding", - "nickname": "createNamespacedBinding", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Binding", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Binding" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/componentstatuses", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ComponentStatusList", - "method": "GET", - "summary": "list objects of kind ComponentStatus", - "nickname": "listComponentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ComponentStatusList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/componentstatuses/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ComponentStatus", - "method": "GET", - "summary": "read the specified ComponentStatus", - "nickname": "readComponentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ComponentStatus", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ComponentStatus" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/configmaps", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ConfigMapList", - "method": "GET", - "summary": "list or watch objects of kind ConfigMap", - "nickname": "listNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMapList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ConfigMap", - "method": "POST", - "summary": "create a ConfigMap", - "nickname": "createNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ConfigMap", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ConfigMap", - "nickname": "deletecollectionNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/configmaps", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ConfigMap", - "nickname": "watchNamespacedConfigMapList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/configmaps/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ConfigMap", - "method": "GET", - "summary": "read the specified ConfigMap", - "nickname": "readNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ConfigMap", - "method": "PUT", - "summary": "replace the specified ConfigMap", - "nickname": "replaceNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ConfigMap", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ConfigMap", - "method": "PATCH", - "summary": "partially update the specified ConfigMap", - "nickname": "patchNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ConfigMap", - "nickname": "deleteNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/configmaps/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ConfigMap", - "nickname": "watchNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/configmaps", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ConfigMapList", - "method": "GET", - "summary": "list or watch objects of kind ConfigMap", - "nickname": "listConfigMapForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMapList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/configmaps", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ConfigMap", - "nickname": "watchConfigMapListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/endpoints", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.EndpointsList", - "method": "GET", - "summary": "list or watch objects of kind Endpoints", - "nickname": "listNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.EndpointsList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Endpoints", - "method": "POST", - "summary": "create Endpoints", - "nickname": "createNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Endpoints", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Endpoints" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Endpoints", - "nickname": "deletecollectionNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/endpoints", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Endpoints", - "nickname": "watchNamespacedEndpointsList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/endpoints/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Endpoints", - "method": "GET", - "summary": "read the specified Endpoints", - "nickname": "readNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Endpoints" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Endpoints", - "method": "PUT", - "summary": "replace the specified Endpoints", - "nickname": "replaceNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Endpoints", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Endpoints" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Endpoints", - "method": "PATCH", - "summary": "partially update the specified Endpoints", - "nickname": "patchNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Endpoints" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete Endpoints", - "nickname": "deleteNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/endpoints/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Endpoints", - "nickname": "watchNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/endpoints", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.EndpointsList", - "method": "GET", - "summary": "list or watch objects of kind Endpoints", - "nickname": "listEndpointsForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.EndpointsList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/endpoints", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Endpoints", - "nickname": "watchEndpointsListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/events", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.EventList", - "method": "GET", - "summary": "list or watch objects of kind Event", - "nickname": "listNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.EventList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Event", - "method": "POST", - "summary": "create an Event", - "nickname": "createNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Event", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Event", - "nickname": "deletecollectionNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/events", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Event", - "nickname": "watchNamespacedEventList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/events/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Event", - "method": "GET", - "summary": "read the specified Event", - "nickname": "readNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Event", - "method": "PUT", - "summary": "replace the specified Event", - "nickname": "replaceNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Event", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Event", - "method": "PATCH", - "summary": "partially update the specified Event", - "nickname": "patchNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete an Event", - "nickname": "deleteNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/events/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Event", - "nickname": "watchNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/events", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.EventList", - "method": "GET", - "summary": "list or watch objects of kind Event", - "nickname": "listEventForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.EventList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/events", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Event", - "nickname": "watchEventListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/limitranges", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.LimitRangeList", - "method": "GET", - "summary": "list or watch objects of kind LimitRange", - "nickname": "listNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRangeList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.LimitRange", - "method": "POST", - "summary": "create a LimitRange", - "nickname": "createNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.LimitRange", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRange" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of LimitRange", - "nickname": "deletecollectionNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/limitranges", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of LimitRange", - "nickname": "watchNamespacedLimitRangeList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/limitranges/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.LimitRange", - "method": "GET", - "summary": "read the specified LimitRange", - "nickname": "readNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRange" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.LimitRange", - "method": "PUT", - "summary": "replace the specified LimitRange", - "nickname": "replaceNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.LimitRange", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRange" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.LimitRange", - "method": "PATCH", - "summary": "partially update the specified LimitRange", - "nickname": "patchNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRange" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a LimitRange", - "nickname": "deleteNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/limitranges/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind LimitRange", - "nickname": "watchNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/limitranges", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.LimitRangeList", - "method": "GET", - "summary": "list or watch objects of kind LimitRange", - "nickname": "listLimitRangeForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRangeList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/limitranges", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of LimitRange", - "nickname": "watchLimitRangeListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.NamespaceList", - "method": "GET", - "summary": "list or watch objects of kind Namespace", - "nickname": "listNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.NamespaceList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "POST", - "summary": "create a Namespace", - "nickname": "createNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Namespace", - "nickname": "watchNamespaceList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Namespace", - "method": "GET", - "summary": "read the specified Namespace", - "nickname": "readNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "PUT", - "summary": "replace the specified Namespace", - "nickname": "replaceNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "PATCH", - "summary": "partially update the specified Namespace", - "nickname": "patchNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Namespace", - "nickname": "deleteNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Namespace", - "nickname": "watchNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{name}/finalize", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Namespace", - "method": "PUT", - "summary": "replace finalize of the specified Namespace", - "nickname": "replaceNamespaceFinalize", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Namespace", - "method": "GET", - "summary": "read status of the specified Namespace", - "nickname": "readNamespaceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "PUT", - "summary": "replace status of the specified Namespace", - "nickname": "replaceNamespaceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "PATCH", - "summary": "partially update status of the specified Namespace", - "nickname": "patchNamespaceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/nodes", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.NodeList", - "method": "GET", - "summary": "list or watch objects of kind Node", - "nickname": "listNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.NodeList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Node", - "method": "POST", - "summary": "create a Node", - "nickname": "createNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Node", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Node", - "nickname": "deletecollectionNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/nodes", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Node", - "nickname": "watchNodeList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/nodes/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Node", - "method": "GET", - "summary": "read the specified Node", - "nickname": "readNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Node", - "method": "PUT", - "summary": "replace the specified Node", - "nickname": "replaceNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Node", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Node", - "method": "PATCH", - "summary": "partially update the specified Node", - "nickname": "patchNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Node", - "nickname": "deleteNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/nodes/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Node", - "nickname": "watchNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/proxy/nodes/{name}/{path}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Node", - "nickname": "proxyGETNodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Node", - "nickname": "proxyPUTNodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Node", - "nickname": "proxyPOSTNodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PATCH", - "summary": "proxy PATCH requests to Node", - "nickname": "proxyPATCHNodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Node", - "nickname": "proxyDELETENodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Node", - "nickname": "proxyHEADNodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "proxy OPTIONS requests to Node", - "nickname": "proxyOPTIONSNodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/proxy/nodes/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Node", - "nickname": "proxyGETNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Node", - "nickname": "proxyPUTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Node", - "nickname": "proxyPOSTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PATCH", - "summary": "proxy PATCH requests to Node", - "nickname": "proxyPATCHNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Node", - "nickname": "proxyDELETENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Node", - "nickname": "proxyHEADNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "proxy OPTIONS requests to Node", - "nickname": "proxyOPTIONSNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/nodes/{name}/proxy", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to proxy of Node", - "nickname": "connectGetNodeProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to proxy of Node", - "nickname": "connectPostNodeProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to proxy of Node", - "nickname": "connectPutNodeProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to proxy of Node", - "nickname": "connectDeleteNodeProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to proxy of Node", - "nickname": "connectHeadNodeProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to proxy of Node", - "nickname": "connectOptionsNodeProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/nodes/{name}/proxy/{path}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to proxy of Node", - "nickname": "connectGetNodeProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to proxy of Node", - "nickname": "connectPostNodeProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to proxy of Node", - "nickname": "connectPutNodeProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to proxy of Node", - "nickname": "connectDeleteNodeProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to proxy of Node", - "nickname": "connectHeadNodeProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to proxy of Node", - "nickname": "connectOptionsNodeProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/nodes/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Node", - "method": "GET", - "summary": "read status of the specified Node", - "nickname": "readNodeStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Node", - "method": "PUT", - "summary": "replace status of the specified Node", - "nickname": "replaceNodeStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Node", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Node", - "method": "PATCH", - "summary": "partially update status of the specified Node", - "nickname": "patchNodeStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/persistentvolumeclaims", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolumeClaimList", - "method": "GET", - "summary": "list or watch objects of kind PersistentVolumeClaim", - "nickname": "listNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaimList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolumeClaim", - "method": "POST", - "summary": "create a PersistentVolumeClaim", - "nickname": "createNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of PersistentVolumeClaim", - "nickname": "deletecollectionNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PersistentVolumeClaim", - "nickname": "watchNamespacedPersistentVolumeClaimList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolumeClaim", - "method": "GET", - "summary": "read the specified PersistentVolumeClaim", - "nickname": "readNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolumeClaim", - "method": "PUT", - "summary": "replace the specified PersistentVolumeClaim", - "nickname": "replaceNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolumeClaim", - "method": "PATCH", - "summary": "partially update the specified PersistentVolumeClaim", - "nickname": "patchNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a PersistentVolumeClaim", - "nickname": "deleteNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind PersistentVolumeClaim", - "nickname": "watchNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/persistentvolumeclaims", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolumeClaimList", - "method": "GET", - "summary": "list or watch objects of kind PersistentVolumeClaim", - "nickname": "listPersistentVolumeClaimForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaimList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/persistentvolumeclaims", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PersistentVolumeClaim", - "nickname": "watchPersistentVolumeClaimListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolumeClaim", - "method": "GET", - "summary": "read status of the specified PersistentVolumeClaim", - "nickname": "readNamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolumeClaim", - "method": "PUT", - "summary": "replace status of the specified PersistentVolumeClaim", - "nickname": "replaceNamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolumeClaim", - "method": "PATCH", - "summary": "partially update status of the specified PersistentVolumeClaim", - "nickname": "patchNamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/persistentvolumes", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolumeList", - "method": "GET", - "summary": "list or watch objects of kind PersistentVolume", - "nickname": "listPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolume", - "method": "POST", - "summary": "create a PersistentVolume", - "nickname": "createPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolume", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of PersistentVolume", - "nickname": "deletecollectionPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/persistentvolumes", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PersistentVolume", - "nickname": "watchPersistentVolumeList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/persistentvolumes/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolume", - "method": "GET", - "summary": "read the specified PersistentVolume", - "nickname": "readPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolume", - "method": "PUT", - "summary": "replace the specified PersistentVolume", - "nickname": "replacePersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolume", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolume", - "method": "PATCH", - "summary": "partially update the specified PersistentVolume", - "nickname": "patchPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a PersistentVolume", - "nickname": "deletePersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/persistentvolumes/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind PersistentVolume", - "nickname": "watchPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/persistentvolumes/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolume", - "method": "GET", - "summary": "read status of the specified PersistentVolume", - "nickname": "readPersistentVolumeStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolume", - "method": "PUT", - "summary": "replace status of the specified PersistentVolume", - "nickname": "replacePersistentVolumeStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolume", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolume", - "method": "PATCH", - "summary": "partially update status of the specified PersistentVolume", - "nickname": "patchPersistentVolumeStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PodList", - "method": "GET", - "summary": "list or watch objects of kind Pod", - "nickname": "listNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Pod", - "method": "POST", - "summary": "create a Pod", - "nickname": "createNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Pod", - "nickname": "deletecollectionNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/pods", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Pod", - "nickname": "watchNamespacedPodList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Pod", - "method": "GET", - "summary": "read the specified Pod", - "nickname": "readNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Pod", - "method": "PUT", - "summary": "replace the specified Pod", - "nickname": "replaceNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Pod", - "method": "PATCH", - "summary": "partially update the specified Pod", - "nickname": "patchNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Pod", - "nickname": "deleteNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/pods/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Pod", - "nickname": "watchNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/proxy/namespaces/{namespace}/pods/{name}/{path}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Pod", - "nickname": "proxyGETNamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Pod", - "nickname": "proxyPUTNamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Pod", - "nickname": "proxyPOSTNamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PATCH", - "summary": "proxy PATCH requests to Pod", - "nickname": "proxyPATCHNamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Pod", - "nickname": "proxyDELETENamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Pod", - "nickname": "proxyHEADNamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "proxy OPTIONS requests to Pod", - "nickname": "proxyOPTIONSNamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/proxy/namespaces/{namespace}/pods/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Pod", - "nickname": "proxyGETNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Pod", - "nickname": "proxyPUTNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Pod", - "nickname": "proxyPOSTNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PATCH", - "summary": "proxy PATCH requests to Pod", - "nickname": "proxyPATCHNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Pod", - "nickname": "proxyDELETENamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Pod", - "nickname": "proxyHEADNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "proxy OPTIONS requests to Pod", - "nickname": "proxyOPTIONSNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/pods", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PodList", - "method": "GET", - "summary": "list or watch objects of kind Pod", - "nickname": "listPodForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/pods", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Pod", - "nickname": "watchPodListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/attach", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to attach of Pod", - "nickname": "connectGetNamespacedPodAttach", - "parameters": [ - { - "type": "boolean", - "paramType": "query", - "name": "stdin", - "description": "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stdout", - "description": "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stderr", - "description": "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "tty", - "description": "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "container", - "description": "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to attach of Pod", - "nickname": "connectPostNamespacedPodAttach", - "parameters": [ - { - "type": "boolean", - "paramType": "query", - "name": "stdin", - "description": "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stdout", - "description": "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stderr", - "description": "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "tty", - "description": "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "container", - "description": "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/binding", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Binding", - "method": "POST", - "summary": "create binding of a Binding", - "nickname": "createNamespacedBindingBinding", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Binding", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Binding", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Binding" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/eviction", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1beta1.Eviction", - "method": "POST", - "summary": "create eviction of an Eviction", - "nickname": "createNamespacedEvictionEviction", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Eviction", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Eviction", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Eviction" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/exec", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to exec of Pod", - "nickname": "connectGetNamespacedPodExec", - "parameters": [ - { - "type": "boolean", - "paramType": "query", - "name": "stdin", - "description": "Redirect the standard input stream of the pod for this call. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stdout", - "description": "Redirect the standard output stream of the pod for this call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stderr", - "description": "Redirect the standard error stream of the pod for this call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "tty", - "description": "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "container", - "description": "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "command", - "description": "Command is the remote command to execute. argv array. Not executed within a shell.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to exec of Pod", - "nickname": "connectPostNamespacedPodExec", - "parameters": [ - { - "type": "boolean", - "paramType": "query", - "name": "stdin", - "description": "Redirect the standard input stream of the pod for this call. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stdout", - "description": "Redirect the standard output stream of the pod for this call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stderr", - "description": "Redirect the standard error stream of the pod for this call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "tty", - "description": "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "container", - "description": "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "command", - "description": "Command is the remote command to execute. argv array. Not executed within a shell.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/log", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "read log of the specified Pod", - "nickname": "readNamespacedPodLog", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "container", - "description": "The container for which to stream logs. Defaults to only container if there is one container in the pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "follow", - "description": "Follow the log stream of the pod. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "previous", - "description": "Return previous terminated container logs. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "sinceSeconds", - "description": "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "timestamps", - "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "tailLines", - "description": "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limitBytes", - "description": "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "text/plain", - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/portforward", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to portforward of Pod", - "nickname": "connectGetNamespacedPodPortforward", - "parameters": [ - { - "type": "integer", - "paramType": "query", - "name": "ports", - "description": "List of ports to forward Required when using WebSockets", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to portforward of Pod", - "nickname": "connectPostNamespacedPodPortforward", - "parameters": [ - { - "type": "integer", - "paramType": "query", - "name": "ports", - "description": "List of ports to forward Required when using WebSockets", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/proxy", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to proxy of Pod", - "nickname": "connectGetNamespacedPodProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to proxy of Pod", - "nickname": "connectPostNamespacedPodProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to proxy of Pod", - "nickname": "connectPutNamespacedPodProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to proxy of Pod", - "nickname": "connectDeleteNamespacedPodProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to proxy of Pod", - "nickname": "connectHeadNamespacedPodProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to proxy of Pod", - "nickname": "connectOptionsNamespacedPodProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to proxy of Pod", - "nickname": "connectGetNamespacedPodProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to proxy of Pod", - "nickname": "connectPostNamespacedPodProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to proxy of Pod", - "nickname": "connectPutNamespacedPodProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to proxy of Pod", - "nickname": "connectDeleteNamespacedPodProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to proxy of Pod", - "nickname": "connectHeadNamespacedPodProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to proxy of Pod", - "nickname": "connectOptionsNamespacedPodProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Pod", - "method": "GET", - "summary": "read status of the specified Pod", - "nickname": "readNamespacedPodStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Pod", - "method": "PUT", - "summary": "replace status of the specified Pod", - "nickname": "replaceNamespacedPodStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Pod", - "method": "PATCH", - "summary": "partially update status of the specified Pod", - "nickname": "patchNamespacedPodStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/podtemplates", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PodTemplateList", - "method": "GET", - "summary": "list or watch objects of kind PodTemplate", - "nickname": "listNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplateList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PodTemplate", - "method": "POST", - "summary": "create a PodTemplate", - "nickname": "createNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PodTemplate", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplate" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of PodTemplate", - "nickname": "deletecollectionNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/podtemplates", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PodTemplate", - "nickname": "watchNamespacedPodTemplateList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/podtemplates/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PodTemplate", - "method": "GET", - "summary": "read the specified PodTemplate", - "nickname": "readNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplate" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PodTemplate", - "method": "PUT", - "summary": "replace the specified PodTemplate", - "nickname": "replaceNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PodTemplate", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplate" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PodTemplate", - "method": "PATCH", - "summary": "partially update the specified PodTemplate", - "nickname": "patchNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplate" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a PodTemplate", - "nickname": "deleteNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/podtemplates/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind PodTemplate", - "nickname": "watchNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/podtemplates", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PodTemplateList", - "method": "GET", - "summary": "list or watch objects of kind PodTemplate", - "nickname": "listPodTemplateForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplateList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/podtemplates", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PodTemplate", - "nickname": "watchPodTemplateListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/replicationcontrollers", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ReplicationControllerList", - "method": "GET", - "summary": "list or watch objects of kind ReplicationController", - "nickname": "listNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationControllerList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ReplicationController", - "method": "POST", - "summary": "create a ReplicationController", - "nickname": "createNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ReplicationController", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ReplicationController", - "nickname": "deletecollectionNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/replicationcontrollers", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ReplicationController", - "nickname": "watchNamespacedReplicationControllerList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ReplicationController", - "method": "GET", - "summary": "read the specified ReplicationController", - "nickname": "readNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ReplicationController", - "method": "PUT", - "summary": "replace the specified ReplicationController", - "nickname": "replaceNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ReplicationController", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ReplicationController", - "method": "PATCH", - "summary": "partially update the specified ReplicationController", - "nickname": "patchNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ReplicationController", - "nickname": "deleteNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ReplicationController", - "nickname": "watchNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/replicationcontrollers", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ReplicationControllerList", - "method": "GET", - "summary": "list or watch objects of kind ReplicationController", - "nickname": "listReplicationControllerForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationControllerList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/replicationcontrollers", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ReplicationController", - "nickname": "watchReplicationControllerListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Scale", - "method": "GET", - "summary": "read scale of the specified Scale", - "nickname": "readNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Scale", - "method": "PUT", - "summary": "replace scale of the specified Scale", - "nickname": "replaceNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Scale", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Scale", - "method": "PATCH", - "summary": "partially update scale of the specified Scale", - "nickname": "patchNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ReplicationController", - "method": "GET", - "summary": "read status of the specified ReplicationController", - "nickname": "readNamespacedReplicationControllerStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ReplicationController", - "method": "PUT", - "summary": "replace status of the specified ReplicationController", - "nickname": "replaceNamespacedReplicationControllerStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ReplicationController", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ReplicationController", - "method": "PATCH", - "summary": "partially update status of the specified ReplicationController", - "nickname": "patchNamespacedReplicationControllerStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/resourcequotas", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ResourceQuotaList", - "method": "GET", - "summary": "list or watch objects of kind ResourceQuota", - "nickname": "listNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuotaList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ResourceQuota", - "method": "POST", - "summary": "create a ResourceQuota", - "nickname": "createNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ResourceQuota", - "nickname": "deletecollectionNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/resourcequotas", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ResourceQuota", - "nickname": "watchNamespacedResourceQuotaList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/resourcequotas/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ResourceQuota", - "method": "GET", - "summary": "read the specified ResourceQuota", - "nickname": "readNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ResourceQuota", - "method": "PUT", - "summary": "replace the specified ResourceQuota", - "nickname": "replaceNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ResourceQuota", - "method": "PATCH", - "summary": "partially update the specified ResourceQuota", - "nickname": "patchNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ResourceQuota", - "nickname": "deleteNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ResourceQuota", - "nickname": "watchNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/resourcequotas", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ResourceQuotaList", - "method": "GET", - "summary": "list or watch objects of kind ResourceQuota", - "nickname": "listResourceQuotaForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuotaList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/resourcequotas", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ResourceQuota", - "nickname": "watchResourceQuotaListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/resourcequotas/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ResourceQuota", - "method": "GET", - "summary": "read status of the specified ResourceQuota", - "nickname": "readNamespacedResourceQuotaStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ResourceQuota", - "method": "PUT", - "summary": "replace status of the specified ResourceQuota", - "nickname": "replaceNamespacedResourceQuotaStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ResourceQuota", - "method": "PATCH", - "summary": "partially update status of the specified ResourceQuota", - "nickname": "patchNamespacedResourceQuotaStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/secrets", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.SecretList", - "method": "GET", - "summary": "list or watch objects of kind Secret", - "nickname": "listNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.SecretList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Secret", - "method": "POST", - "summary": "create a Secret", - "nickname": "createNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Secret", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Secret", - "nickname": "deletecollectionNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/secrets", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Secret", - "nickname": "watchNamespacedSecretList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/secrets/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Secret", - "method": "GET", - "summary": "read the specified Secret", - "nickname": "readNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Secret", - "method": "PUT", - "summary": "replace the specified Secret", - "nickname": "replaceNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Secret", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Secret", - "method": "PATCH", - "summary": "partially update the specified Secret", - "nickname": "patchNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Secret", - "nickname": "deleteNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/secrets/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Secret", - "nickname": "watchNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/secrets", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.SecretList", - "method": "GET", - "summary": "list or watch objects of kind Secret", - "nickname": "listSecretForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.SecretList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/secrets", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Secret", - "nickname": "watchSecretListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/serviceaccounts", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ServiceAccountList", - "method": "GET", - "summary": "list or watch objects of kind ServiceAccount", - "nickname": "listNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccountList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ServiceAccount", - "method": "POST", - "summary": "create a ServiceAccount", - "nickname": "createNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ServiceAccount", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccount" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ServiceAccount", - "nickname": "deletecollectionNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/serviceaccounts", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ServiceAccount", - "nickname": "watchNamespacedServiceAccountList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/serviceaccounts/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ServiceAccount", - "method": "GET", - "summary": "read the specified ServiceAccount", - "nickname": "readNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccount" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ServiceAccount", - "method": "PUT", - "summary": "replace the specified ServiceAccount", - "nickname": "replaceNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ServiceAccount", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccount" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ServiceAccount", - "method": "PATCH", - "summary": "partially update the specified ServiceAccount", - "nickname": "patchNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccount" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ServiceAccount", - "nickname": "deleteNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ServiceAccount", - "nickname": "watchNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/serviceaccounts", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ServiceAccountList", - "method": "GET", - "summary": "list or watch objects of kind ServiceAccount", - "nickname": "listServiceAccountForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccountList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/serviceaccounts", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ServiceAccount", - "nickname": "watchServiceAccountListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ServiceList", - "method": "GET", - "summary": "list or watch objects of kind Service", - "nickname": "listNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "POST", - "summary": "create a Service", - "nickname": "createNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/services", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Service", - "nickname": "watchNamespacedServiceList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Service", - "method": "GET", - "summary": "read the specified Service", - "nickname": "readNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "PUT", - "summary": "replace the specified Service", - "nickname": "replaceNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "PATCH", - "summary": "partially update the specified Service", - "nickname": "patchNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Service", - "nickname": "deleteNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/services/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Service", - "nickname": "watchNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/proxy/namespaces/{namespace}/services/{name}/{path}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Service", - "nickname": "proxyGETNamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Service", - "nickname": "proxyPUTNamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Service", - "nickname": "proxyPOSTNamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PATCH", - "summary": "proxy PATCH requests to Service", - "nickname": "proxyPATCHNamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Service", - "nickname": "proxyDELETENamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Service", - "nickname": "proxyHEADNamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "proxy OPTIONS requests to Service", - "nickname": "proxyOPTIONSNamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/proxy/namespaces/{namespace}/services/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Service", - "nickname": "proxyGETNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Service", - "nickname": "proxyPUTNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Service", - "nickname": "proxyPOSTNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PATCH", - "summary": "proxy PATCH requests to Service", - "nickname": "proxyPATCHNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Service", - "nickname": "proxyDELETENamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Service", - "nickname": "proxyHEADNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "proxy OPTIONS requests to Service", - "nickname": "proxyOPTIONSNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/services", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ServiceList", - "method": "GET", - "summary": "list or watch objects of kind Service", - "nickname": "listServiceForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/services", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Service", - "nickname": "watchServiceListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services/{name}/proxy", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to proxy of Service", - "nickname": "connectGetNamespacedServiceProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to proxy of Service", - "nickname": "connectPostNamespacedServiceProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to proxy of Service", - "nickname": "connectPutNamespacedServiceProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to proxy of Service", - "nickname": "connectDeleteNamespacedServiceProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to proxy of Service", - "nickname": "connectHeadNamespacedServiceProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to proxy of Service", - "nickname": "connectOptionsNamespacedServiceProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to proxy of Service", - "nickname": "connectGetNamespacedServiceProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to proxy of Service", - "nickname": "connectPostNamespacedServiceProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to proxy of Service", - "nickname": "connectPutNamespacedServiceProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to proxy of Service", - "nickname": "connectDeleteNamespacedServiceProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to proxy of Service", - "nickname": "connectHeadNamespacedServiceProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to proxy of Service", - "nickname": "connectOptionsNamespacedServiceProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Service", - "method": "GET", - "summary": "read status of the specified Service", - "nickname": "readNamespacedServiceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "PUT", - "summary": "replace status of the specified Service", - "nickname": "replaceNamespacedServiceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "PATCH", - "summary": "partially update status of the specified Service", - "nickname": "patchNamespacedServiceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.APIResourceList", - "method": "GET", - "summary": "get available resources", - "nickname": "getAPIResources", - "parameters": [], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ] - } - ] - } - ], - "models": { - "v1.Binding": { - "id": "v1.Binding", - "description": "Binding ties one object to another. For example, a pod is bound to a node by a scheduler.", - "required": [ - "target" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "target": { - "$ref": "v1.ObjectReference", - "description": "The target object that you want to bind to the standard object." - } - } - }, - "v1.ObjectMeta": { - "id": "v1.ObjectMeta", - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "name": { - "type": "string", - "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "generateName": { - "type": "string", - "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#idempotency" - }, - "namespace": { - "type": "string", - "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" - }, - "selfLink": { - "type": "string", - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." - }, - "uid": { - "type": "string", - "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "resourceVersion": { - "type": "string", - "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency" - }, - "generation": { - "type": "integer", - "format": "int64", - "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only." - }, - "creationTimestamp": { - "type": "string", - "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "deletionTimestamp": { - "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "deletionGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only." - }, - "labels": { - "type": "object", - "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels" - }, - "annotations": { - "type": "object", - "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations" - }, - "ownerReferences": { - "type": "array", - "items": { - "$ref": "v1.OwnerReference" - }, - "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller." - }, - "finalizers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed." - }, - "clusterName": { - "type": "string", - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request." - } - } - }, - "v1.OwnerReference": { - "id": "v1.OwnerReference", - "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "API version of the referent." - }, - "kind": { - "type": "string", - "description": "Kind of the referent. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "uid": { - "type": "string", - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "controller": { - "type": "boolean", - "description": "If true, this reference points to the managing controller." - }, - "blockOwnerDeletion": { - "type": "boolean", - "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned." - } - } - }, - "v1.ObjectReference": { - "id": "v1.ObjectReference", - "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", - "properties": { - "kind": { - "type": "string", - "description": "Kind of the referent. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "namespace": { - "type": "string", - "description": "Namespace of the referent. More info: http://kubernetes.io/docs/user-guide/namespaces" - }, - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "uid": { - "type": "string", - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "apiVersion": { - "type": "string", - "description": "API version of the referent." - }, - "resourceVersion": { - "type": "string", - "description": "Specific resourceVersion to which this reference is made, if any. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency" - }, - "fieldPath": { - "type": "string", - "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object." - } - } - }, - "v1.ComponentStatusList": { - "id": "v1.ComponentStatusList", - "description": "Status of all the conditions for the component as a list of ComponentStatus objects.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.ComponentStatus" - }, - "description": "List of ComponentStatus objects." - } - } - }, - "v1.ListMeta": { - "id": "v1.ListMeta", - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "selfLink": { - "type": "string", - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." - }, - "resourceVersion": { - "type": "string", - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency" - } - } - }, - "v1.ComponentStatus": { - "id": "v1.ComponentStatus", - "description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1.ComponentCondition" - }, - "description": "List of component conditions observed" - } - } - }, - "v1.ComponentCondition": { - "id": "v1.ComponentCondition", - "description": "Information about the condition of a component.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type of condition for a component. Valid value: \"Healthy\"" - }, - "status": { - "type": "string", - "description": "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\"." - }, - "message": { - "type": "string", - "description": "Message about the condition for a component. For example, information about a health check." - }, - "error": { - "type": "string", - "description": "Condition error code for a component. For example, a health check error code." - } - } - }, - "v1.ConfigMapList": { - "id": "v1.ConfigMapList", - "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.ConfigMap" - }, - "description": "Items is the list of ConfigMaps." - } - } - }, - "v1.ConfigMap": { - "id": "v1.ConfigMap", - "description": "ConfigMap holds configuration data for pods to consume.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "data": { - "type": "object", - "description": "Data contains the configuration data. Each key must be a valid DNS_SUBDOMAIN with an optional leading dot." - } - } - }, - "v1.Status": { - "id": "v1.Status", - "description": "Status is a return value for calls that don't return other objects.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "status": { - "type": "string", - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "message": { - "type": "string", - "description": "A human-readable description of the status of this operation." - }, - "reason": { - "type": "string", - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it." - }, - "details": { - "$ref": "v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." - }, - "code": { - "type": "integer", - "format": "int32", - "description": "Suggested HTTP return code for this status, 0 if not set." - } - } - }, - "v1.StatusDetails": { - "id": "v1.StatusDetails", - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "name": { - "type": "string", - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)." - }, - "group": { - "type": "string", - "description": "The group attribute of the resource associated with the status StatusReason." - }, - "kind": { - "type": "string", - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "causes": { - "type": "array", - "items": { - "$ref": "v1.StatusCause" - }, - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes." - }, - "retryAfterSeconds": { - "type": "integer", - "format": "int32", - "description": "If specified, the time in seconds before the operation should be retried." - } - } - }, - "v1.StatusCause": { - "id": "v1.StatusCause", - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "reason": { - "type": "string", - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available." - }, - "message": { - "type": "string", - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader." - }, - "field": { - "type": "string", - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"" - } - } - }, - "v1.WatchEvent": { - "id": "v1.WatchEvent", - "required": [ - "type", - "object" - ], - "properties": { - "type": { - "type": "string" - }, - "object": { - "type": "string" - } - } - }, - "v1.Patch": { - "id": "v1.Patch", - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - "properties": {} - }, - "v1.DeleteOptions": { - "id": "v1.DeleteOptions", - "description": "DeleteOptions may be provided when deleting an API object.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "gracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately." - }, - "preconditions": { - "$ref": "v1.Preconditions", - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." - }, - "orphanDependents": { - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both." - }, - "propagationPolicy": { - "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." - } - } - }, - "v1.Preconditions": { - "id": "v1.Preconditions", - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "uid": { - "$ref": "types.UID", - "description": "Specifies the target UID." - } - } - }, - "types.UID": { - "id": "types.UID", - "properties": {} - }, - "v1.DeletionPropagation": { - "id": "v1.DeletionPropagation", - "properties": {} - }, - "v1.EndpointsList": { - "id": "v1.EndpointsList", - "description": "EndpointsList is a list of endpoints.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Endpoints" - }, - "description": "List of endpoints." - } - } - }, - "v1.Endpoints": { - "id": "v1.Endpoints", - "description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n Name: \"mysvc\",\n Subsets: [\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n },\n {\n Addresses: [{\"ip\": \"10.10.3.3\"}],\n Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n },\n ]", - "required": [ - "subsets" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "subsets": { - "type": "array", - "items": { - "$ref": "v1.EndpointSubset" - }, - "description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service." - } - } - }, - "v1.EndpointSubset": { - "id": "v1.EndpointSubset", - "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n }\nThe resulting set of endpoints can be viewed as:\n a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n b: [ 10.10.1.1:309, 10.10.2.2:309 ]", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "v1.EndpointAddress" - }, - "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize." - }, - "notReadyAddresses": { - "type": "array", - "items": { - "$ref": "v1.EndpointAddress" - }, - "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check." - }, - "ports": { - "type": "array", - "items": { - "$ref": "v1.EndpointPort" - }, - "description": "Port numbers available on the related IP addresses." - } - } - }, - "v1.EndpointAddress": { - "id": "v1.EndpointAddress", - "description": "EndpointAddress is a tuple that describes single IP address.", - "required": [ - "ip" - ], - "properties": { - "ip": { - "type": "string", - "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready." - }, - "hostname": { - "type": "string", - "description": "The Hostname of this endpoint" - }, - "nodeName": { - "type": "string", - "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node." - }, - "targetRef": { - "$ref": "v1.ObjectReference", - "description": "Reference to object providing the endpoint." - } - } - }, - "v1.EndpointPort": { - "id": "v1.EndpointPort", - "description": "EndpointPort is a tuple that describes a single port.", - "required": [ - "port" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of this port (corresponds to ServicePort.Name). Must be a DNS_LABEL. Optional only if one port is defined." - }, - "port": { - "type": "integer", - "format": "int32", - "description": "The port number of the endpoint." - }, - "protocol": { - "type": "string", - "description": "The IP protocol for this port. Must be UDP or TCP. Default is TCP." - } - } - }, - "v1.EventList": { - "id": "v1.EventList", - "description": "EventList is a list of events.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Event" - }, - "description": "List of events" - } - } - }, - "v1.Event": { - "id": "v1.Event", - "description": "Event is a report of an event somewhere in the cluster.", - "required": [ - "metadata", - "involvedObject" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "involvedObject": { - "$ref": "v1.ObjectReference", - "description": "The object that this event is about." - }, - "reason": { - "type": "string", - "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status." - }, - "message": { - "type": "string", - "description": "A human-readable description of the status of this operation." - }, - "source": { - "$ref": "v1.EventSource", - "description": "The component reporting this event. Should be a short machine understandable string." - }, - "firstTimestamp": { - "type": "string", - "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)" - }, - "lastTimestamp": { - "type": "string", - "description": "The time at which the most recent occurrence of this event was recorded." - }, - "count": { - "type": "integer", - "format": "int32", - "description": "The number of times this event has occurred." - }, - "type": { - "type": "string", - "description": "Type of this event (Normal, Warning), new types could be added in the future" - } - } - }, - "v1.EventSource": { - "id": "v1.EventSource", - "description": "EventSource contains information for an event.", - "properties": { - "component": { - "type": "string", - "description": "Component from which the event is generated." - }, - "host": { - "type": "string", - "description": "Node name on which the event is generated." - } - } - }, - "v1.LimitRangeList": { - "id": "v1.LimitRangeList", - "description": "LimitRangeList is a list of LimitRange items.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.LimitRange" - }, - "description": "Items is a list of LimitRange objects. More info: http://releases.k8s.io/HEAD/docs/design/admission_control_limit_range.md" - } - } - }, - "v1.LimitRange": { - "id": "v1.LimitRange", - "description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.LimitRangeSpec", - "description": "Spec defines the limits enforced. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.LimitRangeSpec": { - "id": "v1.LimitRangeSpec", - "description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", - "required": [ - "limits" - ], - "properties": { - "limits": { - "type": "array", - "items": { - "$ref": "v1.LimitRangeItem" - }, - "description": "Limits is the list of LimitRangeItem objects that are enforced." - } - } - }, - "v1.LimitRangeItem": { - "id": "v1.LimitRangeItem", - "description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", - "properties": { - "type": { - "type": "string", - "description": "Type of resource that this limit applies to." - }, - "max": { - "type": "object", - "description": "Max usage constraints on this kind by resource name." - }, - "min": { - "type": "object", - "description": "Min usage constraints on this kind by resource name." - }, - "default": { - "type": "object", - "description": "Default resource requirement limit value by resource name if resource limit is omitted." - }, - "defaultRequest": { - "type": "object", - "description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted." - }, - "maxLimitRequestRatio": { - "type": "object", - "description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource." - } - } - }, - "v1.NamespaceList": { - "id": "v1.NamespaceList", - "description": "NamespaceList is a list of Namespaces.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Namespace" - }, - "description": "Items is the list of Namespace objects in the list. More info: http://kubernetes.io/docs/user-guide/namespaces" - } - } - }, - "v1.Namespace": { - "id": "v1.Namespace", - "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.NamespaceSpec", - "description": "Spec defines the behavior of the Namespace. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.NamespaceStatus", - "description": "Status describes the current status of a Namespace. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.NamespaceSpec": { - "id": "v1.NamespaceSpec", - "description": "NamespaceSpec describes the attributes on a Namespace.", - "properties": { - "finalizers": { - "type": "array", - "items": { - "$ref": "v1.FinalizerName" - }, - "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: http://releases.k8s.io/HEAD/docs/design/namespaces.md#finalizers" - } - } - }, - "v1.FinalizerName": { - "id": "v1.FinalizerName", - "properties": {} - }, - "v1.NamespaceStatus": { - "id": "v1.NamespaceStatus", - "description": "NamespaceStatus is information about the current status of a Namespace.", - "properties": { - "phase": { - "type": "string", - "description": "Phase is the current lifecycle phase of the namespace. More info: http://releases.k8s.io/HEAD/docs/design/namespaces.md#phases" - } - } - }, - "v1.NodeList": { - "id": "v1.NodeList", - "description": "NodeList is the whole list of all Nodes which have been registered with master.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Node" - }, - "description": "List of nodes" - } - } - }, - "v1.Node": { - "id": "v1.Node", - "description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.NodeSpec", - "description": "Spec defines the behavior of a node. http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.NodeStatus", - "description": "Most recently observed status of the node. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.NodeSpec": { - "id": "v1.NodeSpec", - "description": "NodeSpec describes the attributes that a node is created with.", - "properties": { - "podCIDR": { - "type": "string", - "description": "PodCIDR represents the pod IP range assigned to the node." - }, - "externalID": { - "type": "string", - "description": "External ID of the node assigned by some machine database (e.g. a cloud provider). Deprecated." - }, - "providerID": { - "type": "string", - "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e" - }, - "unschedulable": { - "type": "boolean", - "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: http://releases.k8s.io/HEAD/docs/admin/node.md#manual-node-administration" - }, - "taints": { - "type": "array", - "items": { - "$ref": "v1.Taint" - }, - "description": "If specified, the node's taints." - } - } - }, - "v1.Taint": { - "id": "v1.Taint", - "description": "The node this Taint is attached to has the effect \"effect\" on any pod that that does not tolerate the Taint.", - "required": [ - "key", - "effect" - ], - "properties": { - "key": { - "type": "string", - "description": "Required. The taint key to be applied to a node." - }, - "value": { - "type": "string", - "description": "Required. The taint value corresponding to the taint key." - }, - "effect": { - "type": "string", - "description": "Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute." - }, - "timeAdded": { - "type": "string", - "description": "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints." - } - } - }, - "v1.NodeStatus": { - "id": "v1.NodeStatus", - "description": "NodeStatus is information about the current status of a node.", - "properties": { - "capacity": { - "type": "object", - "description": "Capacity represents the total resources of a node. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#capacity for more details." - }, - "allocatable": { - "type": "object", - "description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity." - }, - "phase": { - "type": "string", - "description": "NodePhase is the recently observed lifecycle phase of the node. More info: http://releases.k8s.io/HEAD/docs/admin/node.md#node-phase The field is never populated, and now is deprecated." - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1.NodeCondition" - }, - "description": "Conditions is an array of current observed node conditions. More info: http://releases.k8s.io/HEAD/docs/admin/node.md#node-condition" - }, - "addresses": { - "type": "array", - "items": { - "$ref": "v1.NodeAddress" - }, - "description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: http://releases.k8s.io/HEAD/docs/admin/node.md#node-addresses" - }, - "daemonEndpoints": { - "$ref": "v1.NodeDaemonEndpoints", - "description": "Endpoints of daemons running on the Node." - }, - "nodeInfo": { - "$ref": "v1.NodeSystemInfo", - "description": "Set of ids/uuids to uniquely identify the node. More info: http://releases.k8s.io/HEAD/docs/admin/node.md#node-info" - }, - "images": { - "type": "array", - "items": { - "$ref": "v1.ContainerImage" - }, - "description": "List of container images on this node" - }, - "volumesInUse": { - "type": "array", - "items": { - "$ref": "v1.UniqueVolumeName" - }, - "description": "List of attachable volumes in use (mounted) by the node." - }, - "volumesAttached": { - "type": "array", - "items": { - "$ref": "v1.AttachedVolume" - }, - "description": "List of volumes that are attached to the node." - } - } - }, - "v1.NodeCondition": { - "id": "v1.NodeCondition", - "description": "NodeCondition contains condition information for a node.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type of node condition." - }, - "status": { - "type": "string", - "description": "Status of the condition, one of True, False, Unknown." - }, - "lastHeartbeatTime": { - "type": "string", - "description": "Last time we got an update on a given condition." - }, - "lastTransitionTime": { - "type": "string", - "description": "Last time the condition transit from one status to another." - }, - "reason": { - "type": "string", - "description": "(brief) reason for the condition's last transition." - }, - "message": { - "type": "string", - "description": "Human readable message indicating details about last transition." - } - } - }, - "v1.NodeAddress": { - "id": "v1.NodeAddress", - "description": "NodeAddress contains information for the node's address.", - "required": [ - "type", - "address" - ], - "properties": { - "type": { - "type": "string", - "description": "Node address type, one of Hostname, ExternalIP or InternalIP." - }, - "address": { - "type": "string", - "description": "The node address." - } - } - }, - "v1.NodeDaemonEndpoints": { - "id": "v1.NodeDaemonEndpoints", - "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", - "properties": { - "kubeletEndpoint": { - "$ref": "v1.DaemonEndpoint", - "description": "Endpoint on which Kubelet is listening." - } - } - }, - "v1.DaemonEndpoint": { - "id": "v1.DaemonEndpoint", - "description": "DaemonEndpoint contains information about a single Daemon endpoint.", - "required": [ - "Port" - ], - "properties": { - "Port": { - "type": "integer", - "format": "int32", - "description": "Port number of the given endpoint." - } - } - }, - "v1.NodeSystemInfo": { - "id": "v1.NodeSystemInfo", - "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", - "required": [ - "machineID", - "systemUUID", - "bootID", - "kernelVersion", - "osImage", - "containerRuntimeVersion", - "kubeletVersion", - "kubeProxyVersion", - "operatingSystem", - "architecture" - ], - "properties": { - "machineID": { - "type": "string", - "description": "MachineID reported by the node. For unique machine identification in the cluster this field is prefered. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html" - }, - "systemUUID": { - "type": "string", - "description": "SystemUUID reported by the node. For unique machine identification MachineID is prefered. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html" - }, - "bootID": { - "type": "string", - "description": "Boot ID reported by the node." - }, - "kernelVersion": { - "type": "string", - "description": "Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64)." - }, - "osImage": { - "type": "string", - "description": "OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy))." - }, - "containerRuntimeVersion": { - "type": "string", - "description": "ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0)." - }, - "kubeletVersion": { - "type": "string", - "description": "Kubelet Version reported by the node." - }, - "kubeProxyVersion": { - "type": "string", - "description": "KubeProxy Version reported by the node." - }, - "operatingSystem": { - "type": "string", - "description": "The Operating System reported by the node" - }, - "architecture": { - "type": "string", - "description": "The Architecture reported by the node" - } - } - }, - "v1.ContainerImage": { - "id": "v1.ContainerImage", - "description": "Describe a container image", - "required": [ - "names" - ], - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Names by which this image is known. e.g. [\"gcr.io/google_containers/hyperkube:v1.0.7\", \"dockerhub.io/google_containers/hyperkube:v1.0.7\"]" - }, - "sizeBytes": { - "type": "integer", - "format": "int64", - "description": "The size of the image in bytes." - } - } - }, - "v1.UniqueVolumeName": { - "id": "v1.UniqueVolumeName", - "properties": {} - }, - "v1.AttachedVolume": { - "id": "v1.AttachedVolume", - "description": "AttachedVolume describes a volume attached to a node", - "required": [ - "name", - "devicePath" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the attached volume" - }, - "devicePath": { - "type": "string", - "description": "DevicePath represents the device path where the volume should be available" - } - } - }, - "v1.PersistentVolumeClaimList": { - "id": "v1.PersistentVolumeClaimList", - "description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.PersistentVolumeClaim" - }, - "description": "A list of persistent volume claims. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - } - } - }, - "v1.PersistentVolumeClaim": { - "id": "v1.PersistentVolumeClaim", - "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.PersistentVolumeClaimSpec", - "description": "Spec defines the desired characteristics of a volume requested by a pod author. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - }, - "status": { - "$ref": "v1.PersistentVolumeClaimStatus", - "description": "Status represents the current information/status of a persistent volume claim. Read-only. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - } - } - }, - "v1.PersistentVolumeClaimSpec": { - "id": "v1.PersistentVolumeClaimSpec", - "description": "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes", - "properties": { - "accessModes": { - "type": "array", - "items": { - "$ref": "v1.PersistentVolumeAccessMode" - }, - "description": "AccessModes contains the desired access modes the volume should have. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#access-modes-1" - }, - "selector": { - "$ref": "v1.LabelSelector", - "description": "A label query over volumes to consider for binding." - }, - "resources": { - "$ref": "v1.ResourceRequirements", - "description": "Resources represents the minimum resources the volume should have. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#resources" - }, - "volumeName": { - "type": "string", - "description": "VolumeName is the binding reference to the PersistentVolume backing this claim." - }, - "storageClassName": { - "type": "string", - "description": "Name of the StorageClass required by the claim. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#class-1" - } - } - }, - "v1.PersistentVolumeAccessMode": { - "id": "v1.PersistentVolumeAccessMode", - "properties": {} - }, - "v1.LabelSelector": { - "id": "v1.LabelSelector", - "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", - "properties": { - "matchLabels": { - "type": "object", - "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." - }, - "matchExpressions": { - "type": "array", - "items": { - "$ref": "v1.LabelSelectorRequirement" - }, - "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed." - } - } - }, - "v1.LabelSelectorRequirement": { - "id": "v1.LabelSelectorRequirement", - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "type": "string", - "description": "key is the label key that the selector applies to." - }, - "operator": { - "type": "string", - "description": "operator represents a key's relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." - } - } - }, - "v1.ResourceRequirements": { - "id": "v1.ResourceRequirements", - "description": "ResourceRequirements describes the compute resource requirements.", - "properties": { - "limits": { - "type": "object", - "description": "Limits describes the maximum amount of compute resources allowed. More info: http://kubernetes.io/docs/user-guide/compute-resources/" - }, - "requests": { - "type": "object", - "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: http://kubernetes.io/docs/user-guide/compute-resources/" - } - } - }, - "v1.PersistentVolumeClaimStatus": { - "id": "v1.PersistentVolumeClaimStatus", - "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", - "properties": { - "phase": { - "type": "string", - "description": "Phase represents the current phase of PersistentVolumeClaim." - }, - "accessModes": { - "type": "array", - "items": { - "$ref": "v1.PersistentVolumeAccessMode" - }, - "description": "AccessModes contains the actual access modes the volume backing the PVC has. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#access-modes-1" - }, - "capacity": { - "type": "object", - "description": "Represents the actual resources of the underlying volume." - } - } - }, - "v1.PersistentVolumeList": { - "id": "v1.PersistentVolumeList", - "description": "PersistentVolumeList is a list of PersistentVolume items.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.PersistentVolume" - }, - "description": "List of persistent volumes. More info: http://kubernetes.io/docs/user-guide/persistent-volumes" - } - } - }, - "v1.PersistentVolume": { - "id": "v1.PersistentVolume", - "description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: http://kubernetes.io/docs/user-guide/persistent-volumes", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.PersistentVolumeSpec", - "description": "Spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistent-volumes" - }, - "status": { - "$ref": "v1.PersistentVolumeStatus", - "description": "Status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistent-volumes" - } - } - }, - "v1.PersistentVolumeSpec": { - "id": "v1.PersistentVolumeSpec", - "description": "PersistentVolumeSpec is the specification of a persistent volume.", - "properties": { - "capacity": { - "type": "object", - "description": "A description of the persistent volume's resources and capacity. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#capacity" - }, - "gcePersistentDisk": { - "$ref": "v1.GCEPersistentDiskVolumeSource", - "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "awsElasticBlockStore": { - "$ref": "v1.AWSElasticBlockStoreVolumeSource", - "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "hostPath": { - "$ref": "v1.HostPathVolumeSource", - "description": "HostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath" - }, - "glusterfs": { - "$ref": "v1.GlusterfsVolumeSource", - "description": "Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md" - }, - "nfs": { - "$ref": "v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host. Provisioned by an admin. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "rbd": { - "$ref": "v1.RBDVolumeSource", - "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md" - }, - "iscsi": { - "$ref": "v1.ISCSIVolumeSource", - "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin." - }, - "cinder": { - "$ref": "v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "cephfs": { - "$ref": "v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "fc": { - "$ref": "v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "flocker": { - "$ref": "v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running" - }, - "flexVolume": { - "$ref": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future." - }, - "azureFile": { - "$ref": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "vsphereVolume": { - "$ref": "v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "azureDisk": { - "$ref": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "photonPersistentDisk": { - "$ref": "v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "portworxVolume": { - "$ref": "v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "scaleIO": { - "$ref": "v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "accessModes": { - "type": "array", - "items": { - "$ref": "v1.PersistentVolumeAccessMode" - }, - "description": "AccessModes contains all ways the volume can be mounted. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#access-modes" - }, - "claimRef": { - "$ref": "v1.ObjectReference", - "description": "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#binding" - }, - "persistentVolumeReclaimPolicy": { - "type": "string", - "description": "What happens to a persistent volume when released from its claim. Valid options are Retain (default) and Recycle. Recycling must be supported by the volume plugin underlying this persistent volume. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#recycling-policy" - }, - "storageClassName": { - "type": "string", - "description": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass." - } - } - }, - "v1.GCEPersistentDiskVolumeSource": { - "id": "v1.GCEPersistentDiskVolumeSource", - "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", - "required": [ - "pdName" - ], - "properties": { - "pdName": { - "type": "string", - "description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - } - } - }, - "v1.AWSElasticBlockStoreVolumeSource": { - "id": "v1.AWSElasticBlockStoreVolumeSource", - "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." - }, - "readOnly": { - "type": "boolean", - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - } - } - }, - "v1.HostPathVolumeSource": { - "id": "v1.HostPathVolumeSource", - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "Path of the directory on the host. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath" - } - } - }, - "v1.GlusterfsVolumeSource": { - "id": "v1.GlusterfsVolumeSource", - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "endpoints", - "path" - ], - "properties": { - "endpoints": { - "type": "string", - "description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - }, - "path": { - "type": "string", - "description": "Path is the Glusterfs volume path. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - } - } - }, - "v1.NFSVolumeSource": { - "id": "v1.NFSVolumeSource", - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - "required": [ - "server", - "path" - ], - "properties": { - "server": { - "type": "string", - "description": "Server is the hostname or IP address of the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "path": { - "type": "string", - "description": "Path that is exported by the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - } - } - }, - "v1.RBDVolumeSource": { - "id": "v1.RBDVolumeSource", - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "required": [ - "monitors", - "image" - ], - "properties": { - "monitors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A collection of Ceph monitors. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "image": { - "type": "string", - "description": "The rados image name. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#rbd" - }, - "pool": { - "type": "string", - "description": "The rados pool name. Default is rbd. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it." - }, - "user": { - "type": "string", - "description": "The rados user name. Default is admin. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "keyring": { - "type": "string", - "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - } - } - }, - "v1.LocalObjectReference": { - "id": "v1.LocalObjectReference", - "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - } - } - }, - "v1.ISCSIVolumeSource": { - "id": "v1.ISCSIVolumeSource", - "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "properties": { - "targetPortal": { - "type": "string", - "description": "iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." - }, - "iqn": { - "type": "string", - "description": "Target iSCSI Qualified Name." - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "iSCSI target lun number." - }, - "iscsiInterface": { - "type": "string", - "description": "Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport." - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#iscsi" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." - }, - "portals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "iSCSI target portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." - } - } - }, - "v1.CinderVolumeSource": { - "id": "v1.CinderVolumeSource", - "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "volume id used to identify the volume in cinder More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - } - } - }, - "v1.CephFSVolumeSource": { - "id": "v1.CephFSVolumeSource", - "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "monitors" - ], - "properties": { - "monitors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required: Monitors is a collection of Ceph monitors More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "path": { - "type": "string", - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" - }, - "user": { - "type": "string", - "description": "Optional: User is the rados user name, default is admin More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "secretFile": { - "type": "string", - "description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - } - } - }, - "v1.FCVolumeSource": { - "id": "v1.FCVolumeSource", - "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], - "properties": { - "targetWWNs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required: FC target worldwide names (WWNs)" - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "Required: FC target lun number" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.FlockerVolumeSource": { - "id": "v1.FlockerVolumeSource", - "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", - "properties": { - "datasetName": { - "type": "string", - "description": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated" - }, - "datasetUUID": { - "type": "string", - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset" - } - } - }, - "v1.FlexVolumeSource": { - "id": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", - "required": [ - "driver" - ], - "properties": { - "driver": { - "type": "string", - "description": "Driver is the name of the driver to use for this volume." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - }, - "options": { - "type": "object", - "description": "Optional: Extra command options if any." - } - } - }, - "v1.AzureFileVolumeSource": { - "id": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "required": [ - "secretName", - "shareName" - ], - "properties": { - "secretName": { - "type": "string", - "description": "the name of secret that contains Azure Storage Account Name and Key" - }, - "shareName": { - "type": "string", - "description": "Share Name" - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.VsphereVirtualDiskVolumeSource": { - "id": "v1.VsphereVirtualDiskVolumeSource", - "description": "Represents a vSphere volume resource.", - "required": [ - "volumePath" - ], - "properties": { - "volumePath": { - "type": "string", - "description": "Path that identifies vSphere volume vmdk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - } - } - }, - "v1.QuobyteVolumeSource": { - "id": "v1.QuobyteVolumeSource", - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - "required": [ - "registry", - "volume" - ], - "properties": { - "registry": { - "type": "string", - "description": "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" - }, - "volume": { - "type": "string", - "description": "Volume is a string that references an already created Quobyte volume by name." - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." - }, - "user": { - "type": "string", - "description": "User to map volume access to Defaults to serivceaccount user" - }, - "group": { - "type": "string", - "description": "Group to map volume access to Default is no group" - } - } - }, - "v1.AzureDiskVolumeSource": { - "id": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "required": [ - "diskName", - "diskURI" - ], - "properties": { - "diskName": { - "type": "string", - "description": "The Name of the data disk in the blob storage" - }, - "diskURI": { - "type": "string", - "description": "The URI the data disk in the blob storage" - }, - "cachingMode": { - "$ref": "v1.AzureDataDiskCachingMode", - "description": "Host Caching mode: None, Read Only, Read Write." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.AzureDataDiskCachingMode": { - "id": "v1.AzureDataDiskCachingMode", - "properties": {} - }, - "v1.PhotonPersistentDiskVolumeSource": { - "id": "v1.PhotonPersistentDiskVolumeSource", - "description": "Represents a Photon Controller persistent disk resource.", - "required": [ - "pdID" - ], - "properties": { - "pdID": { - "type": "string", - "description": "ID that identifies Photon Controller persistent disk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - } - } - }, - "v1.PortworxVolumeSource": { - "id": "v1.PortworxVolumeSource", - "description": "PortworxVolumeSource represents a Portworx volume resource.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "VolumeID uniquely identifies a Portworx volume" - }, - "fsType": { - "type": "string", - "description": "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.ScaleIOVolumeSource": { - "id": "v1.ScaleIOVolumeSource", - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", - "required": [ - "gateway", - "system", - "secretRef" - ], - "properties": { - "gateway": { - "type": "string", - "description": "The host address of the ScaleIO API Gateway." - }, - "system": { - "type": "string", - "description": "The name of the storage system as configured in ScaleIO." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "type": "boolean", - "description": "Flag to enable/disable SSL communication with Gateway, default false" - }, - "protectionDomain": { - "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." - }, - "storagePool": { - "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." - }, - "storageMode": { - "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." - }, - "volumeName": { - "type": "string", - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.PersistentVolumeStatus": { - "id": "v1.PersistentVolumeStatus", - "description": "PersistentVolumeStatus is the current status of a persistent volume.", - "properties": { - "phase": { - "type": "string", - "description": "Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#phase" - }, - "message": { - "type": "string", - "description": "A human-readable message indicating details about why the volume is in this state." - }, - "reason": { - "type": "string", - "description": "Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI." - } - } - }, - "v1.PodList": { - "id": "v1.PodList", - "description": "PodList is a list of Pods.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Pod" - }, - "description": "List of pods. More info: http://kubernetes.io/docs/user-guide/pods" - } - } - }, - "v1.Pod": { - "id": "v1.Pod", - "description": "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.PodStatus", - "description": "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.PodSpec": { - "id": "v1.PodSpec", - "description": "PodSpec is a description of a pod.", - "required": [ - "containers" - ], - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "v1.Volume" - }, - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: http://kubernetes.io/docs/user-guide/volumes" - }, - "initContainers": { - "type": "array", - "items": { - "$ref": "v1.Container" - }, - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers" - }, - "containers": { - "type": "array", - "items": { - "$ref": "v1.Container" - }, - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers" - }, - "restartPolicy": { - "type": "string", - "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: http://kubernetes.io/docs/user-guide/pod-states#restartpolicy" - }, - "terminationGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds." - }, - "activeDeadlineSeconds": { - "type": "integer", - "format": "int64", - "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer." - }, - "dnsPolicy": { - "type": "string", - "description": "Set DNS policy for containers within the pod. One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'. Defaults to \"ClusterFirst\". To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'." - }, - "nodeSelector": { - "type": "object", - "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: http://kubernetes.io/docs/user-guide/node-selection/README" - }, - "serviceAccountName": { - "type": "string", - "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: http://releases.k8s.io/HEAD/docs/design/service_accounts.md" - }, - "serviceAccount": { - "type": "string", - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead." - }, - "automountServiceAccountToken": { - "type": "boolean", - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted." - }, - "nodeName": { - "type": "string", - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements." - }, - "hostNetwork": { - "type": "boolean", - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false." - }, - "hostPID": { - "type": "boolean", - "description": "Use the host's pid namespace. Optional: Default to false." - }, - "hostIPC": { - "type": "boolean", - "description": "Use the host's ipc namespace. Optional: Default to false." - }, - "securityContext": { - "$ref": "v1.PodSecurityContext", - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." - }, - "imagePullSecrets": { - "type": "array", - "items": { - "$ref": "v1.LocalObjectReference" - }, - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod" - }, - "hostname": { - "type": "string", - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value." - }, - "subdomain": { - "type": "string", - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all." - }, - "affinity": { - "$ref": "v1.Affinity", - "description": "If specified, the pod's scheduling constraints" - }, - "schedulerName": { - "type": "string", - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler." - }, - "tolerations": { - "type": "array", - "items": { - "$ref": "v1.Toleration" - }, - "description": "If specified, the pod's tolerations." - } - } - }, - "v1.Volume": { - "id": "v1.Volume", - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "hostPath": { - "$ref": "v1.HostPathVolumeSource", - "description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath" - }, - "emptyDir": { - "$ref": "v1.EmptyDirVolumeSource", - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" - }, - "gcePersistentDisk": { - "$ref": "v1.GCEPersistentDiskVolumeSource", - "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "awsElasticBlockStore": { - "$ref": "v1.AWSElasticBlockStoreVolumeSource", - "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "gitRepo": { - "$ref": "v1.GitRepoVolumeSource", - "description": "GitRepo represents a git repository at a particular revision." - }, - "secret": { - "$ref": "v1.SecretVolumeSource", - "description": "Secret represents a secret that should populate this volume. More info: http://kubernetes.io/docs/user-guide/volumes#secrets" - }, - "nfs": { - "$ref": "v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "iscsi": { - "$ref": "v1.ISCSIVolumeSource", - "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md" - }, - "glusterfs": { - "$ref": "v1.GlusterfsVolumeSource", - "description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md" - }, - "persistentVolumeClaim": { - "$ref": "v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - }, - "rbd": { - "$ref": "v1.RBDVolumeSource", - "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md" - }, - "flexVolume": { - "$ref": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future." - }, - "cinder": { - "$ref": "v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "cephfs": { - "$ref": "v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "flocker": { - "$ref": "v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" - }, - "downwardAPI": { - "$ref": "v1.DownwardAPIVolumeSource", - "description": "DownwardAPI represents downward API about the pod that should populate this volume" - }, - "fc": { - "$ref": "v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "azureFile": { - "$ref": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "configMap": { - "$ref": "v1.ConfigMapVolumeSource", - "description": "ConfigMap represents a configMap that should populate this volume" - }, - "vsphereVolume": { - "$ref": "v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "azureDisk": { - "$ref": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "photonPersistentDisk": { - "$ref": "v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "projected": { - "$ref": "v1.ProjectedVolumeSource", - "description": "Items for all in one resources secrets, configmaps, and downward API" - }, - "portworxVolume": { - "$ref": "v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "scaleIO": { - "$ref": "v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - } - } - }, - "v1.EmptyDirVolumeSource": { - "id": "v1.EmptyDirVolumeSource", - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - "properties": { - "medium": { - "type": "string", - "description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" - } - } - }, - "v1.GitRepoVolumeSource": { - "id": "v1.GitRepoVolumeSource", - "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.", - "required": [ - "repository" - ], - "properties": { - "repository": { - "type": "string", - "description": "Repository URL" - }, - "revision": { - "type": "string", - "description": "Commit hash for the specified revision." - }, - "directory": { - "type": "string", - "description": "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." - } - } - }, - "v1.SecretVolumeSource": { - "id": "v1.SecretVolumeSource", - "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", - "properties": { - "secretName": { - "type": "string", - "description": "Name of the secret in the pod's namespace to use. More info: http://kubernetes.io/docs/user-guide/volumes#secrets" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or it's keys must be defined" - } - } - }, - "v1.KeyToPath": { - "id": "v1.KeyToPath", - "description": "Maps a string key to a path within a volume.", - "required": [ - "key", - "path" - ], - "properties": { - "key": { - "type": "string", - "description": "The key to project." - }, - "path": { - "type": "string", - "description": "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." - }, - "mode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.PersistentVolumeClaimVolumeSource": { - "id": "v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", - "required": [ - "claimName" - ], - "properties": { - "claimName": { - "type": "string", - "description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - }, - "readOnly": { - "type": "boolean", - "description": "Will force the ReadOnly setting in VolumeMounts. Default false." - } - } - }, - "v1.DownwardAPIVolumeSource": { - "id": "v1.DownwardAPIVolumeSource", - "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "v1.DownwardAPIVolumeFile" - }, - "description": "Items is a list of downward API volume file" - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.DownwardAPIVolumeFile": { - "id": "v1.DownwardAPIVolumeFile", - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'" - }, - "fieldRef": { - "$ref": "v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." - }, - "resourceFieldRef": { - "$ref": "v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - }, - "mode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.ObjectFieldSelector": { - "id": "v1.ObjectFieldSelector", - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", - "required": [ - "fieldPath" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"." - }, - "fieldPath": { - "type": "string", - "description": "Path of the field to select in the specified API version." - } - } - }, - "v1.ResourceFieldSelector": { - "id": "v1.ResourceFieldSelector", - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - "required": [ - "resource" - ], - "properties": { - "containerName": { - "type": "string", - "description": "Container name: required for volumes, optional for env vars" - }, - "resource": { - "type": "string", - "description": "Required: resource to select" - }, - "divisor": { - "type": "string", - "description": "Specifies the output format of the exposed resources, defaults to \"1\"" - } - } - }, - "v1.ConfigMapVolumeSource": { - "id": "v1.ConfigMapVolumeSource", - "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's keys must be defined" - } - } - }, - "v1.ProjectedVolumeSource": { - "id": "v1.ProjectedVolumeSource", - "description": "Represents a projected volume source", - "required": [ - "sources" - ], - "properties": { - "sources": { - "type": "array", - "items": { - "$ref": "v1.VolumeProjection" - }, - "description": "list of volume projections" - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.VolumeProjection": { - "id": "v1.VolumeProjection", - "description": "Projection that may be projected along with other supported volume types", - "properties": { - "secret": { - "$ref": "v1.SecretProjection", - "description": "information about the secret data to project" - }, - "downwardAPI": { - "$ref": "v1.DownwardAPIProjection", - "description": "information about the downwardAPI data to project" - }, - "configMap": { - "$ref": "v1.ConfigMapProjection", - "description": "information about the configMap data to project" - } - } - }, - "v1.SecretProjection": { - "id": "v1.SecretProjection", - "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or its key must be defined" - } - } - }, - "v1.DownwardAPIProjection": { - "id": "v1.DownwardAPIProjection", - "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "v1.DownwardAPIVolumeFile" - }, - "description": "Items is a list of DownwardAPIVolume file" - } - } - }, - "v1.ConfigMapProjection": { - "id": "v1.ConfigMapProjection", - "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's keys must be defined" - } - } - }, - "v1.Container": { - "id": "v1.Container", - "description": "A single application container that you want to run within a pod.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated." - }, - "image": { - "type": "string", - "description": "Docker image name. More info: http://kubernetes.io/docs/user-guide/images" - }, - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers#containers-and-commands" - }, - "args": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers#containers-and-commands" - }, - "workingDir": { - "type": "string", - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated." - }, - "ports": { - "type": "array", - "items": { - "$ref": "v1.ContainerPort" - }, - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated." - }, - "envFrom": { - "type": "array", - "items": { - "$ref": "v1.EnvFromSource" - }, - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated." - }, - "env": { - "type": "array", - "items": { - "$ref": "v1.EnvVar" - }, - "description": "List of environment variables to set in the container. Cannot be updated." - }, - "resources": { - "$ref": "v1.ResourceRequirements", - "description": "Compute Resources required by this container. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#resources" - }, - "volumeMounts": { - "type": "array", - "items": { - "$ref": "v1.VolumeMount" - }, - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated." - }, - "livenessProbe": { - "$ref": "v1.Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "readinessProbe": { - "$ref": "v1.Probe", - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "lifecycle": { - "$ref": "v1.Lifecycle", - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." - }, - "terminationMessagePath": { - "type": "string", - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated." - }, - "terminationMessagePolicy": { - "type": "string", - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated." - }, - "imagePullPolicy": { - "type": "string", - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/images#updating-images" - }, - "securityContext": { - "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: http://releases.k8s.io/HEAD/docs/design/security_context.md" - }, - "stdin": { - "type": "boolean", - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false." - }, - "stdinOnce": { - "type": "boolean", - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false" - }, - "tty": { - "type": "boolean", - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false." - } - } - }, - "v1.ContainerPort": { - "id": "v1.ContainerPort", - "description": "ContainerPort represents a network port in a single container.", - "required": [ - "containerPort" - ], - "properties": { - "name": { - "type": "string", - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services." - }, - "hostPort": { - "type": "integer", - "format": "int32", - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this." - }, - "containerPort": { - "type": "integer", - "format": "int32", - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536." - }, - "protocol": { - "type": "string", - "description": "Protocol for port. Must be UDP or TCP. Defaults to \"TCP\"." - }, - "hostIP": { - "type": "string", - "description": "What host IP to bind the external port to." - } - } - }, - "v1.EnvFromSource": { - "id": "v1.EnvFromSource", - "description": "EnvFromSource represents the source of a set of ConfigMaps", - "properties": { - "prefix": { - "type": "string", - "description": "An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER." - }, - "configMapRef": { - "$ref": "v1.ConfigMapEnvSource", - "description": "The ConfigMap to select from" - }, - "secretRef": { - "$ref": "v1.SecretEnvSource", - "description": "The Secret to select from" - } - } - }, - "v1.ConfigMapEnvSource": { - "id": "v1.ConfigMapEnvSource", - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap must be defined" - } - } - }, - "v1.SecretEnvSource": { - "id": "v1.SecretEnvSource", - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret must be defined" - } - } - }, - "v1.EnvVar": { - "id": "v1.EnvVar", - "description": "EnvVar represents an environment variable present in a Container.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the environment variable. Must be a C_IDENTIFIER." - }, - "value": { - "type": "string", - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\"." - }, - "valueFrom": { - "$ref": "v1.EnvVarSource", - "description": "Source for the environment variable's value. Cannot be used if value is not empty." - } - } - }, - "v1.EnvVarSource": { - "id": "v1.EnvVarSource", - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "fieldRef": { - "$ref": "v1.ObjectFieldSelector", - "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.podIP." - }, - "resourceFieldRef": { - "$ref": "v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - }, - "configMapKeyRef": { - "$ref": "v1.ConfigMapKeySelector", - "description": "Selects a key of a ConfigMap." - }, - "secretKeyRef": { - "$ref": "v1.SecretKeySelector", - "description": "Selects a key of a secret in the pod's namespace" - } - } - }, - "v1.ConfigMapKeySelector": { - "id": "v1.ConfigMapKeySelector", - "description": "Selects a key from a ConfigMap.", - "required": [ - "key" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "key": { - "type": "string", - "description": "The key to select." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's key must be defined" - } - } - }, - "v1.SecretKeySelector": { - "id": "v1.SecretKeySelector", - "description": "SecretKeySelector selects a key of a Secret.", - "required": [ - "key" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "key": { - "type": "string", - "description": "The key of the secret to select from. Must be a valid secret key." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or it's key must be defined" - } - } - }, - "v1.VolumeMount": { - "id": "v1.VolumeMount", - "description": "VolumeMount describes a mounting of a Volume within a container.", - "required": [ - "name", - "mountPath" - ], - "properties": { - "name": { - "type": "string", - "description": "This must match the Name of a Volume." - }, - "readOnly": { - "type": "boolean", - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false." - }, - "mountPath": { - "type": "string", - "description": "Path within the container at which the volume should be mounted. Must not contain ':'." - }, - "subPath": { - "type": "string", - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root)." - } - } - }, - "v1.Probe": { - "id": "v1.Probe", - "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - "properties": { - "exec": { - "$ref": "v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - }, - "initialDelaySeconds": { - "type": "integer", - "format": "int32", - "description": "Number of seconds after the container has started before liveness probes are initiated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "timeoutSeconds": { - "type": "integer", - "format": "int32", - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "periodSeconds": { - "type": "integer", - "format": "int32", - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1." - }, - "successThreshold": { - "type": "integer", - "format": "int32", - "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1." - }, - "failureThreshold": { - "type": "integer", - "format": "int32", - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1." - } - } - }, - "v1.ExecAction": { - "id": "v1.ExecAction", - "description": "ExecAction describes a \"run in container\" action.", - "properties": { - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy." - } - } - }, - "v1.HTTPGetAction": { - "id": "v1.HTTPGetAction", - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "required": [ - "port" - ], - "properties": { - "path": { - "type": "string", - "description": "Path to access on the HTTP server." - }, - "port": { - "type": "string", - "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." - }, - "host": { - "type": "string", - "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead." - }, - "scheme": { - "type": "string", - "description": "Scheme to use for connecting to the host. Defaults to HTTP." - }, - "httpHeaders": { - "type": "array", - "items": { - "$ref": "v1.HTTPHeader" - }, - "description": "Custom headers to set in the request. HTTP allows repeated headers." - } - } - }, - "v1.HTTPHeader": { - "id": "v1.HTTPHeader", - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "required": [ - "name", - "value" - ], - "properties": { - "name": { - "type": "string", - "description": "The header field name" - }, - "value": { - "type": "string", - "description": "The header field value" - } - } - }, - "v1.TCPSocketAction": { - "id": "v1.TCPSocketAction", - "description": "TCPSocketAction describes an action based on opening a socket", - "required": [ - "port" - ], - "properties": { - "port": { - "type": "string", - "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." - } - } - }, - "v1.Lifecycle": { - "id": "v1.Lifecycle", - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "$ref": "v1.Handler", - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: http://kubernetes.io/docs/user-guide/container-environment#hook-details" - }, - "preStop": { - "$ref": "v1.Handler", - "description": "PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: http://kubernetes.io/docs/user-guide/container-environment#hook-details" - } - } - }, - "v1.Handler": { - "id": "v1.Handler", - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "$ref": "v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - } - } - }, - "v1.SecurityContext": { - "id": "v1.SecurityContext", - "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", - "properties": { - "capabilities": { - "$ref": "v1.Capabilities", - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." - }, - "privileged": { - "type": "boolean", - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false." - }, - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "runAsNonRoot": { - "type": "boolean", - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "readOnlyRootFilesystem": { - "type": "boolean", - "description": "Whether this container has a read-only root filesystem. Default is false." - } - } - }, - "v1.Capabilities": { - "id": "v1.Capabilities", - "description": "Adds and removes POSIX capabilities from running containers.", - "properties": { - "add": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "Added capabilities" - }, - "drop": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "Removed capabilities" - } - } - }, - "v1.Capability": { - "id": "v1.Capability", - "properties": {} - }, - "v1.SELinuxOptions": { - "id": "v1.SELinuxOptions", - "description": "SELinuxOptions are the labels to be applied to the container", - "properties": { - "user": { - "type": "string", - "description": "User is a SELinux user label that applies to the container." - }, - "role": { - "type": "string", - "description": "Role is a SELinux role label that applies to the container." - }, - "type": { - "type": "string", - "description": "Type is a SELinux type label that applies to the container." - }, - "level": { - "type": "string", - "description": "Level is SELinux level label that applies to the container." - } - } - }, - "v1.PodSecurityContext": { - "id": "v1.PodSecurityContext", - "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", - "properties": { - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." - }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." - }, - "runAsNonRoot": { - "type": "boolean", - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "supplementalGroups": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container." - }, - "fsGroup": { - "type": "integer", - "format": "int64", - "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw " - } - } - }, - "v1.Affinity": { - "id": "v1.Affinity", - "description": "Affinity is a group of affinity scheduling rules.", - "properties": { - "nodeAffinity": { - "$ref": "v1.NodeAffinity", - "description": "Describes node affinity scheduling rules for the pod." - }, - "podAffinity": { - "$ref": "v1.PodAffinity", - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." - }, - "podAntiAffinity": { - "$ref": "v1.PodAntiAffinity", - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." - } - } - }, - "v1.NodeAffinity": { - "id": "v1.NodeAffinity", - "description": "Node affinity is a group of node affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "$ref": "v1.NodeSelector", - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PreferredSchedulingTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.NodeSelector": { - "id": "v1.NodeSelector", - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - "required": [ - "nodeSelectorTerms" - ], - "properties": { - "nodeSelectorTerms": { - "type": "array", - "items": { - "$ref": "v1.NodeSelectorTerm" - }, - "description": "Required. A list of node selector terms. The terms are ORed." - } - } - }, - "v1.NodeSelectorTerm": { - "id": "v1.NodeSelectorTerm", - "description": "A null or empty node selector term matches no objects.", - "required": [ - "matchExpressions" - ], - "properties": { - "matchExpressions": { - "type": "array", - "items": { - "$ref": "v1.NodeSelectorRequirement" - }, - "description": "Required. A list of node selector requirements. The requirements are ANDed." - } - } - }, - "v1.NodeSelectorRequirement": { - "id": "v1.NodeSelectorRequirement", - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "type": "string", - "description": "The label key that the selector applies to." - }, - "operator": { - "type": "string", - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." - } - } - }, - "v1.PreferredSchedulingTerm": { - "id": "v1.PreferredSchedulingTerm", - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "required": [ - "weight", - "preference" - ], - "properties": { - "weight": { - "type": "integer", - "format": "int32", - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." - }, - "preference": { - "$ref": "v1.NodeSelectorTerm", - "description": "A node selector term, associated with the corresponding weight." - } - } - }, - "v1.PodAffinity": { - "id": "v1.PodAffinity", - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PodAffinityTerm" - }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.WeightedPodAffinityTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.PodAffinityTerm": { - "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", - "properties": { - "labelSelector": { - "$ref": "v1.LabelSelector", - "description": "A label query over a set of resources, in this case pods." - }, - "namespaces": { - "type": "array", - "items": { - "type": "string" - }, - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"" - }, - "topologyKey": { - "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." - } - } - }, - "v1.WeightedPodAffinityTerm": { - "id": "v1.WeightedPodAffinityTerm", - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "required": [ - "weight", - "podAffinityTerm" - ], - "properties": { - "weight": { - "type": "integer", - "format": "int32", - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100." - }, - "podAffinityTerm": { - "$ref": "v1.PodAffinityTerm", - "description": "Required. A pod affinity term, associated with the corresponding weight." - } - } - }, - "v1.PodAntiAffinity": { - "id": "v1.PodAntiAffinity", - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PodAffinityTerm" - }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.WeightedPodAffinityTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.Toleration": { - "id": "v1.Toleration", - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", - "properties": { - "key": { - "type": "string", - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys." - }, - "operator": { - "type": "string", - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category." - }, - "value": { - "type": "string", - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string." - }, - "effect": { - "type": "string", - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute." - }, - "tolerationSeconds": { - "type": "integer", - "format": "int64", - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system." - } - } - }, - "v1.PodStatus": { - "id": "v1.PodStatus", - "description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system.", - "properties": { - "phase": { - "type": "string", - "description": "Current condition of the pod. More info: http://kubernetes.io/docs/user-guide/pod-states#pod-phase" - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1.PodCondition" - }, - "description": "Current service state of pod. More info: http://kubernetes.io/docs/user-guide/pod-states#pod-conditions" - }, - "message": { - "type": "string", - "description": "A human readable message indicating details about why the pod is in this condition." - }, - "reason": { - "type": "string", - "description": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'OutOfDisk'" - }, - "hostIP": { - "type": "string", - "description": "IP address of the host to which the pod is assigned. Empty if not yet scheduled." - }, - "podIP": { - "type": "string", - "description": "IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated." - }, - "startTime": { - "type": "string", - "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod." - }, - "initContainerStatuses": { - "type": "array", - "items": { - "$ref": "v1.ContainerStatus" - }, - "description": "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: http://kubernetes.io/docs/user-guide/pod-states#container-statuses" - }, - "containerStatuses": { - "type": "array", - "items": { - "$ref": "v1.ContainerStatus" - }, - "description": "The list has one entry per container in the manifest. Each entry is currently the output of `docker inspect`. More info: http://kubernetes.io/docs/user-guide/pod-states#container-statuses" - }, - "qosClass": { - "type": "string", - "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://github.com/kubernetes/kubernetes/blob/master/docs/design/resource-qos.md" - } - } - }, - "v1.PodCondition": { - "id": "v1.PodCondition", - "description": "PodCondition contains details for the current condition of this pod.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type is the type of the condition. Currently only Ready. More info: http://kubernetes.io/docs/user-guide/pod-states#pod-conditions" - }, - "status": { - "type": "string", - "description": "Status is the status of the condition. Can be True, False, Unknown. More info: http://kubernetes.io/docs/user-guide/pod-states#pod-conditions" - }, - "lastProbeTime": { - "type": "string", - "description": "Last time we probed the condition." - }, - "lastTransitionTime": { - "type": "string", - "description": "Last time the condition transitioned from one status to another." - }, - "reason": { - "type": "string", - "description": "Unique, one-word, CamelCase reason for the condition's last transition." - }, - "message": { - "type": "string", - "description": "Human-readable message indicating details about last transition." - } - } - }, - "v1.ContainerStatus": { - "id": "v1.ContainerStatus", - "description": "ContainerStatus contains details for the current status of this container.", - "required": [ - "name", - "ready", - "restartCount", - "image", - "imageID" - ], - "properties": { - "name": { - "type": "string", - "description": "This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated." - }, - "state": { - "$ref": "v1.ContainerState", - "description": "Details about the container's current condition." - }, - "lastState": { - "$ref": "v1.ContainerState", - "description": "Details about the container's last termination condition." - }, - "ready": { - "type": "boolean", - "description": "Specifies whether the container has passed its readiness probe." - }, - "restartCount": { - "type": "integer", - "format": "int32", - "description": "The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC." - }, - "image": { - "type": "string", - "description": "The image the container is running. More info: http://kubernetes.io/docs/user-guide/images" - }, - "imageID": { - "type": "string", - "description": "ImageID of the container's image." - }, - "containerID": { - "type": "string", - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'. More info: http://kubernetes.io/docs/user-guide/container-environment#container-information" - } - } - }, - "v1.ContainerState": { - "id": "v1.ContainerState", - "description": "ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.", - "properties": { - "waiting": { - "$ref": "v1.ContainerStateWaiting", - "description": "Details about a waiting container" - }, - "running": { - "$ref": "v1.ContainerStateRunning", - "description": "Details about a running container" - }, - "terminated": { - "$ref": "v1.ContainerStateTerminated", - "description": "Details about a terminated container" - } - } - }, - "v1.ContainerStateWaiting": { - "id": "v1.ContainerStateWaiting", - "description": "ContainerStateWaiting is a waiting state of a container.", - "properties": { - "reason": { - "type": "string", - "description": "(brief) reason the container is not yet running." - }, - "message": { - "type": "string", - "description": "Message regarding why the container is not yet running." - } - } - }, - "v1.ContainerStateRunning": { - "id": "v1.ContainerStateRunning", - "description": "ContainerStateRunning is a running state of a container.", - "properties": { - "startedAt": { - "type": "string", - "description": "Time at which the container was last (re-)started" - } - } - }, - "v1.ContainerStateTerminated": { - "id": "v1.ContainerStateTerminated", - "description": "ContainerStateTerminated is a terminated state of a container.", - "required": [ - "exitCode" - ], - "properties": { - "exitCode": { - "type": "integer", - "format": "int32", - "description": "Exit status from the last termination of the container" - }, - "signal": { - "type": "integer", - "format": "int32", - "description": "Signal from the last termination of the container" - }, - "reason": { - "type": "string", - "description": "(brief) reason from the last termination of the container" - }, - "message": { - "type": "string", - "description": "Message regarding the last termination of the container" - }, - "startedAt": { - "type": "string", - "description": "Time at which previous execution of the container started" - }, - "finishedAt": { - "type": "string", - "description": "Time at which the container last terminated" - }, - "containerID": { - "type": "string", - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'" - } - } - }, - "v1beta1.Eviction": { - "id": "v1beta1.Eviction", - "description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/\u003cpod name\u003e/evictions.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "ObjectMeta describes the pod that is being evicted." - }, - "deleteOptions": { - "$ref": "v1.DeleteOptions", - "description": "DeleteOptions may be provided" - } - } - }, - "v1.PodTemplateList": { - "id": "v1.PodTemplateList", - "description": "PodTemplateList is a list of PodTemplates.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.PodTemplate" - }, - "description": "List of pod templates" - } - } - }, - "v1.PodTemplate": { - "id": "v1.PodTemplate", - "description": "PodTemplate describes a template for creating copies of a predefined pod.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "Template defines the pods that will be created from this pod template. http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.PodTemplateSpec": { - "id": "v1.PodTemplateSpec", - "description": "PodTemplateSpec describes the data a pod should have when created from a template", - "properties": { - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.ReplicationControllerList": { - "id": "v1.ReplicationControllerList", - "description": "ReplicationControllerList is a collection of replication controllers.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.ReplicationController" - }, - "description": "List of replication controllers. More info: http://kubernetes.io/docs/user-guide/replication-controller" - } - } - }, - "v1.ReplicationController": { - "id": "v1.ReplicationController", - "description": "ReplicationController represents the configuration of a replication controller.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.ReplicationControllerSpec", - "description": "Spec defines the specification of the desired behavior of the replication controller. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.ReplicationControllerStatus", - "description": "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.ReplicationControllerSpec": { - "id": "v1.ReplicationControllerSpec", - "description": "ReplicationControllerSpec is the specification of a replication controller.", - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: http://kubernetes.io/docs/user-guide/replication-controller#what-is-a-replication-controller" - }, - "minReadySeconds": { - "type": "integer", - "format": "int32", - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)" - }, - "selector": { - "type": "object", - "description": "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors" - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. More info: http://kubernetes.io/docs/user-guide/replication-controller#pod-template" - } - } - }, - "v1.ReplicationControllerStatus": { - "id": "v1.ReplicationControllerStatus", - "description": "ReplicationControllerStatus represents the current status of a replication controller.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "Replicas is the most recently oberved number of replicas. More info: http://kubernetes.io/docs/user-guide/replication-controller#what-is-a-replication-controller" - }, - "fullyLabeledReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of pods that have labels matching the labels of the pod template of the replication controller." - }, - "readyReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of ready replicas for this replication controller." - }, - "availableReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of available replicas (ready for at least minReadySeconds) for this replication controller." - }, - "observedGeneration": { - "type": "integer", - "format": "int64", - "description": "ObservedGeneration reflects the generation of the most recently observed replication controller." - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1.ReplicationControllerCondition" - }, - "description": "Represents the latest available observations of a replication controller's current state." - } - } - }, - "v1.ReplicationControllerCondition": { - "id": "v1.ReplicationControllerCondition", - "description": "ReplicationControllerCondition describes the state of a replication controller at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type of replication controller condition." - }, - "status": { - "type": "string", - "description": "Status of the condition, one of True, False, Unknown." - }, - "lastTransitionTime": { - "type": "string", - "description": "The last time the condition transitioned from one status to another." - }, - "reason": { - "type": "string", - "description": "The reason for the condition's last transition." - }, - "message": { - "type": "string", - "description": "A human readable message indicating details about the transition." - } - } - }, - "v1.Scale": { - "id": "v1.Scale", - "description": "Scale represents a scaling request for a resource.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object metadata; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata." - }, - "spec": { - "$ref": "v1.ScaleSpec", - "description": "defines the behavior of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "v1.ScaleStatus", - "description": "current status of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status. Read-only." - } - } - }, - "v1.ScaleSpec": { - "id": "v1.ScaleSpec", - "description": "ScaleSpec describes the attributes of a scale subresource.", - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "desired number of instances for the scaled object." - } - } - }, - "v1.ScaleStatus": { - "id": "v1.ScaleStatus", - "description": "ScaleStatus represents the current status of a scale subresource.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "actual number of observed instances of the scaled object." - }, - "selector": { - "type": "string", - "description": "label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors" - } - } - }, - "v1.ResourceQuotaList": { - "id": "v1.ResourceQuotaList", - "description": "ResourceQuotaList is a list of ResourceQuota items.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.ResourceQuota" - }, - "description": "Items is a list of ResourceQuota objects. More info: http://releases.k8s.io/HEAD/docs/design/admission_control_resource_quota.md#admissioncontrol-plugin-resourcequota" - } - } - }, - "v1.ResourceQuota": { - "id": "v1.ResourceQuota", - "description": "ResourceQuota sets aggregate quota restrictions enforced per namespace", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.ResourceQuotaSpec", - "description": "Spec defines the desired quota. http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.ResourceQuotaStatus", - "description": "Status defines the actual enforced quota and its current usage. http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.ResourceQuotaSpec": { - "id": "v1.ResourceQuotaSpec", - "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", - "properties": { - "hard": { - "type": "object", - "description": "Hard is the set of desired hard limits for each named resource. More info: http://releases.k8s.io/HEAD/docs/design/admission_control_resource_quota.md#admissioncontrol-plugin-resourcequota" - }, - "scopes": { - "type": "array", - "items": { - "$ref": "v1.ResourceQuotaScope" - }, - "description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects." - } - } - }, - "v1.ResourceQuotaScope": { - "id": "v1.ResourceQuotaScope", - "properties": {} - }, - "v1.ResourceQuotaStatus": { - "id": "v1.ResourceQuotaStatus", - "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", - "properties": { - "hard": { - "type": "object", - "description": "Hard is the set of enforced hard limits for each named resource. More info: http://releases.k8s.io/HEAD/docs/design/admission_control_resource_quota.md#admissioncontrol-plugin-resourcequota" - }, - "used": { - "type": "object", - "description": "Used is the current observed total usage of the resource in the namespace." - } - } - }, - "v1.SecretList": { - "id": "v1.SecretList", - "description": "SecretList is a list of Secret.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Secret" - }, - "description": "Items is a list of secret objects. More info: http://kubernetes.io/docs/user-guide/secrets" - } - } - }, - "v1.Secret": { - "id": "v1.Secret", - "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "data": { - "type": "object", - "description": "Data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4" - }, - "stringData": { - "type": "object", - "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API." - }, - "type": { - "type": "string", - "description": "Used to facilitate programmatic handling of secret data." - } - } - }, - "v1.ServiceAccountList": { - "id": "v1.ServiceAccountList", - "description": "ServiceAccountList is a list of ServiceAccount objects", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.ServiceAccount" - }, - "description": "List of ServiceAccounts. More info: http://releases.k8s.io/HEAD/docs/design/service_accounts.md#service-accounts" - } - } - }, - "v1.ServiceAccount": { - "id": "v1.ServiceAccount", - "description": "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "secrets": { - "type": "array", - "items": { - "$ref": "v1.ObjectReference" - }, - "description": "Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: http://kubernetes.io/docs/user-guide/secrets" - }, - "imagePullSecrets": { - "type": "array", - "items": { - "$ref": "v1.LocalObjectReference" - }, - "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: http://kubernetes.io/docs/user-guide/secrets#manually-specifying-an-imagepullsecret" - }, - "automountServiceAccountToken": { - "type": "boolean", - "description": "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level." - } - } - }, - "v1.ServiceList": { - "id": "v1.ServiceList", - "description": "ServiceList holds a list of services.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Service" - }, - "description": "List of services" - } - } - }, - "v1.Service": { - "id": "v1.Service", - "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.ServiceSpec", - "description": "Spec defines the behavior of a service. http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.ServiceStatus", - "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.ServiceSpec": { - "id": "v1.ServiceSpec", - "description": "ServiceSpec describes the attributes that a user creates on a service.", - "properties": { - "ports": { - "type": "array", - "items": { - "$ref": "v1.ServicePort" - }, - "description": "The list of ports that are exposed by this service. More info: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies" - }, - "selector": { - "type": "object", - "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: http://kubernetes.io/docs/user-guide/services#overview" - }, - "clusterIP": { - "type": "string", - "description": "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies" - }, - "type": { - "type": "string", - "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: http://kubernetes.io/docs/user-guide/services#overview" - }, - "externalIPs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system. A previous form of this functionality exists as the deprecatedPublicIPs field. When using this field, callers should also clear the deprecatedPublicIPs field." - }, - "deprecatedPublicIPs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "deprecatedPublicIPs is deprecated and replaced by the externalIPs field with almost the exact same semantics. This field is retained in the v1 API for compatibility until at least 8/20/2016. It will be removed from any new API revisions. If both deprecatedPublicIPs *and* externalIPs are set, deprecatedPublicIPs is used." - }, - "sessionAffinity": { - "type": "string", - "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies" - }, - "loadBalancerIP": { - "type": "string", - "description": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature." - }, - "loadBalancerSourceRanges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: http://kubernetes.io/docs/user-guide/services-firewalls" - }, - "externalName": { - "type": "string", - "description": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid DNS name and requires Type to be ExternalName." - } - } - }, - "v1.ServicePort": { - "id": "v1.ServicePort", - "description": "ServicePort contains information on service's port.", - "required": [ - "port" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. This maps to the 'Name' field in EndpointPort objects. Optional if only one ServicePort is defined on this service." - }, - "protocol": { - "type": "string", - "description": "The IP protocol for this port. Supports \"TCP\" and \"UDP\". Default is TCP." - }, - "port": { - "type": "integer", - "format": "int32", - "description": "The port that will be exposed by this service." - }, - "targetPort": { - "type": "string", - "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: http://kubernetes.io/docs/user-guide/services#defining-a-service" - }, - "nodePort": { - "type": "integer", - "format": "int32", - "description": "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: http://kubernetes.io/docs/user-guide/services#type--nodeport" - } - } - }, - "v1.ServiceStatus": { - "id": "v1.ServiceStatus", - "description": "ServiceStatus represents the current status of a service.", - "properties": { - "loadBalancer": { - "$ref": "v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer, if one is present." - } - } - }, - "v1.LoadBalancerStatus": { - "id": "v1.LoadBalancerStatus", - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "type": "array", - "items": { - "$ref": "v1.LoadBalancerIngress" - }, - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points." - } - } - }, - "v1.LoadBalancerIngress": { - "id": "v1.LoadBalancerIngress", - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "ip": { - "type": "string", - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)" - }, - "hostname": { - "type": "string", - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)" - } - } - }, - "v1.APIResourceList": { - "id": "v1.APIResourceList", - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "required": [ - "groupVersion", - "resources" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "groupVersion": { - "type": "string", - "description": "groupVersion is the group and version this APIResourceList is for." - }, - "resources": { - "type": "array", - "items": { - "$ref": "v1.APIResource" - }, - "description": "resources contains the name of the resources and if they are namespaced." - } - } - }, - "v1.APIResource": { - "id": "v1.APIResource", - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "required": [ - "name", - "namespaced", - "kind", - "verbs" - ], - "properties": { - "name": { - "type": "string", - "description": "name is the name of the resource." - }, - "namespaced": { - "type": "boolean", - "description": "namespaced indicates if a resource is namespaced or not." - }, - "kind": { - "type": "string", - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')" - }, - "verbs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)" - }, - "shortNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "shortNames is a list of suggested short names of the resource." - } - } - } - } - } \ No newline at end of file diff --git a/k8s/.kube/schema/v1.6.6/apis/extensions/v1beta1/schema.json b/k8s/.kube/schema/v1.6.6/apis/extensions/v1beta1/schema.json deleted file mode 100644 index a112d2e675..0000000000 --- a/k8s/.kube/schema/v1.6.6/apis/extensions/v1beta1/schema.json +++ /dev/null @@ -1,9977 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "extensions/v1beta1", - "basePath": "https://10.240.255.15:443", - "resourcePath": "/apis/extensions/v1beta1", - "info": { - "title": "", - "description": "" - }, - "apis": [ - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DaemonSetList", - "method": "GET", - "summary": "list or watch objects of kind DaemonSet", - "nickname": "listNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSetList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "POST", - "summary": "create a DaemonSet", - "nickname": "createNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DaemonSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of DaemonSet", - "nickname": "deletecollectionNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of DaemonSet", - "nickname": "watchNamespacedDaemonSetList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DaemonSet", - "method": "GET", - "summary": "read the specified DaemonSet", - "nickname": "readNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "PUT", - "summary": "replace the specified DaemonSet", - "nickname": "replaceNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DaemonSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "PATCH", - "summary": "partially update the specified DaemonSet", - "nickname": "patchNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a DaemonSet", - "nickname": "deleteNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind DaemonSet", - "nickname": "watchNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/daemonsets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DaemonSetList", - "method": "GET", - "summary": "list or watch objects of kind DaemonSet", - "nickname": "listDaemonSetForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSetList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/daemonsets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of DaemonSet", - "nickname": "watchDaemonSetListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DaemonSet", - "method": "GET", - "summary": "read status of the specified DaemonSet", - "nickname": "readNamespacedDaemonSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "PUT", - "summary": "replace status of the specified DaemonSet", - "nickname": "replaceNamespacedDaemonSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DaemonSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "PATCH", - "summary": "partially update status of the specified DaemonSet", - "nickname": "patchNamespacedDaemonSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DeploymentList", - "method": "GET", - "summary": "list or watch objects of kind Deployment", - "nickname": "listNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DeploymentList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "POST", - "summary": "create a Deployment", - "nickname": "createNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Deployment", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Deployment", - "nickname": "deletecollectionNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Deployment", - "nickname": "watchNamespacedDeploymentList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Deployment", - "method": "GET", - "summary": "read the specified Deployment", - "nickname": "readNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "PUT", - "summary": "replace the specified Deployment", - "nickname": "replaceNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Deployment", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "PATCH", - "summary": "partially update the specified Deployment", - "nickname": "patchNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Deployment", - "nickname": "deleteNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Deployment", - "nickname": "watchNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/deployments", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DeploymentList", - "method": "GET", - "summary": "list or watch objects of kind Deployment", - "nickname": "listDeploymentForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DeploymentList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/deployments", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Deployment", - "nickname": "watchDeploymentListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/rollback", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DeploymentRollback", - "method": "POST", - "summary": "create rollback of a DeploymentRollback", - "nickname": "createNamespacedDeploymentRollbackRollback", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DeploymentRollback", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DeploymentRollback", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DeploymentRollback" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Scale", - "method": "GET", - "summary": "read scale of the specified Scale", - "nickname": "readNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PUT", - "summary": "replace scale of the specified Scale", - "nickname": "replaceNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Scale", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PATCH", - "summary": "partially update scale of the specified Scale", - "nickname": "patchNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Deployment", - "method": "GET", - "summary": "read status of the specified Deployment", - "nickname": "readNamespacedDeploymentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "PUT", - "summary": "replace status of the specified Deployment", - "nickname": "replaceNamespacedDeploymentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Deployment", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "PATCH", - "summary": "partially update status of the specified Deployment", - "nickname": "patchNamespacedDeploymentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.IngressList", - "method": "GET", - "summary": "list or watch objects of kind Ingress", - "nickname": "listNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.IngressList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "POST", - "summary": "create an Ingress", - "nickname": "createNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Ingress", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Ingress", - "nickname": "deletecollectionNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Ingress", - "nickname": "watchNamespacedIngressList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Ingress", - "method": "GET", - "summary": "read the specified Ingress", - "nickname": "readNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "PUT", - "summary": "replace the specified Ingress", - "nickname": "replaceNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Ingress", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "PATCH", - "summary": "partially update the specified Ingress", - "nickname": "patchNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete an Ingress", - "nickname": "deleteNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Ingress", - "nickname": "watchNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/ingresses", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.IngressList", - "method": "GET", - "summary": "list or watch objects of kind Ingress", - "nickname": "listIngressForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.IngressList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/ingresses", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Ingress", - "nickname": "watchIngressListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Ingress", - "method": "GET", - "summary": "read status of the specified Ingress", - "nickname": "readNamespacedIngressStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "PUT", - "summary": "replace status of the specified Ingress", - "nickname": "replaceNamespacedIngressStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Ingress", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "PATCH", - "summary": "partially update status of the specified Ingress", - "nickname": "patchNamespacedIngressStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.NetworkPolicyList", - "method": "GET", - "summary": "list or watch objects of kind NetworkPolicy", - "nickname": "listNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NetworkPolicyList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.NetworkPolicy", - "method": "POST", - "summary": "create a NetworkPolicy", - "nickname": "createNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.NetworkPolicy", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NetworkPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of NetworkPolicy", - "nickname": "deletecollectionNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of NetworkPolicy", - "nickname": "watchNamespacedNetworkPolicyList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.NetworkPolicy", - "method": "GET", - "summary": "read the specified NetworkPolicy", - "nickname": "readNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the NetworkPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NetworkPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.NetworkPolicy", - "method": "PUT", - "summary": "replace the specified NetworkPolicy", - "nickname": "replaceNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.NetworkPolicy", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the NetworkPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NetworkPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.NetworkPolicy", - "method": "PATCH", - "summary": "partially update the specified NetworkPolicy", - "nickname": "patchNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the NetworkPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NetworkPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a NetworkPolicy", - "nickname": "deleteNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the NetworkPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind NetworkPolicy", - "nickname": "watchNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the NetworkPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/networkpolicies", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.NetworkPolicyList", - "method": "GET", - "summary": "list or watch objects of kind NetworkPolicy", - "nickname": "listNetworkPolicyForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NetworkPolicyList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/networkpolicies", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of NetworkPolicy", - "nickname": "watchNetworkPolicyListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/podsecuritypolicies", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.PodSecurityPolicyList", - "method": "GET", - "summary": "list or watch objects of kind PodSecurityPolicy", - "nickname": "listPodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PodSecurityPolicyList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.PodSecurityPolicy", - "method": "POST", - "summary": "create a PodSecurityPolicy", - "nickname": "createPodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.PodSecurityPolicy", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PodSecurityPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of PodSecurityPolicy", - "nickname": "deletecollectionPodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/podsecuritypolicies", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PodSecurityPolicy", - "nickname": "watchPodSecurityPolicyList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/podsecuritypolicies/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.PodSecurityPolicy", - "method": "GET", - "summary": "read the specified PodSecurityPolicy", - "nickname": "readPodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodSecurityPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PodSecurityPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.PodSecurityPolicy", - "method": "PUT", - "summary": "replace the specified PodSecurityPolicy", - "nickname": "replacePodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.PodSecurityPolicy", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodSecurityPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PodSecurityPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.PodSecurityPolicy", - "method": "PATCH", - "summary": "partially update the specified PodSecurityPolicy", - "nickname": "patchPodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodSecurityPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PodSecurityPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a PodSecurityPolicy", - "nickname": "deletePodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodSecurityPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/podsecuritypolicies/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind PodSecurityPolicy", - "nickname": "watchPodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodSecurityPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicaSetList", - "method": "GET", - "summary": "list or watch objects of kind ReplicaSet", - "nickname": "listNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSetList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "POST", - "summary": "create a ReplicaSet", - "nickname": "createNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ReplicaSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ReplicaSet", - "nickname": "deletecollectionNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ReplicaSet", - "nickname": "watchNamespacedReplicaSetList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicaSet", - "method": "GET", - "summary": "read the specified ReplicaSet", - "nickname": "readNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "PUT", - "summary": "replace the specified ReplicaSet", - "nickname": "replaceNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ReplicaSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "PATCH", - "summary": "partially update the specified ReplicaSet", - "nickname": "patchNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ReplicaSet", - "nickname": "deleteNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ReplicaSet", - "nickname": "watchNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/replicasets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicaSetList", - "method": "GET", - "summary": "list or watch objects of kind ReplicaSet", - "nickname": "listReplicaSetForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSetList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/replicasets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ReplicaSet", - "nickname": "watchReplicaSetListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Scale", - "method": "GET", - "summary": "read scale of the specified Scale", - "nickname": "readNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PUT", - "summary": "replace scale of the specified Scale", - "nickname": "replaceNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Scale", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PATCH", - "summary": "partially update scale of the specified Scale", - "nickname": "patchNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicaSet", - "method": "GET", - "summary": "read status of the specified ReplicaSet", - "nickname": "readNamespacedReplicaSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "PUT", - "summary": "replace status of the specified ReplicaSet", - "nickname": "replaceNamespacedReplicaSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ReplicaSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "PATCH", - "summary": "partially update status of the specified ReplicaSet", - "nickname": "patchNamespacedReplicaSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicationcontrollers/{name}/scale", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Scale", - "method": "GET", - "summary": "read scale of the specified Scale", - "nickname": "readNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PUT", - "summary": "replace scale of the specified Scale", - "nickname": "replaceNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Scale", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PATCH", - "summary": "partially update scale of the specified Scale", - "nickname": "patchNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/thirdpartyresources", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ThirdPartyResourceList", - "method": "GET", - "summary": "list or watch objects of kind ThirdPartyResource", - "nickname": "listThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ThirdPartyResourceList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ThirdPartyResource", - "method": "POST", - "summary": "create a ThirdPartyResource", - "nickname": "createThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ThirdPartyResource", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ThirdPartyResource" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ThirdPartyResource", - "nickname": "deletecollectionThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/thirdpartyresources", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ThirdPartyResource", - "nickname": "watchThirdPartyResourceList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/thirdpartyresources/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ThirdPartyResource", - "method": "GET", - "summary": "read the specified ThirdPartyResource", - "nickname": "readThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ThirdPartyResource", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ThirdPartyResource" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ThirdPartyResource", - "method": "PUT", - "summary": "replace the specified ThirdPartyResource", - "nickname": "replaceThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ThirdPartyResource", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ThirdPartyResource", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ThirdPartyResource" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ThirdPartyResource", - "method": "PATCH", - "summary": "partially update the specified ThirdPartyResource", - "nickname": "patchThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ThirdPartyResource", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ThirdPartyResource" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ThirdPartyResource", - "nickname": "deleteThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ThirdPartyResource", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/thirdpartyresources/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ThirdPartyResource", - "nickname": "watchThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ThirdPartyResource", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.APIResourceList", - "method": "GET", - "summary": "get available resources", - "nickname": "getAPIResources", - "parameters": [], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ] - } - ] - } - ], - "models": { - "v1beta1.DaemonSetList": { - "id": "v1beta1.DaemonSetList", - "description": "DaemonSetList is a collection of daemon sets.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.DaemonSet" - }, - "description": "A list of daemon sets." - } - } - }, - "v1.ListMeta": { - "id": "v1.ListMeta", - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "selfLink": { - "type": "string", - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." - }, - "resourceVersion": { - "type": "string", - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency" - } - } - }, - "v1beta1.DaemonSet": { - "id": "v1beta1.DaemonSet", - "description": "DaemonSet represents the configuration of a daemon set.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.DaemonSetSpec", - "description": "The desired behavior of this daemon set. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1beta1.DaemonSetStatus", - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.ObjectMeta": { - "id": "v1.ObjectMeta", - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "name": { - "type": "string", - "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "generateName": { - "type": "string", - "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#idempotency" - }, - "namespace": { - "type": "string", - "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" - }, - "selfLink": { - "type": "string", - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." - }, - "uid": { - "type": "string", - "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "resourceVersion": { - "type": "string", - "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency" - }, - "generation": { - "type": "integer", - "format": "int64", - "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only." - }, - "creationTimestamp": { - "type": "string", - "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "deletionTimestamp": { - "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "deletionGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only." - }, - "labels": { - "type": "object", - "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels" - }, - "annotations": { - "type": "object", - "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations" - }, - "ownerReferences": { - "type": "array", - "items": { - "$ref": "v1.OwnerReference" - }, - "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller." - }, - "finalizers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed." - }, - "clusterName": { - "type": "string", - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request." - } - } - }, - "v1.OwnerReference": { - "id": "v1.OwnerReference", - "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "API version of the referent." - }, - "kind": { - "type": "string", - "description": "Kind of the referent. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "uid": { - "type": "string", - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "controller": { - "type": "boolean", - "description": "If true, this reference points to the managing controller." - }, - "blockOwnerDeletion": { - "type": "boolean", - "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned." - } - } - }, - "v1beta1.DaemonSetSpec": { - "id": "v1beta1.DaemonSetSpec", - "description": "DaemonSetSpec is the specification of a daemon set.", - "required": [ - "template" - ], - "properties": { - "selector": { - "$ref": "v1.LabelSelector", - "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors" - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: http://kubernetes.io/docs/user-guide/replication-controller#pod-template" - }, - "updateStrategy": { - "$ref": "v1beta1.DaemonSetUpdateStrategy", - "description": "An update strategy to replace existing DaemonSet pods with new pods." - }, - "minReadySeconds": { - "type": "integer", - "format": "int32", - "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)." - }, - "templateGeneration": { - "type": "integer", - "format": "int64", - "description": "A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation." - } - } - }, - "v1.LabelSelector": { - "id": "v1.LabelSelector", - "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", - "properties": { - "matchLabels": { - "type": "object", - "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." - }, - "matchExpressions": { - "type": "array", - "items": { - "$ref": "v1.LabelSelectorRequirement" - }, - "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed." - } - } - }, - "v1.LabelSelectorRequirement": { - "id": "v1.LabelSelectorRequirement", - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "type": "string", - "description": "key is the label key that the selector applies to." - }, - "operator": { - "type": "string", - "description": "operator represents a key's relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." - } - } - }, - "v1.PodTemplateSpec": { - "id": "v1.PodTemplateSpec", - "description": "PodTemplateSpec describes the data a pod should have when created from a template", - "properties": { - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.PodSpec": { - "id": "v1.PodSpec", - "description": "PodSpec is a description of a pod.", - "required": [ - "containers" - ], - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "v1.Volume" - }, - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: http://kubernetes.io/docs/user-guide/volumes" - }, - "initContainers": { - "type": "array", - "items": { - "$ref": "v1.Container" - }, - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers" - }, - "containers": { - "type": "array", - "items": { - "$ref": "v1.Container" - }, - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers" - }, - "restartPolicy": { - "type": "string", - "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: http://kubernetes.io/docs/user-guide/pod-states#restartpolicy" - }, - "terminationGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds." - }, - "activeDeadlineSeconds": { - "type": "integer", - "format": "int64", - "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer." - }, - "dnsPolicy": { - "type": "string", - "description": "Set DNS policy for containers within the pod. One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'. Defaults to \"ClusterFirst\". To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'." - }, - "nodeSelector": { - "type": "object", - "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: http://kubernetes.io/docs/user-guide/node-selection/README" - }, - "serviceAccountName": { - "type": "string", - "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: http://releases.k8s.io/HEAD/docs/design/service_accounts.md" - }, - "serviceAccount": { - "type": "string", - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead." - }, - "automountServiceAccountToken": { - "type": "boolean", - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted." - }, - "nodeName": { - "type": "string", - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements." - }, - "hostNetwork": { - "type": "boolean", - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false." - }, - "hostPID": { - "type": "boolean", - "description": "Use the host's pid namespace. Optional: Default to false." - }, - "hostIPC": { - "type": "boolean", - "description": "Use the host's ipc namespace. Optional: Default to false." - }, - "securityContext": { - "$ref": "v1.PodSecurityContext", - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." - }, - "imagePullSecrets": { - "type": "array", - "items": { - "$ref": "v1.LocalObjectReference" - }, - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod" - }, - "hostname": { - "type": "string", - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value." - }, - "subdomain": { - "type": "string", - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all." - }, - "affinity": { - "$ref": "v1.Affinity", - "description": "If specified, the pod's scheduling constraints" - }, - "schedulerName": { - "type": "string", - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler." - }, - "tolerations": { - "type": "array", - "items": { - "$ref": "v1.Toleration" - }, - "description": "If specified, the pod's tolerations." - } - } - }, - "v1.Volume": { - "id": "v1.Volume", - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "hostPath": { - "$ref": "v1.HostPathVolumeSource", - "description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath" - }, - "emptyDir": { - "$ref": "v1.EmptyDirVolumeSource", - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" - }, - "gcePersistentDisk": { - "$ref": "v1.GCEPersistentDiskVolumeSource", - "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "awsElasticBlockStore": { - "$ref": "v1.AWSElasticBlockStoreVolumeSource", - "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "gitRepo": { - "$ref": "v1.GitRepoVolumeSource", - "description": "GitRepo represents a git repository at a particular revision." - }, - "secret": { - "$ref": "v1.SecretVolumeSource", - "description": "Secret represents a secret that should populate this volume. More info: http://kubernetes.io/docs/user-guide/volumes#secrets" - }, - "nfs": { - "$ref": "v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "iscsi": { - "$ref": "v1.ISCSIVolumeSource", - "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md" - }, - "glusterfs": { - "$ref": "v1.GlusterfsVolumeSource", - "description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md" - }, - "persistentVolumeClaim": { - "$ref": "v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - }, - "rbd": { - "$ref": "v1.RBDVolumeSource", - "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md" - }, - "flexVolume": { - "$ref": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future." - }, - "cinder": { - "$ref": "v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "cephfs": { - "$ref": "v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "flocker": { - "$ref": "v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" - }, - "downwardAPI": { - "$ref": "v1.DownwardAPIVolumeSource", - "description": "DownwardAPI represents downward API about the pod that should populate this volume" - }, - "fc": { - "$ref": "v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "azureFile": { - "$ref": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "configMap": { - "$ref": "v1.ConfigMapVolumeSource", - "description": "ConfigMap represents a configMap that should populate this volume" - }, - "vsphereVolume": { - "$ref": "v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "azureDisk": { - "$ref": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "photonPersistentDisk": { - "$ref": "v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "projected": { - "$ref": "v1.ProjectedVolumeSource", - "description": "Items for all in one resources secrets, configmaps, and downward API" - }, - "portworxVolume": { - "$ref": "v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "scaleIO": { - "$ref": "v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - } - } - }, - "v1.HostPathVolumeSource": { - "id": "v1.HostPathVolumeSource", - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "Path of the directory on the host. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath" - } - } - }, - "v1.EmptyDirVolumeSource": { - "id": "v1.EmptyDirVolumeSource", - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - "properties": { - "medium": { - "type": "string", - "description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" - } - } - }, - "v1.GCEPersistentDiskVolumeSource": { - "id": "v1.GCEPersistentDiskVolumeSource", - "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", - "required": [ - "pdName" - ], - "properties": { - "pdName": { - "type": "string", - "description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - } - } - }, - "v1.AWSElasticBlockStoreVolumeSource": { - "id": "v1.AWSElasticBlockStoreVolumeSource", - "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." - }, - "readOnly": { - "type": "boolean", - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - } - } - }, - "v1.GitRepoVolumeSource": { - "id": "v1.GitRepoVolumeSource", - "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.", - "required": [ - "repository" - ], - "properties": { - "repository": { - "type": "string", - "description": "Repository URL" - }, - "revision": { - "type": "string", - "description": "Commit hash for the specified revision." - }, - "directory": { - "type": "string", - "description": "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." - } - } - }, - "v1.SecretVolumeSource": { - "id": "v1.SecretVolumeSource", - "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", - "properties": { - "secretName": { - "type": "string", - "description": "Name of the secret in the pod's namespace to use. More info: http://kubernetes.io/docs/user-guide/volumes#secrets" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or it's keys must be defined" - } - } - }, - "v1.KeyToPath": { - "id": "v1.KeyToPath", - "description": "Maps a string key to a path within a volume.", - "required": [ - "key", - "path" - ], - "properties": { - "key": { - "type": "string", - "description": "The key to project." - }, - "path": { - "type": "string", - "description": "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." - }, - "mode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.NFSVolumeSource": { - "id": "v1.NFSVolumeSource", - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - "required": [ - "server", - "path" - ], - "properties": { - "server": { - "type": "string", - "description": "Server is the hostname or IP address of the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "path": { - "type": "string", - "description": "Path that is exported by the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - } - } - }, - "v1.ISCSIVolumeSource": { - "id": "v1.ISCSIVolumeSource", - "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "properties": { - "targetPortal": { - "type": "string", - "description": "iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." - }, - "iqn": { - "type": "string", - "description": "Target iSCSI Qualified Name." - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "iSCSI target lun number." - }, - "iscsiInterface": { - "type": "string", - "description": "Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport." - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#iscsi" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." - }, - "portals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "iSCSI target portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." - } - } - }, - "v1.GlusterfsVolumeSource": { - "id": "v1.GlusterfsVolumeSource", - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "endpoints", - "path" - ], - "properties": { - "endpoints": { - "type": "string", - "description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - }, - "path": { - "type": "string", - "description": "Path is the Glusterfs volume path. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - } - } - }, - "v1.PersistentVolumeClaimVolumeSource": { - "id": "v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", - "required": [ - "claimName" - ], - "properties": { - "claimName": { - "type": "string", - "description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - }, - "readOnly": { - "type": "boolean", - "description": "Will force the ReadOnly setting in VolumeMounts. Default false." - } - } - }, - "v1.RBDVolumeSource": { - "id": "v1.RBDVolumeSource", - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "required": [ - "monitors", - "image" - ], - "properties": { - "monitors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A collection of Ceph monitors. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "image": { - "type": "string", - "description": "The rados image name. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#rbd" - }, - "pool": { - "type": "string", - "description": "The rados pool name. Default is rbd. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it." - }, - "user": { - "type": "string", - "description": "The rados user name. Default is admin. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "keyring": { - "type": "string", - "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - } - } - }, - "v1.LocalObjectReference": { - "id": "v1.LocalObjectReference", - "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - } - } - }, - "v1.FlexVolumeSource": { - "id": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", - "required": [ - "driver" - ], - "properties": { - "driver": { - "type": "string", - "description": "Driver is the name of the driver to use for this volume." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - }, - "options": { - "type": "object", - "description": "Optional: Extra command options if any." - } - } - }, - "v1.CinderVolumeSource": { - "id": "v1.CinderVolumeSource", - "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "volume id used to identify the volume in cinder More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - } - } - }, - "v1.CephFSVolumeSource": { - "id": "v1.CephFSVolumeSource", - "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "monitors" - ], - "properties": { - "monitors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required: Monitors is a collection of Ceph monitors More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "path": { - "type": "string", - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" - }, - "user": { - "type": "string", - "description": "Optional: User is the rados user name, default is admin More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "secretFile": { - "type": "string", - "description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - } - } - }, - "v1.FlockerVolumeSource": { - "id": "v1.FlockerVolumeSource", - "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", - "properties": { - "datasetName": { - "type": "string", - "description": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated" - }, - "datasetUUID": { - "type": "string", - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset" - } - } - }, - "v1.DownwardAPIVolumeSource": { - "id": "v1.DownwardAPIVolumeSource", - "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "v1.DownwardAPIVolumeFile" - }, - "description": "Items is a list of downward API volume file" - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.DownwardAPIVolumeFile": { - "id": "v1.DownwardAPIVolumeFile", - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'" - }, - "fieldRef": { - "$ref": "v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." - }, - "resourceFieldRef": { - "$ref": "v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - }, - "mode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.ObjectFieldSelector": { - "id": "v1.ObjectFieldSelector", - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", - "required": [ - "fieldPath" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"." - }, - "fieldPath": { - "type": "string", - "description": "Path of the field to select in the specified API version." - } - } - }, - "v1.ResourceFieldSelector": { - "id": "v1.ResourceFieldSelector", - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - "required": [ - "resource" - ], - "properties": { - "containerName": { - "type": "string", - "description": "Container name: required for volumes, optional for env vars" - }, - "resource": { - "type": "string", - "description": "Required: resource to select" - }, - "divisor": { - "type": "string", - "description": "Specifies the output format of the exposed resources, defaults to \"1\"" - } - } - }, - "v1.FCVolumeSource": { - "id": "v1.FCVolumeSource", - "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], - "properties": { - "targetWWNs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required: FC target worldwide names (WWNs)" - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "Required: FC target lun number" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.AzureFileVolumeSource": { - "id": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "required": [ - "secretName", - "shareName" - ], - "properties": { - "secretName": { - "type": "string", - "description": "the name of secret that contains Azure Storage Account Name and Key" - }, - "shareName": { - "type": "string", - "description": "Share Name" - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.ConfigMapVolumeSource": { - "id": "v1.ConfigMapVolumeSource", - "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's keys must be defined" - } - } - }, - "v1.VsphereVirtualDiskVolumeSource": { - "id": "v1.VsphereVirtualDiskVolumeSource", - "description": "Represents a vSphere volume resource.", - "required": [ - "volumePath" - ], - "properties": { - "volumePath": { - "type": "string", - "description": "Path that identifies vSphere volume vmdk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - } - } - }, - "v1.QuobyteVolumeSource": { - "id": "v1.QuobyteVolumeSource", - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - "required": [ - "registry", - "volume" - ], - "properties": { - "registry": { - "type": "string", - "description": "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" - }, - "volume": { - "type": "string", - "description": "Volume is a string that references an already created Quobyte volume by name." - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." - }, - "user": { - "type": "string", - "description": "User to map volume access to Defaults to serivceaccount user" - }, - "group": { - "type": "string", - "description": "Group to map volume access to Default is no group" - } - } - }, - "v1.AzureDiskVolumeSource": { - "id": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "required": [ - "diskName", - "diskURI" - ], - "properties": { - "diskName": { - "type": "string", - "description": "The Name of the data disk in the blob storage" - }, - "diskURI": { - "type": "string", - "description": "The URI the data disk in the blob storage" - }, - "cachingMode": { - "$ref": "v1.AzureDataDiskCachingMode", - "description": "Host Caching mode: None, Read Only, Read Write." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.AzureDataDiskCachingMode": { - "id": "v1.AzureDataDiskCachingMode", - "properties": {} - }, - "v1.PhotonPersistentDiskVolumeSource": { - "id": "v1.PhotonPersistentDiskVolumeSource", - "description": "Represents a Photon Controller persistent disk resource.", - "required": [ - "pdID" - ], - "properties": { - "pdID": { - "type": "string", - "description": "ID that identifies Photon Controller persistent disk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - } - } - }, - "v1.ProjectedVolumeSource": { - "id": "v1.ProjectedVolumeSource", - "description": "Represents a projected volume source", - "required": [ - "sources" - ], - "properties": { - "sources": { - "type": "array", - "items": { - "$ref": "v1.VolumeProjection" - }, - "description": "list of volume projections" - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.VolumeProjection": { - "id": "v1.VolumeProjection", - "description": "Projection that may be projected along with other supported volume types", - "properties": { - "secret": { - "$ref": "v1.SecretProjection", - "description": "information about the secret data to project" - }, - "downwardAPI": { - "$ref": "v1.DownwardAPIProjection", - "description": "information about the downwardAPI data to project" - }, - "configMap": { - "$ref": "v1.ConfigMapProjection", - "description": "information about the configMap data to project" - } - } - }, - "v1.SecretProjection": { - "id": "v1.SecretProjection", - "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or its key must be defined" - } - } - }, - "v1.DownwardAPIProjection": { - "id": "v1.DownwardAPIProjection", - "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "v1.DownwardAPIVolumeFile" - }, - "description": "Items is a list of DownwardAPIVolume file" - } - } - }, - "v1.ConfigMapProjection": { - "id": "v1.ConfigMapProjection", - "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's keys must be defined" - } - } - }, - "v1.PortworxVolumeSource": { - "id": "v1.PortworxVolumeSource", - "description": "PortworxVolumeSource represents a Portworx volume resource.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "VolumeID uniquely identifies a Portworx volume" - }, - "fsType": { - "type": "string", - "description": "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.ScaleIOVolumeSource": { - "id": "v1.ScaleIOVolumeSource", - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", - "required": [ - "gateway", - "system", - "secretRef" - ], - "properties": { - "gateway": { - "type": "string", - "description": "The host address of the ScaleIO API Gateway." - }, - "system": { - "type": "string", - "description": "The name of the storage system as configured in ScaleIO." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "type": "boolean", - "description": "Flag to enable/disable SSL communication with Gateway, default false" - }, - "protectionDomain": { - "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." - }, - "storagePool": { - "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." - }, - "storageMode": { - "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." - }, - "volumeName": { - "type": "string", - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.Container": { - "id": "v1.Container", - "description": "A single application container that you want to run within a pod.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated." - }, - "image": { - "type": "string", - "description": "Docker image name. More info: http://kubernetes.io/docs/user-guide/images" - }, - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers#containers-and-commands" - }, - "args": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers#containers-and-commands" - }, - "workingDir": { - "type": "string", - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated." - }, - "ports": { - "type": "array", - "items": { - "$ref": "v1.ContainerPort" - }, - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated." - }, - "envFrom": { - "type": "array", - "items": { - "$ref": "v1.EnvFromSource" - }, - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated." - }, - "env": { - "type": "array", - "items": { - "$ref": "v1.EnvVar" - }, - "description": "List of environment variables to set in the container. Cannot be updated." - }, - "resources": { - "$ref": "v1.ResourceRequirements", - "description": "Compute Resources required by this container. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#resources" - }, - "volumeMounts": { - "type": "array", - "items": { - "$ref": "v1.VolumeMount" - }, - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated." - }, - "livenessProbe": { - "$ref": "v1.Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "readinessProbe": { - "$ref": "v1.Probe", - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "lifecycle": { - "$ref": "v1.Lifecycle", - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." - }, - "terminationMessagePath": { - "type": "string", - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated." - }, - "terminationMessagePolicy": { - "type": "string", - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated." - }, - "imagePullPolicy": { - "type": "string", - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/images#updating-images" - }, - "securityContext": { - "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: http://releases.k8s.io/HEAD/docs/design/security_context.md" - }, - "stdin": { - "type": "boolean", - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false." - }, - "stdinOnce": { - "type": "boolean", - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false" - }, - "tty": { - "type": "boolean", - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false." - } - } - }, - "v1.ContainerPort": { - "id": "v1.ContainerPort", - "description": "ContainerPort represents a network port in a single container.", - "required": [ - "containerPort" - ], - "properties": { - "name": { - "type": "string", - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services." - }, - "hostPort": { - "type": "integer", - "format": "int32", - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this." - }, - "containerPort": { - "type": "integer", - "format": "int32", - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536." - }, - "protocol": { - "type": "string", - "description": "Protocol for port. Must be UDP or TCP. Defaults to \"TCP\"." - }, - "hostIP": { - "type": "string", - "description": "What host IP to bind the external port to." - } - } - }, - "v1.EnvFromSource": { - "id": "v1.EnvFromSource", - "description": "EnvFromSource represents the source of a set of ConfigMaps", - "properties": { - "prefix": { - "type": "string", - "description": "An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER." - }, - "configMapRef": { - "$ref": "v1.ConfigMapEnvSource", - "description": "The ConfigMap to select from" - }, - "secretRef": { - "$ref": "v1.SecretEnvSource", - "description": "The Secret to select from" - } - } - }, - "v1.ConfigMapEnvSource": { - "id": "v1.ConfigMapEnvSource", - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap must be defined" - } - } - }, - "v1.SecretEnvSource": { - "id": "v1.SecretEnvSource", - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret must be defined" - } - } - }, - "v1.EnvVar": { - "id": "v1.EnvVar", - "description": "EnvVar represents an environment variable present in a Container.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the environment variable. Must be a C_IDENTIFIER." - }, - "value": { - "type": "string", - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\"." - }, - "valueFrom": { - "$ref": "v1.EnvVarSource", - "description": "Source for the environment variable's value. Cannot be used if value is not empty." - } - } - }, - "v1.EnvVarSource": { - "id": "v1.EnvVarSource", - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "fieldRef": { - "$ref": "v1.ObjectFieldSelector", - "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.podIP." - }, - "resourceFieldRef": { - "$ref": "v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - }, - "configMapKeyRef": { - "$ref": "v1.ConfigMapKeySelector", - "description": "Selects a key of a ConfigMap." - }, - "secretKeyRef": { - "$ref": "v1.SecretKeySelector", - "description": "Selects a key of a secret in the pod's namespace" - } - } - }, - "v1.ConfigMapKeySelector": { - "id": "v1.ConfigMapKeySelector", - "description": "Selects a key from a ConfigMap.", - "required": [ - "key" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "key": { - "type": "string", - "description": "The key to select." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's key must be defined" - } - } - }, - "v1.SecretKeySelector": { - "id": "v1.SecretKeySelector", - "description": "SecretKeySelector selects a key of a Secret.", - "required": [ - "key" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "key": { - "type": "string", - "description": "The key of the secret to select from. Must be a valid secret key." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or it's key must be defined" - } - } - }, - "v1.ResourceRequirements": { - "id": "v1.ResourceRequirements", - "description": "ResourceRequirements describes the compute resource requirements.", - "properties": { - "limits": { - "type": "object", - "description": "Limits describes the maximum amount of compute resources allowed. More info: http://kubernetes.io/docs/user-guide/compute-resources/" - }, - "requests": { - "type": "object", - "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: http://kubernetes.io/docs/user-guide/compute-resources/" - } - } - }, - "v1.VolumeMount": { - "id": "v1.VolumeMount", - "description": "VolumeMount describes a mounting of a Volume within a container.", - "required": [ - "name", - "mountPath" - ], - "properties": { - "name": { - "type": "string", - "description": "This must match the Name of a Volume." - }, - "readOnly": { - "type": "boolean", - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false." - }, - "mountPath": { - "type": "string", - "description": "Path within the container at which the volume should be mounted. Must not contain ':'." - }, - "subPath": { - "type": "string", - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root)." - } - } - }, - "v1.Probe": { - "id": "v1.Probe", - "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - "properties": { - "exec": { - "$ref": "v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - }, - "initialDelaySeconds": { - "type": "integer", - "format": "int32", - "description": "Number of seconds after the container has started before liveness probes are initiated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "timeoutSeconds": { - "type": "integer", - "format": "int32", - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "periodSeconds": { - "type": "integer", - "format": "int32", - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1." - }, - "successThreshold": { - "type": "integer", - "format": "int32", - "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1." - }, - "failureThreshold": { - "type": "integer", - "format": "int32", - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1." - } - } - }, - "v1.ExecAction": { - "id": "v1.ExecAction", - "description": "ExecAction describes a \"run in container\" action.", - "properties": { - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy." - } - } - }, - "v1.HTTPGetAction": { - "id": "v1.HTTPGetAction", - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "required": [ - "port" - ], - "properties": { - "path": { - "type": "string", - "description": "Path to access on the HTTP server." - }, - "port": { - "type": "string", - "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." - }, - "host": { - "type": "string", - "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead." - }, - "scheme": { - "type": "string", - "description": "Scheme to use for connecting to the host. Defaults to HTTP." - }, - "httpHeaders": { - "type": "array", - "items": { - "$ref": "v1.HTTPHeader" - }, - "description": "Custom headers to set in the request. HTTP allows repeated headers." - } - } - }, - "v1.HTTPHeader": { - "id": "v1.HTTPHeader", - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "required": [ - "name", - "value" - ], - "properties": { - "name": { - "type": "string", - "description": "The header field name" - }, - "value": { - "type": "string", - "description": "The header field value" - } - } - }, - "v1.TCPSocketAction": { - "id": "v1.TCPSocketAction", - "description": "TCPSocketAction describes an action based on opening a socket", - "required": [ - "port" - ], - "properties": { - "port": { - "type": "string", - "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." - } - } - }, - "v1.Lifecycle": { - "id": "v1.Lifecycle", - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "$ref": "v1.Handler", - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: http://kubernetes.io/docs/user-guide/container-environment#hook-details" - }, - "preStop": { - "$ref": "v1.Handler", - "description": "PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: http://kubernetes.io/docs/user-guide/container-environment#hook-details" - } - } - }, - "v1.Handler": { - "id": "v1.Handler", - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "$ref": "v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - } - } - }, - "v1.SecurityContext": { - "id": "v1.SecurityContext", - "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", - "properties": { - "capabilities": { - "$ref": "v1.Capabilities", - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." - }, - "privileged": { - "type": "boolean", - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false." - }, - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "runAsNonRoot": { - "type": "boolean", - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "readOnlyRootFilesystem": { - "type": "boolean", - "description": "Whether this container has a read-only root filesystem. Default is false." - } - } - }, - "v1.Capabilities": { - "id": "v1.Capabilities", - "description": "Adds and removes POSIX capabilities from running containers.", - "properties": { - "add": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "Added capabilities" - }, - "drop": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "Removed capabilities" - } - } - }, - "v1.Capability": { - "id": "v1.Capability", - "properties": {} - }, - "v1.SELinuxOptions": { - "id": "v1.SELinuxOptions", - "description": "SELinuxOptions are the labels to be applied to the container", - "properties": { - "user": { - "type": "string", - "description": "User is a SELinux user label that applies to the container." - }, - "role": { - "type": "string", - "description": "Role is a SELinux role label that applies to the container." - }, - "type": { - "type": "string", - "description": "Type is a SELinux type label that applies to the container." - }, - "level": { - "type": "string", - "description": "Level is SELinux level label that applies to the container." - } - } - }, - "v1.PodSecurityContext": { - "id": "v1.PodSecurityContext", - "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", - "properties": { - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." - }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." - }, - "runAsNonRoot": { - "type": "boolean", - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "supplementalGroups": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container." - }, - "fsGroup": { - "type": "integer", - "format": "int64", - "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw " - } - } - }, - "v1.Affinity": { - "id": "v1.Affinity", - "description": "Affinity is a group of affinity scheduling rules.", - "properties": { - "nodeAffinity": { - "$ref": "v1.NodeAffinity", - "description": "Describes node affinity scheduling rules for the pod." - }, - "podAffinity": { - "$ref": "v1.PodAffinity", - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." - }, - "podAntiAffinity": { - "$ref": "v1.PodAntiAffinity", - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." - } - } - }, - "v1.NodeAffinity": { - "id": "v1.NodeAffinity", - "description": "Node affinity is a group of node affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "$ref": "v1.NodeSelector", - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PreferredSchedulingTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.NodeSelector": { - "id": "v1.NodeSelector", - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - "required": [ - "nodeSelectorTerms" - ], - "properties": { - "nodeSelectorTerms": { - "type": "array", - "items": { - "$ref": "v1.NodeSelectorTerm" - }, - "description": "Required. A list of node selector terms. The terms are ORed." - } - } - }, - "v1.NodeSelectorTerm": { - "id": "v1.NodeSelectorTerm", - "description": "A null or empty node selector term matches no objects.", - "required": [ - "matchExpressions" - ], - "properties": { - "matchExpressions": { - "type": "array", - "items": { - "$ref": "v1.NodeSelectorRequirement" - }, - "description": "Required. A list of node selector requirements. The requirements are ANDed." - } - } - }, - "v1.NodeSelectorRequirement": { - "id": "v1.NodeSelectorRequirement", - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "type": "string", - "description": "The label key that the selector applies to." - }, - "operator": { - "type": "string", - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." - } - } - }, - "v1.PreferredSchedulingTerm": { - "id": "v1.PreferredSchedulingTerm", - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "required": [ - "weight", - "preference" - ], - "properties": { - "weight": { - "type": "integer", - "format": "int32", - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." - }, - "preference": { - "$ref": "v1.NodeSelectorTerm", - "description": "A node selector term, associated with the corresponding weight." - } - } - }, - "v1.PodAffinity": { - "id": "v1.PodAffinity", - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PodAffinityTerm" - }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.WeightedPodAffinityTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.PodAffinityTerm": { - "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", - "properties": { - "labelSelector": { - "$ref": "v1.LabelSelector", - "description": "A label query over a set of resources, in this case pods." - }, - "namespaces": { - "type": "array", - "items": { - "type": "string" - }, - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"" - }, - "topologyKey": { - "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." - } - } - }, - "v1.WeightedPodAffinityTerm": { - "id": "v1.WeightedPodAffinityTerm", - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "required": [ - "weight", - "podAffinityTerm" - ], - "properties": { - "weight": { - "type": "integer", - "format": "int32", - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100." - }, - "podAffinityTerm": { - "$ref": "v1.PodAffinityTerm", - "description": "Required. A pod affinity term, associated with the corresponding weight." - } - } - }, - "v1.PodAntiAffinity": { - "id": "v1.PodAntiAffinity", - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PodAffinityTerm" - }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.WeightedPodAffinityTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.Toleration": { - "id": "v1.Toleration", - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", - "properties": { - "key": { - "type": "string", - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys." - }, - "operator": { - "type": "string", - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category." - }, - "value": { - "type": "string", - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string." - }, - "effect": { - "type": "string", - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute." - }, - "tolerationSeconds": { - "type": "integer", - "format": "int64", - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system." - } - } - }, - "v1beta1.DaemonSetUpdateStrategy": { - "id": "v1beta1.DaemonSetUpdateStrategy", - "properties": { - "type": { - "type": "string", - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete." - }, - "rollingUpdate": { - "$ref": "v1beta1.RollingUpdateDaemonSet", - "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." - } - } - }, - "v1beta1.RollingUpdateDaemonSet": { - "id": "v1beta1.RollingUpdateDaemonSet", - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "type": "string", - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." - } - } - }, - "v1beta1.DaemonSetStatus": { - "id": "v1beta1.DaemonSetStatus", - "description": "DaemonSetStatus represents the current status of a daemon set.", - "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" - ], - "properties": { - "currentNumberScheduled": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: http://releases.k8s.io/HEAD/docs/admin/daemons.md" - }, - "numberMisscheduled": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: http://releases.k8s.io/HEAD/docs/admin/daemons.md" - }, - "desiredNumberScheduled": { - "type": "integer", - "format": "int32", - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: http://releases.k8s.io/HEAD/docs/admin/daemons.md" - }, - "numberReady": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready." - }, - "observedGeneration": { - "type": "integer", - "format": "int64", - "description": "The most recent generation observed by the daemon set controller." - }, - "updatedNumberScheduled": { - "type": "integer", - "format": "int32", - "description": "The total number of nodes that are running updated daemon pod" - }, - "numberAvailable": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)" - }, - "numberUnavailable": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)" - } - } - }, - "v1.Status": { - "id": "v1.Status", - "description": "Status is a return value for calls that don't return other objects.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "status": { - "type": "string", - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "message": { - "type": "string", - "description": "A human-readable description of the status of this operation." - }, - "reason": { - "type": "string", - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it." - }, - "details": { - "$ref": "v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." - }, - "code": { - "type": "integer", - "format": "int32", - "description": "Suggested HTTP return code for this status, 0 if not set." - } - } - }, - "v1.StatusDetails": { - "id": "v1.StatusDetails", - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "name": { - "type": "string", - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)." - }, - "group": { - "type": "string", - "description": "The group attribute of the resource associated with the status StatusReason." - }, - "kind": { - "type": "string", - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "causes": { - "type": "array", - "items": { - "$ref": "v1.StatusCause" - }, - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes." - }, - "retryAfterSeconds": { - "type": "integer", - "format": "int32", - "description": "If specified, the time in seconds before the operation should be retried." - } - } - }, - "v1.StatusCause": { - "id": "v1.StatusCause", - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "reason": { - "type": "string", - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available." - }, - "message": { - "type": "string", - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader." - }, - "field": { - "type": "string", - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"" - } - } - }, - "v1.WatchEvent": { - "id": "v1.WatchEvent", - "required": [ - "type", - "object" - ], - "properties": { - "type": { - "type": "string" - }, - "object": { - "type": "string" - } - } - }, - "v1.Patch": { - "id": "v1.Patch", - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - "properties": {} - }, - "v1.DeleteOptions": { - "id": "v1.DeleteOptions", - "description": "DeleteOptions may be provided when deleting an API object.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "gracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately." - }, - "preconditions": { - "$ref": "v1.Preconditions", - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." - }, - "orphanDependents": { - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both." - }, - "propagationPolicy": { - "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." - } - } - }, - "v1.Preconditions": { - "id": "v1.Preconditions", - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "uid": { - "$ref": "types.UID", - "description": "Specifies the target UID." - } - } - }, - "types.UID": { - "id": "types.UID", - "properties": {} - }, - "v1.DeletionPropagation": { - "id": "v1.DeletionPropagation", - "properties": {} - }, - "v1beta1.DeploymentList": { - "id": "v1beta1.DeploymentList", - "description": "DeploymentList is a list of Deployments.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata." - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Deployment" - }, - "description": "Items is the list of Deployments." - } - } - }, - "v1beta1.Deployment": { - "id": "v1beta1.Deployment", - "description": "Deployment enables declarative updates for Pods and ReplicaSets.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object metadata." - }, - "spec": { - "$ref": "v1beta1.DeploymentSpec", - "description": "Specification of the desired behavior of the Deployment." - }, - "status": { - "$ref": "v1beta1.DeploymentStatus", - "description": "Most recently observed status of the Deployment." - } - } - }, - "v1beta1.DeploymentSpec": { - "id": "v1beta1.DeploymentSpec", - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "required": [ - "template" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1." - }, - "selector": { - "$ref": "v1.LabelSelector", - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment." - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "Template describes the pods that will be created." - }, - "strategy": { - "$ref": "v1beta1.DeploymentStrategy", - "description": "The deployment strategy to use to replace existing pods with new ones." - }, - "minReadySeconds": { - "type": "integer", - "format": "int32", - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)" - }, - "revisionHistoryLimit": { - "type": "integer", - "format": "int32", - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified." - }, - "paused": { - "type": "boolean", - "description": "Indicates that the deployment is paused and will not be processed by the deployment controller." - }, - "rollbackTo": { - "$ref": "v1beta1.RollbackConfig", - "description": "The config this deployment is rolling back to. Will be cleared after rollback is done." - }, - "progressDeadlineSeconds": { - "type": "integer", - "format": "int32", - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Once autoRollback is implemented, the deployment controller will automatically rollback failed deployments. Note that progress will not be estimated during the time a deployment is paused. This is not set by default." - } - } - }, - "v1beta1.DeploymentStrategy": { - "id": "v1beta1.DeploymentStrategy", - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "type": { - "type": "string", - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate." - }, - "rollingUpdate": { - "$ref": "v1beta1.RollingUpdateDeployment", - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate." - } - } - }, - "v1beta1.RollingUpdateDeployment": { - "id": "v1beta1.RollingUpdateDeployment", - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxUnavailable": { - "type": "string", - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods." - }, - "maxSurge": { - "type": "string", - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods." - } - } - }, - "v1beta1.RollbackConfig": { - "id": "v1beta1.RollbackConfig", - "properties": { - "revision": { - "type": "integer", - "format": "int64", - "description": "The revision to rollback to. If set to 0, rollbck to the last revision." - } - } - }, - "v1beta1.DeploymentStatus": { - "id": "v1beta1.DeploymentStatus", - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "observedGeneration": { - "type": "integer", - "format": "int64", - "description": "The generation observed by the deployment controller." - }, - "replicas": { - "type": "integer", - "format": "int32", - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector)." - }, - "updatedReplicas": { - "type": "integer", - "format": "int32", - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec." - }, - "readyReplicas": { - "type": "integer", - "format": "int32", - "description": "Total number of ready pods targeted by this deployment." - }, - "availableReplicas": { - "type": "integer", - "format": "int32", - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment." - }, - "unavailableReplicas": { - "type": "integer", - "format": "int32", - "description": "Total number of unavailable pods targeted by this deployment." - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta1.DeploymentCondition" - }, - "description": "Represents the latest available observations of a deployment's current state." - } - } - }, - "v1beta1.DeploymentCondition": { - "id": "v1beta1.DeploymentCondition", - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type of deployment condition." - }, - "status": { - "type": "string", - "description": "Status of the condition, one of True, False, Unknown." - }, - "lastUpdateTime": { - "type": "string", - "description": "The last time this condition was updated." - }, - "lastTransitionTime": { - "type": "string", - "description": "Last time the condition transitioned from one status to another." - }, - "reason": { - "type": "string", - "description": "The reason for the condition's last transition." - }, - "message": { - "type": "string", - "description": "A human readable message indicating details about the transition." - } - } - }, - "v1beta1.DeploymentRollback": { - "id": "v1beta1.DeploymentRollback", - "description": "DeploymentRollback stores the information required to rollback a deployment.", - "required": [ - "name", - "rollbackTo" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "name": { - "type": "string", - "description": "Required: This must match the Name of a deployment." - }, - "updatedAnnotations": { - "type": "object", - "description": "The annotations to be updated to a deployment" - }, - "rollbackTo": { - "$ref": "v1beta1.RollbackConfig", - "description": "The config of this deployment rollback." - } - } - }, - "v1beta1.Scale": { - "id": "v1beta1.Scale", - "description": "represents a scaling request for a resource.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object metadata; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata." - }, - "spec": { - "$ref": "v1beta1.ScaleSpec", - "description": "defines the behavior of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "v1beta1.ScaleStatus", - "description": "current status of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status. Read-only." - } - } - }, - "v1beta1.ScaleSpec": { - "id": "v1beta1.ScaleSpec", - "description": "describes the attributes of a scale subresource", - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "desired number of instances for the scaled object." - } - } - }, - "v1beta1.ScaleStatus": { - "id": "v1beta1.ScaleStatus", - "description": "represents the current status of a scale subresource.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "actual number of observed instances of the scaled object." - }, - "selector": { - "type": "object", - "description": "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors" - }, - "targetSelector": { - "type": "string", - "description": "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors" - } - } - }, - "v1beta1.IngressList": { - "id": "v1beta1.IngressList", - "description": "IngressList is a collection of Ingress.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Ingress" - }, - "description": "Items is the list of Ingress." - } - } - }, - "v1beta1.Ingress": { - "id": "v1beta1.Ingress", - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1beta1.IngressSpec": { - "id": "v1beta1.IngressSpec", - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "tls": { - "type": "array", - "items": { - "$ref": "v1beta1.IngressTLS" - }, - "description": "TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI." - }, - "rules": { - "type": "array", - "items": { - "$ref": "v1beta1.IngressRule" - }, - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend." - } - } - }, - "v1beta1.IngressBackend": { - "id": "v1beta1.IngressBackend", - "description": "IngressBackend describes all endpoints for a given service and port.", - "required": [ - "serviceName", - "servicePort" - ], - "properties": { - "serviceName": { - "type": "string", - "description": "Specifies the name of the referenced service." - }, - "servicePort": { - "type": "string", - "description": "Specifies the port of the referenced service." - } - } - }, - "v1beta1.IngressTLS": { - "id": "v1beta1.IngressTLS", - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified." - }, - "secretName": { - "type": "string", - "description": "SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing." - } - } - }, - "v1beta1.IngressRule": { - "id": "v1beta1.IngressRule", - "description": "IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.", - "properties": { - "host": { - "type": "string", - "description": "Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the\n\t IP in the Spec of the parent Ingress.\n2. The `:` delimiter is not respected because ports are not allowed.\n\t Currently the port of an Ingress is implicitly :80 for http and\n\t :443 for https.\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue." - }, - "http": { - "$ref": "v1beta1.HTTPIngressRuleValue" - } - } - }, - "v1beta1.HTTPIngressRuleValue": { - "id": "v1beta1.HTTPIngressRuleValue", - "description": "HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://\u003chost\u003e/\u003cpath\u003e?\u003csearchpart\u003e -\u003e backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.", - "required": [ - "paths" - ], - "properties": { - "paths": { - "type": "array", - "items": { - "$ref": "v1beta1.HTTPIngressPath" - }, - "description": "A collection of paths that map requests to backends." - } - } - }, - "v1beta1.HTTPIngressPath": { - "id": "v1beta1.HTTPIngressPath", - "description": "HTTPIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend.", - "required": [ - "backend" - ], - "properties": { - "path": { - "type": "string", - "description": "Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/'. If unspecified, the path defaults to a catch all sending traffic to the backend." - }, - "backend": { - "$ref": "v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - } - } - }, - "v1beta1.IngressStatus": { - "id": "v1beta1.IngressStatus", - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - } - }, - "v1.LoadBalancerStatus": { - "id": "v1.LoadBalancerStatus", - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "type": "array", - "items": { - "$ref": "v1.LoadBalancerIngress" - }, - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points." - } - } - }, - "v1.LoadBalancerIngress": { - "id": "v1.LoadBalancerIngress", - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "ip": { - "type": "string", - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)" - }, - "hostname": { - "type": "string", - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)" - } - } - }, - "v1beta1.NetworkPolicyList": { - "id": "v1beta1.NetworkPolicyList", - "description": "Network Policy List is a list of NetworkPolicy objects.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.NetworkPolicy" - }, - "description": "Items is a list of schema objects." - } - } - }, - "v1beta1.NetworkPolicy": { - "id": "v1beta1.NetworkPolicy", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.NetworkPolicySpec", - "description": "Specification of the desired behavior for this NetworkPolicy." - } - } - }, - "v1beta1.NetworkPolicySpec": { - "id": "v1beta1.NetworkPolicySpec", - "required": [ - "podSelector" - ], - "properties": { - "podSelector": { - "$ref": "v1.LabelSelector", - "description": "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace." - }, - "ingress": { - "type": "array", - "items": { - "$ref": "v1beta1.NetworkPolicyIngressRule" - }, - "description": "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if namespace.networkPolicy.ingress.isolation is undefined and cluster policy allows it, OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not affect ingress isolation. If this field is present and contains at least one rule, this policy allows any traffic which matches at least one of the ingress rules in this list." - } - } - }, - "v1beta1.NetworkPolicyIngressRule": { - "id": "v1beta1.NetworkPolicyIngressRule", - "description": "This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.", - "properties": { - "ports": { - "type": "array", - "items": { - "$ref": "v1beta1.NetworkPolicyPort" - }, - "description": "List of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is not provided, this rule matches all ports (traffic not restricted by port). If this field is empty, this rule matches no ports (no traffic matches). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list." - }, - "from": { - "type": "array", - "items": { - "$ref": "v1beta1.NetworkPolicyPeer" - }, - "description": "List of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is not provided, this rule matches all sources (traffic not restricted by source). If this field is empty, this rule matches no sources (no traffic matches). If this field is present and contains at least on item, this rule allows traffic only if the traffic matches at least one item in the from list." - } - } - }, - "v1beta1.NetworkPolicyPort": { - "id": "v1beta1.NetworkPolicyPort", - "properties": { - "protocol": { - "$ref": "v1.Protocol", - "description": "Optional. The protocol (TCP or UDP) which traffic must match. If not specified, this field defaults to TCP." - }, - "port": { - "type": "string", - "description": "If specified, the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched." - } - } - }, - "v1.Protocol": { - "id": "v1.Protocol", - "properties": {} - }, - "v1beta1.NetworkPolicyPeer": { - "id": "v1beta1.NetworkPolicyPeer", - "properties": { - "podSelector": { - "$ref": "v1.LabelSelector", - "description": "This is a label selector which selects Pods in this namespace. This field follows standard label selector semantics. If not provided, this selector selects no pods. If present but empty, this selector selects all pods in this namespace." - }, - "namespaceSelector": { - "$ref": "v1.LabelSelector", - "description": "Selects Namespaces using cluster scoped-labels. This matches all pods in all namespaces selected by this label selector. This field follows standard label selector semantics. If omitted, this selector selects no namespaces. If present but empty, this selector selects all namespaces." - } - } - }, - "v1beta1.PodSecurityPolicyList": { - "id": "v1beta1.PodSecurityPolicyList", - "description": "Pod Security Policy List is a list of PodSecurityPolicy objects.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.PodSecurityPolicy" - }, - "description": "Items is a list of schema objects." - } - } - }, - "v1beta1.PodSecurityPolicy": { - "id": "v1beta1.PodSecurityPolicy", - "description": "Pod Security Policy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.PodSecurityPolicySpec", - "description": "spec defines the policy enforced." - } - } - }, - "v1beta1.PodSecurityPolicySpec": { - "id": "v1beta1.PodSecurityPolicySpec", - "description": "Pod Security Policy Spec defines the policy enforced.", - "required": [ - "seLinux", - "runAsUser", - "supplementalGroups", - "fsGroup" - ], - "properties": { - "privileged": { - "type": "boolean", - "description": "privileged determines if a pod can request to be run as privileged." - }, - "defaultAddCapabilities": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capabiility in both DefaultAddCapabilities and RequiredDropCapabilities." - }, - "requiredDropCapabilities": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "RequiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added." - }, - "allowedCapabilities": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "AllowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities." - }, - "volumes": { - "type": "array", - "items": { - "$ref": "v1beta1.FSType" - }, - "description": "volumes is a white list of allowed volume plugins. Empty indicates that all plugins may be used." - }, - "hostNetwork": { - "type": "boolean", - "description": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec." - }, - "hostPorts": { - "type": "array", - "items": { - "$ref": "v1beta1.HostPortRange" - }, - "description": "hostPorts determines which host port ranges are allowed to be exposed." - }, - "hostPID": { - "type": "boolean", - "description": "hostPID determines if the policy allows the use of HostPID in the pod spec." - }, - "hostIPC": { - "type": "boolean", - "description": "hostIPC determines if the policy allows the use of HostIPC in the pod spec." - }, - "seLinux": { - "$ref": "v1beta1.SELinuxStrategyOptions", - "description": "seLinux is the strategy that will dictate the allowable labels that may be set." - }, - "runAsUser": { - "$ref": "v1beta1.RunAsUserStrategyOptions", - "description": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set." - }, - "supplementalGroups": { - "$ref": "v1beta1.SupplementalGroupsStrategyOptions", - "description": "SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext." - }, - "fsGroup": { - "$ref": "v1beta1.FSGroupStrategyOptions", - "description": "FSGroup is the strategy that will dictate what fs group is used by the SecurityContext." - }, - "readOnlyRootFilesystem": { - "type": "boolean", - "description": "ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to." - } - } - }, - "v1beta1.FSType": { - "id": "v1beta1.FSType", - "properties": {} - }, - "v1beta1.HostPortRange": { - "id": "v1beta1.HostPortRange", - "description": "Host Port Range defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", - "required": [ - "min", - "max" - ], - "properties": { - "min": { - "type": "integer", - "format": "int32", - "description": "min is the start of the range, inclusive." - }, - "max": { - "type": "integer", - "format": "int32", - "description": "max is the end of the range, inclusive." - } - } - }, - "v1beta1.SELinuxStrategyOptions": { - "id": "v1beta1.SELinuxStrategyOptions", - "description": "SELinux Strategy Options defines the strategy type and any options used to create the strategy.", - "required": [ - "rule" - ], - "properties": { - "rule": { - "type": "string", - "description": "type is the strategy that will dictate the allowable labels that may be set." - }, - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "seLinuxOptions required to run as; required for MustRunAs More info: http://releases.k8s.io/HEAD/docs/design/security_context.md#security-context" - } - } - }, - "v1beta1.RunAsUserStrategyOptions": { - "id": "v1beta1.RunAsUserStrategyOptions", - "description": "Run A sUser Strategy Options defines the strategy type and any options used to create the strategy.", - "required": [ - "rule" - ], - "properties": { - "rule": { - "type": "string", - "description": "Rule is the strategy that will dictate the allowable RunAsUser values that may be set." - }, - "ranges": { - "type": "array", - "items": { - "$ref": "v1beta1.IDRange" - }, - "description": "Ranges are the allowed ranges of uids that may be used." - } - } - }, - "v1beta1.IDRange": { - "id": "v1beta1.IDRange", - "description": "ID Range provides a min/max of an allowed range of IDs.", - "required": [ - "min", - "max" - ], - "properties": { - "min": { - "type": "integer", - "format": "int64", - "description": "Min is the start of the range, inclusive." - }, - "max": { - "type": "integer", - "format": "int64", - "description": "Max is the end of the range, inclusive." - } - } - }, - "v1beta1.SupplementalGroupsStrategyOptions": { - "id": "v1beta1.SupplementalGroupsStrategyOptions", - "description": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "rule": { - "type": "string", - "description": "Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext." - }, - "ranges": { - "type": "array", - "items": { - "$ref": "v1beta1.IDRange" - }, - "description": "Ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end." - } - } - }, - "v1beta1.FSGroupStrategyOptions": { - "id": "v1beta1.FSGroupStrategyOptions", - "description": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "rule": { - "type": "string", - "description": "Rule is the strategy that will dictate what FSGroup is used in the SecurityContext." - }, - "ranges": { - "type": "array", - "items": { - "$ref": "v1beta1.IDRange" - }, - "description": "Ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end." - } - } - }, - "v1beta1.ReplicaSetList": { - "id": "v1beta1.ReplicaSetList", - "description": "ReplicaSetList is a collection of ReplicaSets.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.ReplicaSet" - }, - "description": "List of ReplicaSets. More info: http://kubernetes.io/docs/user-guide/replication-controller" - } - } - }, - "v1beta1.ReplicaSet": { - "id": "v1beta1.ReplicaSet", - "description": "ReplicaSet represents the configuration of a ReplicaSet.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.ReplicaSetSpec", - "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1beta1.ReplicaSetStatus", - "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1beta1.ReplicaSetSpec": { - "id": "v1beta1.ReplicaSetSpec", - "description": "ReplicaSetSpec is the specification of a ReplicaSet.", - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: http://kubernetes.io/docs/user-guide/replication-controller#what-is-a-replication-controller" - }, - "minReadySeconds": { - "type": "integer", - "format": "int32", - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)" - }, - "selector": { - "$ref": "v1.LabelSelector", - "description": "Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors" - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: http://kubernetes.io/docs/user-guide/replication-controller#pod-template" - } - } - }, - "v1beta1.ReplicaSetStatus": { - "id": "v1beta1.ReplicaSetStatus", - "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "Replicas is the most recently oberved number of replicas. More info: http://kubernetes.io/docs/user-guide/replication-controller#what-is-a-replication-controller" - }, - "fullyLabeledReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of pods that have labels matching the labels of the pod template of the replicaset." - }, - "readyReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of ready replicas for this replica set." - }, - "availableReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set." - }, - "observedGeneration": { - "type": "integer", - "format": "int64", - "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet." - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta1.ReplicaSetCondition" - }, - "description": "Represents the latest available observations of a replica set's current state." - } - } - }, - "v1beta1.ReplicaSetCondition": { - "id": "v1beta1.ReplicaSetCondition", - "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type of replica set condition." - }, - "status": { - "type": "string", - "description": "Status of the condition, one of True, False, Unknown." - }, - "lastTransitionTime": { - "type": "string", - "description": "The last time the condition transitioned from one status to another." - }, - "reason": { - "type": "string", - "description": "The reason for the condition's last transition." - }, - "message": { - "type": "string", - "description": "A human readable message indicating details about the transition." - } - } - }, - "v1beta1.ThirdPartyResourceList": { - "id": "v1beta1.ThirdPartyResourceList", - "description": "ThirdPartyResourceList is a list of ThirdPartyResources.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata." - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.ThirdPartyResource" - }, - "description": "Items is the list of ThirdPartyResources." - } - } - }, - "v1beta1.ThirdPartyResource": { - "id": "v1beta1.ThirdPartyResource", - "description": "A ThirdPartyResource is a generic representation of a resource, it is used by add-ons and plugins to add new resource types to the API. It consists of one or more Versions of the api.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object metadata" - }, - "description": { - "type": "string", - "description": "Description is the description of this object." - }, - "versions": { - "type": "array", - "items": { - "$ref": "v1beta1.APIVersion" - }, - "description": "Versions are versions for this third party object" - } - } - }, - "v1beta1.APIVersion": { - "id": "v1beta1.APIVersion", - "description": "An APIVersion represents a single concrete version of an object model.", - "properties": { - "name": { - "type": "string", - "description": "Name of this version (e.g. 'v1')." - } - } - }, - "v1.APIResourceList": { - "id": "v1.APIResourceList", - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "required": [ - "groupVersion", - "resources" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "groupVersion": { - "type": "string", - "description": "groupVersion is the group and version this APIResourceList is for." - }, - "resources": { - "type": "array", - "items": { - "$ref": "v1.APIResource" - }, - "description": "resources contains the name of the resources and if they are namespaced." - } - } - }, - "v1.APIResource": { - "id": "v1.APIResource", - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "required": [ - "name", - "namespaced", - "kind", - "verbs" - ], - "properties": { - "name": { - "type": "string", - "description": "name is the name of the resource." - }, - "namespaced": { - "type": "boolean", - "description": "namespaced indicates if a resource is namespaced or not." - }, - "kind": { - "type": "string", - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')" - }, - "verbs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)" - }, - "shortNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "shortNames is a list of suggested short names of the resource." - } - } - } - } - } \ No newline at end of file diff --git a/k8s/.kube/schema/v1.6.6/schema566625515 b/k8s/.kube/schema/v1.6.6/schema566625515 deleted file mode 100644 index a112d2e675..0000000000 --- a/k8s/.kube/schema/v1.6.6/schema566625515 +++ /dev/null @@ -1,9977 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "extensions/v1beta1", - "basePath": "https://10.240.255.15:443", - "resourcePath": "/apis/extensions/v1beta1", - "info": { - "title": "", - "description": "" - }, - "apis": [ - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DaemonSetList", - "method": "GET", - "summary": "list or watch objects of kind DaemonSet", - "nickname": "listNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSetList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "POST", - "summary": "create a DaemonSet", - "nickname": "createNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DaemonSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of DaemonSet", - "nickname": "deletecollectionNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of DaemonSet", - "nickname": "watchNamespacedDaemonSetList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DaemonSet", - "method": "GET", - "summary": "read the specified DaemonSet", - "nickname": "readNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "PUT", - "summary": "replace the specified DaemonSet", - "nickname": "replaceNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DaemonSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "PATCH", - "summary": "partially update the specified DaemonSet", - "nickname": "patchNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a DaemonSet", - "nickname": "deleteNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind DaemonSet", - "nickname": "watchNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/daemonsets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DaemonSetList", - "method": "GET", - "summary": "list or watch objects of kind DaemonSet", - "nickname": "listDaemonSetForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSetList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/daemonsets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of DaemonSet", - "nickname": "watchDaemonSetListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DaemonSet", - "method": "GET", - "summary": "read status of the specified DaemonSet", - "nickname": "readNamespacedDaemonSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "PUT", - "summary": "replace status of the specified DaemonSet", - "nickname": "replaceNamespacedDaemonSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DaemonSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "PATCH", - "summary": "partially update status of the specified DaemonSet", - "nickname": "patchNamespacedDaemonSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DeploymentList", - "method": "GET", - "summary": "list or watch objects of kind Deployment", - "nickname": "listNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DeploymentList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "POST", - "summary": "create a Deployment", - "nickname": "createNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Deployment", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Deployment", - "nickname": "deletecollectionNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Deployment", - "nickname": "watchNamespacedDeploymentList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Deployment", - "method": "GET", - "summary": "read the specified Deployment", - "nickname": "readNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "PUT", - "summary": "replace the specified Deployment", - "nickname": "replaceNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Deployment", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "PATCH", - "summary": "partially update the specified Deployment", - "nickname": "patchNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Deployment", - "nickname": "deleteNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Deployment", - "nickname": "watchNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/deployments", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DeploymentList", - "method": "GET", - "summary": "list or watch objects of kind Deployment", - "nickname": "listDeploymentForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DeploymentList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/deployments", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Deployment", - "nickname": "watchDeploymentListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/rollback", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DeploymentRollback", - "method": "POST", - "summary": "create rollback of a DeploymentRollback", - "nickname": "createNamespacedDeploymentRollbackRollback", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DeploymentRollback", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DeploymentRollback", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DeploymentRollback" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Scale", - "method": "GET", - "summary": "read scale of the specified Scale", - "nickname": "readNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PUT", - "summary": "replace scale of the specified Scale", - "nickname": "replaceNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Scale", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PATCH", - "summary": "partially update scale of the specified Scale", - "nickname": "patchNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Deployment", - "method": "GET", - "summary": "read status of the specified Deployment", - "nickname": "readNamespacedDeploymentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "PUT", - "summary": "replace status of the specified Deployment", - "nickname": "replaceNamespacedDeploymentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Deployment", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "PATCH", - "summary": "partially update status of the specified Deployment", - "nickname": "patchNamespacedDeploymentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.IngressList", - "method": "GET", - "summary": "list or watch objects of kind Ingress", - "nickname": "listNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.IngressList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "POST", - "summary": "create an Ingress", - "nickname": "createNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Ingress", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Ingress", - "nickname": "deletecollectionNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Ingress", - "nickname": "watchNamespacedIngressList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Ingress", - "method": "GET", - "summary": "read the specified Ingress", - "nickname": "readNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "PUT", - "summary": "replace the specified Ingress", - "nickname": "replaceNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Ingress", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "PATCH", - "summary": "partially update the specified Ingress", - "nickname": "patchNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete an Ingress", - "nickname": "deleteNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Ingress", - "nickname": "watchNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/ingresses", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.IngressList", - "method": "GET", - "summary": "list or watch objects of kind Ingress", - "nickname": "listIngressForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.IngressList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/ingresses", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Ingress", - "nickname": "watchIngressListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Ingress", - "method": "GET", - "summary": "read status of the specified Ingress", - "nickname": "readNamespacedIngressStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "PUT", - "summary": "replace status of the specified Ingress", - "nickname": "replaceNamespacedIngressStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Ingress", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "PATCH", - "summary": "partially update status of the specified Ingress", - "nickname": "patchNamespacedIngressStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.NetworkPolicyList", - "method": "GET", - "summary": "list or watch objects of kind NetworkPolicy", - "nickname": "listNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NetworkPolicyList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.NetworkPolicy", - "method": "POST", - "summary": "create a NetworkPolicy", - "nickname": "createNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.NetworkPolicy", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NetworkPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of NetworkPolicy", - "nickname": "deletecollectionNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of NetworkPolicy", - "nickname": "watchNamespacedNetworkPolicyList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.NetworkPolicy", - "method": "GET", - "summary": "read the specified NetworkPolicy", - "nickname": "readNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the NetworkPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NetworkPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.NetworkPolicy", - "method": "PUT", - "summary": "replace the specified NetworkPolicy", - "nickname": "replaceNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.NetworkPolicy", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the NetworkPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NetworkPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.NetworkPolicy", - "method": "PATCH", - "summary": "partially update the specified NetworkPolicy", - "nickname": "patchNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the NetworkPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NetworkPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a NetworkPolicy", - "nickname": "deleteNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the NetworkPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind NetworkPolicy", - "nickname": "watchNamespacedNetworkPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the NetworkPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/networkpolicies", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.NetworkPolicyList", - "method": "GET", - "summary": "list or watch objects of kind NetworkPolicy", - "nickname": "listNetworkPolicyForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.NetworkPolicyList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/networkpolicies", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of NetworkPolicy", - "nickname": "watchNetworkPolicyListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/podsecuritypolicies", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.PodSecurityPolicyList", - "method": "GET", - "summary": "list or watch objects of kind PodSecurityPolicy", - "nickname": "listPodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PodSecurityPolicyList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.PodSecurityPolicy", - "method": "POST", - "summary": "create a PodSecurityPolicy", - "nickname": "createPodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.PodSecurityPolicy", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PodSecurityPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of PodSecurityPolicy", - "nickname": "deletecollectionPodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/podsecuritypolicies", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PodSecurityPolicy", - "nickname": "watchPodSecurityPolicyList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/podsecuritypolicies/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.PodSecurityPolicy", - "method": "GET", - "summary": "read the specified PodSecurityPolicy", - "nickname": "readPodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodSecurityPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PodSecurityPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.PodSecurityPolicy", - "method": "PUT", - "summary": "replace the specified PodSecurityPolicy", - "nickname": "replacePodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.PodSecurityPolicy", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodSecurityPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PodSecurityPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.PodSecurityPolicy", - "method": "PATCH", - "summary": "partially update the specified PodSecurityPolicy", - "nickname": "patchPodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodSecurityPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.PodSecurityPolicy" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a PodSecurityPolicy", - "nickname": "deletePodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodSecurityPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/podsecuritypolicies/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind PodSecurityPolicy", - "nickname": "watchPodSecurityPolicy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodSecurityPolicy", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicaSetList", - "method": "GET", - "summary": "list or watch objects of kind ReplicaSet", - "nickname": "listNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSetList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "POST", - "summary": "create a ReplicaSet", - "nickname": "createNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ReplicaSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ReplicaSet", - "nickname": "deletecollectionNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ReplicaSet", - "nickname": "watchNamespacedReplicaSetList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicaSet", - "method": "GET", - "summary": "read the specified ReplicaSet", - "nickname": "readNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "PUT", - "summary": "replace the specified ReplicaSet", - "nickname": "replaceNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ReplicaSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "PATCH", - "summary": "partially update the specified ReplicaSet", - "nickname": "patchNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ReplicaSet", - "nickname": "deleteNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ReplicaSet", - "nickname": "watchNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/replicasets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicaSetList", - "method": "GET", - "summary": "list or watch objects of kind ReplicaSet", - "nickname": "listReplicaSetForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSetList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/replicasets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ReplicaSet", - "nickname": "watchReplicaSetListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Scale", - "method": "GET", - "summary": "read scale of the specified Scale", - "nickname": "readNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PUT", - "summary": "replace scale of the specified Scale", - "nickname": "replaceNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Scale", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PATCH", - "summary": "partially update scale of the specified Scale", - "nickname": "patchNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicaSet", - "method": "GET", - "summary": "read status of the specified ReplicaSet", - "nickname": "readNamespacedReplicaSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "PUT", - "summary": "replace status of the specified ReplicaSet", - "nickname": "replaceNamespacedReplicaSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ReplicaSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "PATCH", - "summary": "partially update status of the specified ReplicaSet", - "nickname": "patchNamespacedReplicaSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicationcontrollers/{name}/scale", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Scale", - "method": "GET", - "summary": "read scale of the specified Scale", - "nickname": "readNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PUT", - "summary": "replace scale of the specified Scale", - "nickname": "replaceNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Scale", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PATCH", - "summary": "partially update scale of the specified Scale", - "nickname": "patchNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/thirdpartyresources", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ThirdPartyResourceList", - "method": "GET", - "summary": "list or watch objects of kind ThirdPartyResource", - "nickname": "listThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ThirdPartyResourceList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ThirdPartyResource", - "method": "POST", - "summary": "create a ThirdPartyResource", - "nickname": "createThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ThirdPartyResource", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ThirdPartyResource" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ThirdPartyResource", - "nickname": "deletecollectionThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/thirdpartyresources", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ThirdPartyResource", - "nickname": "watchThirdPartyResourceList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/thirdpartyresources/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ThirdPartyResource", - "method": "GET", - "summary": "read the specified ThirdPartyResource", - "nickname": "readThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ThirdPartyResource", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ThirdPartyResource" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ThirdPartyResource", - "method": "PUT", - "summary": "replace the specified ThirdPartyResource", - "nickname": "replaceThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ThirdPartyResource", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ThirdPartyResource", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ThirdPartyResource" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ThirdPartyResource", - "method": "PATCH", - "summary": "partially update the specified ThirdPartyResource", - "nickname": "patchThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ThirdPartyResource", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ThirdPartyResource" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ThirdPartyResource", - "nickname": "deleteThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ThirdPartyResource", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/thirdpartyresources/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ThirdPartyResource", - "nickname": "watchThirdPartyResource", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ThirdPartyResource", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.APIResourceList", - "method": "GET", - "summary": "get available resources", - "nickname": "getAPIResources", - "parameters": [], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ] - } - ] - } - ], - "models": { - "v1beta1.DaemonSetList": { - "id": "v1beta1.DaemonSetList", - "description": "DaemonSetList is a collection of daemon sets.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.DaemonSet" - }, - "description": "A list of daemon sets." - } - } - }, - "v1.ListMeta": { - "id": "v1.ListMeta", - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "selfLink": { - "type": "string", - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." - }, - "resourceVersion": { - "type": "string", - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency" - } - } - }, - "v1beta1.DaemonSet": { - "id": "v1beta1.DaemonSet", - "description": "DaemonSet represents the configuration of a daemon set.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.DaemonSetSpec", - "description": "The desired behavior of this daemon set. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1beta1.DaemonSetStatus", - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.ObjectMeta": { - "id": "v1.ObjectMeta", - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "name": { - "type": "string", - "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "generateName": { - "type": "string", - "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#idempotency" - }, - "namespace": { - "type": "string", - "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" - }, - "selfLink": { - "type": "string", - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." - }, - "uid": { - "type": "string", - "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "resourceVersion": { - "type": "string", - "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency" - }, - "generation": { - "type": "integer", - "format": "int64", - "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only." - }, - "creationTimestamp": { - "type": "string", - "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "deletionTimestamp": { - "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "deletionGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only." - }, - "labels": { - "type": "object", - "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels" - }, - "annotations": { - "type": "object", - "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations" - }, - "ownerReferences": { - "type": "array", - "items": { - "$ref": "v1.OwnerReference" - }, - "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller." - }, - "finalizers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed." - }, - "clusterName": { - "type": "string", - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request." - } - } - }, - "v1.OwnerReference": { - "id": "v1.OwnerReference", - "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "API version of the referent." - }, - "kind": { - "type": "string", - "description": "Kind of the referent. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "uid": { - "type": "string", - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "controller": { - "type": "boolean", - "description": "If true, this reference points to the managing controller." - }, - "blockOwnerDeletion": { - "type": "boolean", - "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned." - } - } - }, - "v1beta1.DaemonSetSpec": { - "id": "v1beta1.DaemonSetSpec", - "description": "DaemonSetSpec is the specification of a daemon set.", - "required": [ - "template" - ], - "properties": { - "selector": { - "$ref": "v1.LabelSelector", - "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors" - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: http://kubernetes.io/docs/user-guide/replication-controller#pod-template" - }, - "updateStrategy": { - "$ref": "v1beta1.DaemonSetUpdateStrategy", - "description": "An update strategy to replace existing DaemonSet pods with new pods." - }, - "minReadySeconds": { - "type": "integer", - "format": "int32", - "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)." - }, - "templateGeneration": { - "type": "integer", - "format": "int64", - "description": "A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation." - } - } - }, - "v1.LabelSelector": { - "id": "v1.LabelSelector", - "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", - "properties": { - "matchLabels": { - "type": "object", - "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." - }, - "matchExpressions": { - "type": "array", - "items": { - "$ref": "v1.LabelSelectorRequirement" - }, - "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed." - } - } - }, - "v1.LabelSelectorRequirement": { - "id": "v1.LabelSelectorRequirement", - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "type": "string", - "description": "key is the label key that the selector applies to." - }, - "operator": { - "type": "string", - "description": "operator represents a key's relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." - } - } - }, - "v1.PodTemplateSpec": { - "id": "v1.PodTemplateSpec", - "description": "PodTemplateSpec describes the data a pod should have when created from a template", - "properties": { - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.PodSpec": { - "id": "v1.PodSpec", - "description": "PodSpec is a description of a pod.", - "required": [ - "containers" - ], - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "v1.Volume" - }, - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: http://kubernetes.io/docs/user-guide/volumes" - }, - "initContainers": { - "type": "array", - "items": { - "$ref": "v1.Container" - }, - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers" - }, - "containers": { - "type": "array", - "items": { - "$ref": "v1.Container" - }, - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers" - }, - "restartPolicy": { - "type": "string", - "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: http://kubernetes.io/docs/user-guide/pod-states#restartpolicy" - }, - "terminationGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds." - }, - "activeDeadlineSeconds": { - "type": "integer", - "format": "int64", - "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer." - }, - "dnsPolicy": { - "type": "string", - "description": "Set DNS policy for containers within the pod. One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'. Defaults to \"ClusterFirst\". To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'." - }, - "nodeSelector": { - "type": "object", - "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: http://kubernetes.io/docs/user-guide/node-selection/README" - }, - "serviceAccountName": { - "type": "string", - "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: http://releases.k8s.io/HEAD/docs/design/service_accounts.md" - }, - "serviceAccount": { - "type": "string", - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead." - }, - "automountServiceAccountToken": { - "type": "boolean", - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted." - }, - "nodeName": { - "type": "string", - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements." - }, - "hostNetwork": { - "type": "boolean", - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false." - }, - "hostPID": { - "type": "boolean", - "description": "Use the host's pid namespace. Optional: Default to false." - }, - "hostIPC": { - "type": "boolean", - "description": "Use the host's ipc namespace. Optional: Default to false." - }, - "securityContext": { - "$ref": "v1.PodSecurityContext", - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." - }, - "imagePullSecrets": { - "type": "array", - "items": { - "$ref": "v1.LocalObjectReference" - }, - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod" - }, - "hostname": { - "type": "string", - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value." - }, - "subdomain": { - "type": "string", - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all." - }, - "affinity": { - "$ref": "v1.Affinity", - "description": "If specified, the pod's scheduling constraints" - }, - "schedulerName": { - "type": "string", - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler." - }, - "tolerations": { - "type": "array", - "items": { - "$ref": "v1.Toleration" - }, - "description": "If specified, the pod's tolerations." - } - } - }, - "v1.Volume": { - "id": "v1.Volume", - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "hostPath": { - "$ref": "v1.HostPathVolumeSource", - "description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath" - }, - "emptyDir": { - "$ref": "v1.EmptyDirVolumeSource", - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" - }, - "gcePersistentDisk": { - "$ref": "v1.GCEPersistentDiskVolumeSource", - "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "awsElasticBlockStore": { - "$ref": "v1.AWSElasticBlockStoreVolumeSource", - "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "gitRepo": { - "$ref": "v1.GitRepoVolumeSource", - "description": "GitRepo represents a git repository at a particular revision." - }, - "secret": { - "$ref": "v1.SecretVolumeSource", - "description": "Secret represents a secret that should populate this volume. More info: http://kubernetes.io/docs/user-guide/volumes#secrets" - }, - "nfs": { - "$ref": "v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "iscsi": { - "$ref": "v1.ISCSIVolumeSource", - "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md" - }, - "glusterfs": { - "$ref": "v1.GlusterfsVolumeSource", - "description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md" - }, - "persistentVolumeClaim": { - "$ref": "v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - }, - "rbd": { - "$ref": "v1.RBDVolumeSource", - "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md" - }, - "flexVolume": { - "$ref": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future." - }, - "cinder": { - "$ref": "v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "cephfs": { - "$ref": "v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "flocker": { - "$ref": "v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" - }, - "downwardAPI": { - "$ref": "v1.DownwardAPIVolumeSource", - "description": "DownwardAPI represents downward API about the pod that should populate this volume" - }, - "fc": { - "$ref": "v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "azureFile": { - "$ref": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "configMap": { - "$ref": "v1.ConfigMapVolumeSource", - "description": "ConfigMap represents a configMap that should populate this volume" - }, - "vsphereVolume": { - "$ref": "v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "azureDisk": { - "$ref": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "photonPersistentDisk": { - "$ref": "v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "projected": { - "$ref": "v1.ProjectedVolumeSource", - "description": "Items for all in one resources secrets, configmaps, and downward API" - }, - "portworxVolume": { - "$ref": "v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "scaleIO": { - "$ref": "v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - } - } - }, - "v1.HostPathVolumeSource": { - "id": "v1.HostPathVolumeSource", - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "Path of the directory on the host. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath" - } - } - }, - "v1.EmptyDirVolumeSource": { - "id": "v1.EmptyDirVolumeSource", - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - "properties": { - "medium": { - "type": "string", - "description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" - } - } - }, - "v1.GCEPersistentDiskVolumeSource": { - "id": "v1.GCEPersistentDiskVolumeSource", - "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", - "required": [ - "pdName" - ], - "properties": { - "pdName": { - "type": "string", - "description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - } - } - }, - "v1.AWSElasticBlockStoreVolumeSource": { - "id": "v1.AWSElasticBlockStoreVolumeSource", - "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." - }, - "readOnly": { - "type": "boolean", - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - } - } - }, - "v1.GitRepoVolumeSource": { - "id": "v1.GitRepoVolumeSource", - "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.", - "required": [ - "repository" - ], - "properties": { - "repository": { - "type": "string", - "description": "Repository URL" - }, - "revision": { - "type": "string", - "description": "Commit hash for the specified revision." - }, - "directory": { - "type": "string", - "description": "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." - } - } - }, - "v1.SecretVolumeSource": { - "id": "v1.SecretVolumeSource", - "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", - "properties": { - "secretName": { - "type": "string", - "description": "Name of the secret in the pod's namespace to use. More info: http://kubernetes.io/docs/user-guide/volumes#secrets" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or it's keys must be defined" - } - } - }, - "v1.KeyToPath": { - "id": "v1.KeyToPath", - "description": "Maps a string key to a path within a volume.", - "required": [ - "key", - "path" - ], - "properties": { - "key": { - "type": "string", - "description": "The key to project." - }, - "path": { - "type": "string", - "description": "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." - }, - "mode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.NFSVolumeSource": { - "id": "v1.NFSVolumeSource", - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - "required": [ - "server", - "path" - ], - "properties": { - "server": { - "type": "string", - "description": "Server is the hostname or IP address of the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "path": { - "type": "string", - "description": "Path that is exported by the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - } - } - }, - "v1.ISCSIVolumeSource": { - "id": "v1.ISCSIVolumeSource", - "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "properties": { - "targetPortal": { - "type": "string", - "description": "iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." - }, - "iqn": { - "type": "string", - "description": "Target iSCSI Qualified Name." - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "iSCSI target lun number." - }, - "iscsiInterface": { - "type": "string", - "description": "Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport." - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#iscsi" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." - }, - "portals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "iSCSI target portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." - } - } - }, - "v1.GlusterfsVolumeSource": { - "id": "v1.GlusterfsVolumeSource", - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "endpoints", - "path" - ], - "properties": { - "endpoints": { - "type": "string", - "description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - }, - "path": { - "type": "string", - "description": "Path is the Glusterfs volume path. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - } - } - }, - "v1.PersistentVolumeClaimVolumeSource": { - "id": "v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", - "required": [ - "claimName" - ], - "properties": { - "claimName": { - "type": "string", - "description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - }, - "readOnly": { - "type": "boolean", - "description": "Will force the ReadOnly setting in VolumeMounts. Default false." - } - } - }, - "v1.RBDVolumeSource": { - "id": "v1.RBDVolumeSource", - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "required": [ - "monitors", - "image" - ], - "properties": { - "monitors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A collection of Ceph monitors. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "image": { - "type": "string", - "description": "The rados image name. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#rbd" - }, - "pool": { - "type": "string", - "description": "The rados pool name. Default is rbd. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it." - }, - "user": { - "type": "string", - "description": "The rados user name. Default is admin. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "keyring": { - "type": "string", - "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - } - } - }, - "v1.LocalObjectReference": { - "id": "v1.LocalObjectReference", - "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - } - } - }, - "v1.FlexVolumeSource": { - "id": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", - "required": [ - "driver" - ], - "properties": { - "driver": { - "type": "string", - "description": "Driver is the name of the driver to use for this volume." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - }, - "options": { - "type": "object", - "description": "Optional: Extra command options if any." - } - } - }, - "v1.CinderVolumeSource": { - "id": "v1.CinderVolumeSource", - "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "volume id used to identify the volume in cinder More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - } - } - }, - "v1.CephFSVolumeSource": { - "id": "v1.CephFSVolumeSource", - "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "monitors" - ], - "properties": { - "monitors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required: Monitors is a collection of Ceph monitors More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "path": { - "type": "string", - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" - }, - "user": { - "type": "string", - "description": "Optional: User is the rados user name, default is admin More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "secretFile": { - "type": "string", - "description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - } - } - }, - "v1.FlockerVolumeSource": { - "id": "v1.FlockerVolumeSource", - "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", - "properties": { - "datasetName": { - "type": "string", - "description": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated" - }, - "datasetUUID": { - "type": "string", - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset" - } - } - }, - "v1.DownwardAPIVolumeSource": { - "id": "v1.DownwardAPIVolumeSource", - "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "v1.DownwardAPIVolumeFile" - }, - "description": "Items is a list of downward API volume file" - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.DownwardAPIVolumeFile": { - "id": "v1.DownwardAPIVolumeFile", - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'" - }, - "fieldRef": { - "$ref": "v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." - }, - "resourceFieldRef": { - "$ref": "v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - }, - "mode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.ObjectFieldSelector": { - "id": "v1.ObjectFieldSelector", - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", - "required": [ - "fieldPath" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"." - }, - "fieldPath": { - "type": "string", - "description": "Path of the field to select in the specified API version." - } - } - }, - "v1.ResourceFieldSelector": { - "id": "v1.ResourceFieldSelector", - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - "required": [ - "resource" - ], - "properties": { - "containerName": { - "type": "string", - "description": "Container name: required for volumes, optional for env vars" - }, - "resource": { - "type": "string", - "description": "Required: resource to select" - }, - "divisor": { - "type": "string", - "description": "Specifies the output format of the exposed resources, defaults to \"1\"" - } - } - }, - "v1.FCVolumeSource": { - "id": "v1.FCVolumeSource", - "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], - "properties": { - "targetWWNs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required: FC target worldwide names (WWNs)" - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "Required: FC target lun number" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.AzureFileVolumeSource": { - "id": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "required": [ - "secretName", - "shareName" - ], - "properties": { - "secretName": { - "type": "string", - "description": "the name of secret that contains Azure Storage Account Name and Key" - }, - "shareName": { - "type": "string", - "description": "Share Name" - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.ConfigMapVolumeSource": { - "id": "v1.ConfigMapVolumeSource", - "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's keys must be defined" - } - } - }, - "v1.VsphereVirtualDiskVolumeSource": { - "id": "v1.VsphereVirtualDiskVolumeSource", - "description": "Represents a vSphere volume resource.", - "required": [ - "volumePath" - ], - "properties": { - "volumePath": { - "type": "string", - "description": "Path that identifies vSphere volume vmdk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - } - } - }, - "v1.QuobyteVolumeSource": { - "id": "v1.QuobyteVolumeSource", - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - "required": [ - "registry", - "volume" - ], - "properties": { - "registry": { - "type": "string", - "description": "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" - }, - "volume": { - "type": "string", - "description": "Volume is a string that references an already created Quobyte volume by name." - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." - }, - "user": { - "type": "string", - "description": "User to map volume access to Defaults to serivceaccount user" - }, - "group": { - "type": "string", - "description": "Group to map volume access to Default is no group" - } - } - }, - "v1.AzureDiskVolumeSource": { - "id": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "required": [ - "diskName", - "diskURI" - ], - "properties": { - "diskName": { - "type": "string", - "description": "The Name of the data disk in the blob storage" - }, - "diskURI": { - "type": "string", - "description": "The URI the data disk in the blob storage" - }, - "cachingMode": { - "$ref": "v1.AzureDataDiskCachingMode", - "description": "Host Caching mode: None, Read Only, Read Write." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.AzureDataDiskCachingMode": { - "id": "v1.AzureDataDiskCachingMode", - "properties": {} - }, - "v1.PhotonPersistentDiskVolumeSource": { - "id": "v1.PhotonPersistentDiskVolumeSource", - "description": "Represents a Photon Controller persistent disk resource.", - "required": [ - "pdID" - ], - "properties": { - "pdID": { - "type": "string", - "description": "ID that identifies Photon Controller persistent disk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - } - } - }, - "v1.ProjectedVolumeSource": { - "id": "v1.ProjectedVolumeSource", - "description": "Represents a projected volume source", - "required": [ - "sources" - ], - "properties": { - "sources": { - "type": "array", - "items": { - "$ref": "v1.VolumeProjection" - }, - "description": "list of volume projections" - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.VolumeProjection": { - "id": "v1.VolumeProjection", - "description": "Projection that may be projected along with other supported volume types", - "properties": { - "secret": { - "$ref": "v1.SecretProjection", - "description": "information about the secret data to project" - }, - "downwardAPI": { - "$ref": "v1.DownwardAPIProjection", - "description": "information about the downwardAPI data to project" - }, - "configMap": { - "$ref": "v1.ConfigMapProjection", - "description": "information about the configMap data to project" - } - } - }, - "v1.SecretProjection": { - "id": "v1.SecretProjection", - "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or its key must be defined" - } - } - }, - "v1.DownwardAPIProjection": { - "id": "v1.DownwardAPIProjection", - "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "v1.DownwardAPIVolumeFile" - }, - "description": "Items is a list of DownwardAPIVolume file" - } - } - }, - "v1.ConfigMapProjection": { - "id": "v1.ConfigMapProjection", - "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's keys must be defined" - } - } - }, - "v1.PortworxVolumeSource": { - "id": "v1.PortworxVolumeSource", - "description": "PortworxVolumeSource represents a Portworx volume resource.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "VolumeID uniquely identifies a Portworx volume" - }, - "fsType": { - "type": "string", - "description": "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.ScaleIOVolumeSource": { - "id": "v1.ScaleIOVolumeSource", - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", - "required": [ - "gateway", - "system", - "secretRef" - ], - "properties": { - "gateway": { - "type": "string", - "description": "The host address of the ScaleIO API Gateway." - }, - "system": { - "type": "string", - "description": "The name of the storage system as configured in ScaleIO." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "type": "boolean", - "description": "Flag to enable/disable SSL communication with Gateway, default false" - }, - "protectionDomain": { - "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." - }, - "storagePool": { - "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." - }, - "storageMode": { - "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." - }, - "volumeName": { - "type": "string", - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.Container": { - "id": "v1.Container", - "description": "A single application container that you want to run within a pod.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated." - }, - "image": { - "type": "string", - "description": "Docker image name. More info: http://kubernetes.io/docs/user-guide/images" - }, - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers#containers-and-commands" - }, - "args": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers#containers-and-commands" - }, - "workingDir": { - "type": "string", - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated." - }, - "ports": { - "type": "array", - "items": { - "$ref": "v1.ContainerPort" - }, - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated." - }, - "envFrom": { - "type": "array", - "items": { - "$ref": "v1.EnvFromSource" - }, - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated." - }, - "env": { - "type": "array", - "items": { - "$ref": "v1.EnvVar" - }, - "description": "List of environment variables to set in the container. Cannot be updated." - }, - "resources": { - "$ref": "v1.ResourceRequirements", - "description": "Compute Resources required by this container. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#resources" - }, - "volumeMounts": { - "type": "array", - "items": { - "$ref": "v1.VolumeMount" - }, - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated." - }, - "livenessProbe": { - "$ref": "v1.Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "readinessProbe": { - "$ref": "v1.Probe", - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "lifecycle": { - "$ref": "v1.Lifecycle", - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." - }, - "terminationMessagePath": { - "type": "string", - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated." - }, - "terminationMessagePolicy": { - "type": "string", - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated." - }, - "imagePullPolicy": { - "type": "string", - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/images#updating-images" - }, - "securityContext": { - "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: http://releases.k8s.io/HEAD/docs/design/security_context.md" - }, - "stdin": { - "type": "boolean", - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false." - }, - "stdinOnce": { - "type": "boolean", - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false" - }, - "tty": { - "type": "boolean", - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false." - } - } - }, - "v1.ContainerPort": { - "id": "v1.ContainerPort", - "description": "ContainerPort represents a network port in a single container.", - "required": [ - "containerPort" - ], - "properties": { - "name": { - "type": "string", - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services." - }, - "hostPort": { - "type": "integer", - "format": "int32", - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this." - }, - "containerPort": { - "type": "integer", - "format": "int32", - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536." - }, - "protocol": { - "type": "string", - "description": "Protocol for port. Must be UDP or TCP. Defaults to \"TCP\"." - }, - "hostIP": { - "type": "string", - "description": "What host IP to bind the external port to." - } - } - }, - "v1.EnvFromSource": { - "id": "v1.EnvFromSource", - "description": "EnvFromSource represents the source of a set of ConfigMaps", - "properties": { - "prefix": { - "type": "string", - "description": "An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER." - }, - "configMapRef": { - "$ref": "v1.ConfigMapEnvSource", - "description": "The ConfigMap to select from" - }, - "secretRef": { - "$ref": "v1.SecretEnvSource", - "description": "The Secret to select from" - } - } - }, - "v1.ConfigMapEnvSource": { - "id": "v1.ConfigMapEnvSource", - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap must be defined" - } - } - }, - "v1.SecretEnvSource": { - "id": "v1.SecretEnvSource", - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret must be defined" - } - } - }, - "v1.EnvVar": { - "id": "v1.EnvVar", - "description": "EnvVar represents an environment variable present in a Container.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the environment variable. Must be a C_IDENTIFIER." - }, - "value": { - "type": "string", - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\"." - }, - "valueFrom": { - "$ref": "v1.EnvVarSource", - "description": "Source for the environment variable's value. Cannot be used if value is not empty." - } - } - }, - "v1.EnvVarSource": { - "id": "v1.EnvVarSource", - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "fieldRef": { - "$ref": "v1.ObjectFieldSelector", - "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.podIP." - }, - "resourceFieldRef": { - "$ref": "v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - }, - "configMapKeyRef": { - "$ref": "v1.ConfigMapKeySelector", - "description": "Selects a key of a ConfigMap." - }, - "secretKeyRef": { - "$ref": "v1.SecretKeySelector", - "description": "Selects a key of a secret in the pod's namespace" - } - } - }, - "v1.ConfigMapKeySelector": { - "id": "v1.ConfigMapKeySelector", - "description": "Selects a key from a ConfigMap.", - "required": [ - "key" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "key": { - "type": "string", - "description": "The key to select." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's key must be defined" - } - } - }, - "v1.SecretKeySelector": { - "id": "v1.SecretKeySelector", - "description": "SecretKeySelector selects a key of a Secret.", - "required": [ - "key" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "key": { - "type": "string", - "description": "The key of the secret to select from. Must be a valid secret key." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or it's key must be defined" - } - } - }, - "v1.ResourceRequirements": { - "id": "v1.ResourceRequirements", - "description": "ResourceRequirements describes the compute resource requirements.", - "properties": { - "limits": { - "type": "object", - "description": "Limits describes the maximum amount of compute resources allowed. More info: http://kubernetes.io/docs/user-guide/compute-resources/" - }, - "requests": { - "type": "object", - "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: http://kubernetes.io/docs/user-guide/compute-resources/" - } - } - }, - "v1.VolumeMount": { - "id": "v1.VolumeMount", - "description": "VolumeMount describes a mounting of a Volume within a container.", - "required": [ - "name", - "mountPath" - ], - "properties": { - "name": { - "type": "string", - "description": "This must match the Name of a Volume." - }, - "readOnly": { - "type": "boolean", - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false." - }, - "mountPath": { - "type": "string", - "description": "Path within the container at which the volume should be mounted. Must not contain ':'." - }, - "subPath": { - "type": "string", - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root)." - } - } - }, - "v1.Probe": { - "id": "v1.Probe", - "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - "properties": { - "exec": { - "$ref": "v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - }, - "initialDelaySeconds": { - "type": "integer", - "format": "int32", - "description": "Number of seconds after the container has started before liveness probes are initiated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "timeoutSeconds": { - "type": "integer", - "format": "int32", - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "periodSeconds": { - "type": "integer", - "format": "int32", - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1." - }, - "successThreshold": { - "type": "integer", - "format": "int32", - "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1." - }, - "failureThreshold": { - "type": "integer", - "format": "int32", - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1." - } - } - }, - "v1.ExecAction": { - "id": "v1.ExecAction", - "description": "ExecAction describes a \"run in container\" action.", - "properties": { - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy." - } - } - }, - "v1.HTTPGetAction": { - "id": "v1.HTTPGetAction", - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "required": [ - "port" - ], - "properties": { - "path": { - "type": "string", - "description": "Path to access on the HTTP server." - }, - "port": { - "type": "string", - "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." - }, - "host": { - "type": "string", - "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead." - }, - "scheme": { - "type": "string", - "description": "Scheme to use for connecting to the host. Defaults to HTTP." - }, - "httpHeaders": { - "type": "array", - "items": { - "$ref": "v1.HTTPHeader" - }, - "description": "Custom headers to set in the request. HTTP allows repeated headers." - } - } - }, - "v1.HTTPHeader": { - "id": "v1.HTTPHeader", - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "required": [ - "name", - "value" - ], - "properties": { - "name": { - "type": "string", - "description": "The header field name" - }, - "value": { - "type": "string", - "description": "The header field value" - } - } - }, - "v1.TCPSocketAction": { - "id": "v1.TCPSocketAction", - "description": "TCPSocketAction describes an action based on opening a socket", - "required": [ - "port" - ], - "properties": { - "port": { - "type": "string", - "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." - } - } - }, - "v1.Lifecycle": { - "id": "v1.Lifecycle", - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "$ref": "v1.Handler", - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: http://kubernetes.io/docs/user-guide/container-environment#hook-details" - }, - "preStop": { - "$ref": "v1.Handler", - "description": "PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: http://kubernetes.io/docs/user-guide/container-environment#hook-details" - } - } - }, - "v1.Handler": { - "id": "v1.Handler", - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "$ref": "v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - } - } - }, - "v1.SecurityContext": { - "id": "v1.SecurityContext", - "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", - "properties": { - "capabilities": { - "$ref": "v1.Capabilities", - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." - }, - "privileged": { - "type": "boolean", - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false." - }, - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "runAsNonRoot": { - "type": "boolean", - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "readOnlyRootFilesystem": { - "type": "boolean", - "description": "Whether this container has a read-only root filesystem. Default is false." - } - } - }, - "v1.Capabilities": { - "id": "v1.Capabilities", - "description": "Adds and removes POSIX capabilities from running containers.", - "properties": { - "add": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "Added capabilities" - }, - "drop": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "Removed capabilities" - } - } - }, - "v1.Capability": { - "id": "v1.Capability", - "properties": {} - }, - "v1.SELinuxOptions": { - "id": "v1.SELinuxOptions", - "description": "SELinuxOptions are the labels to be applied to the container", - "properties": { - "user": { - "type": "string", - "description": "User is a SELinux user label that applies to the container." - }, - "role": { - "type": "string", - "description": "Role is a SELinux role label that applies to the container." - }, - "type": { - "type": "string", - "description": "Type is a SELinux type label that applies to the container." - }, - "level": { - "type": "string", - "description": "Level is SELinux level label that applies to the container." - } - } - }, - "v1.PodSecurityContext": { - "id": "v1.PodSecurityContext", - "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", - "properties": { - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." - }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." - }, - "runAsNonRoot": { - "type": "boolean", - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "supplementalGroups": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container." - }, - "fsGroup": { - "type": "integer", - "format": "int64", - "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw " - } - } - }, - "v1.Affinity": { - "id": "v1.Affinity", - "description": "Affinity is a group of affinity scheduling rules.", - "properties": { - "nodeAffinity": { - "$ref": "v1.NodeAffinity", - "description": "Describes node affinity scheduling rules for the pod." - }, - "podAffinity": { - "$ref": "v1.PodAffinity", - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." - }, - "podAntiAffinity": { - "$ref": "v1.PodAntiAffinity", - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." - } - } - }, - "v1.NodeAffinity": { - "id": "v1.NodeAffinity", - "description": "Node affinity is a group of node affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "$ref": "v1.NodeSelector", - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PreferredSchedulingTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.NodeSelector": { - "id": "v1.NodeSelector", - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - "required": [ - "nodeSelectorTerms" - ], - "properties": { - "nodeSelectorTerms": { - "type": "array", - "items": { - "$ref": "v1.NodeSelectorTerm" - }, - "description": "Required. A list of node selector terms. The terms are ORed." - } - } - }, - "v1.NodeSelectorTerm": { - "id": "v1.NodeSelectorTerm", - "description": "A null or empty node selector term matches no objects.", - "required": [ - "matchExpressions" - ], - "properties": { - "matchExpressions": { - "type": "array", - "items": { - "$ref": "v1.NodeSelectorRequirement" - }, - "description": "Required. A list of node selector requirements. The requirements are ANDed." - } - } - }, - "v1.NodeSelectorRequirement": { - "id": "v1.NodeSelectorRequirement", - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "type": "string", - "description": "The label key that the selector applies to." - }, - "operator": { - "type": "string", - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." - } - } - }, - "v1.PreferredSchedulingTerm": { - "id": "v1.PreferredSchedulingTerm", - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "required": [ - "weight", - "preference" - ], - "properties": { - "weight": { - "type": "integer", - "format": "int32", - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." - }, - "preference": { - "$ref": "v1.NodeSelectorTerm", - "description": "A node selector term, associated with the corresponding weight." - } - } - }, - "v1.PodAffinity": { - "id": "v1.PodAffinity", - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PodAffinityTerm" - }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.WeightedPodAffinityTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.PodAffinityTerm": { - "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", - "properties": { - "labelSelector": { - "$ref": "v1.LabelSelector", - "description": "A label query over a set of resources, in this case pods." - }, - "namespaces": { - "type": "array", - "items": { - "type": "string" - }, - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"" - }, - "topologyKey": { - "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." - } - } - }, - "v1.WeightedPodAffinityTerm": { - "id": "v1.WeightedPodAffinityTerm", - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "required": [ - "weight", - "podAffinityTerm" - ], - "properties": { - "weight": { - "type": "integer", - "format": "int32", - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100." - }, - "podAffinityTerm": { - "$ref": "v1.PodAffinityTerm", - "description": "Required. A pod affinity term, associated with the corresponding weight." - } - } - }, - "v1.PodAntiAffinity": { - "id": "v1.PodAntiAffinity", - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PodAffinityTerm" - }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.WeightedPodAffinityTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.Toleration": { - "id": "v1.Toleration", - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", - "properties": { - "key": { - "type": "string", - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys." - }, - "operator": { - "type": "string", - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category." - }, - "value": { - "type": "string", - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string." - }, - "effect": { - "type": "string", - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute." - }, - "tolerationSeconds": { - "type": "integer", - "format": "int64", - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system." - } - } - }, - "v1beta1.DaemonSetUpdateStrategy": { - "id": "v1beta1.DaemonSetUpdateStrategy", - "properties": { - "type": { - "type": "string", - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete." - }, - "rollingUpdate": { - "$ref": "v1beta1.RollingUpdateDaemonSet", - "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." - } - } - }, - "v1beta1.RollingUpdateDaemonSet": { - "id": "v1beta1.RollingUpdateDaemonSet", - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "type": "string", - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." - } - } - }, - "v1beta1.DaemonSetStatus": { - "id": "v1beta1.DaemonSetStatus", - "description": "DaemonSetStatus represents the current status of a daemon set.", - "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" - ], - "properties": { - "currentNumberScheduled": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: http://releases.k8s.io/HEAD/docs/admin/daemons.md" - }, - "numberMisscheduled": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: http://releases.k8s.io/HEAD/docs/admin/daemons.md" - }, - "desiredNumberScheduled": { - "type": "integer", - "format": "int32", - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: http://releases.k8s.io/HEAD/docs/admin/daemons.md" - }, - "numberReady": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready." - }, - "observedGeneration": { - "type": "integer", - "format": "int64", - "description": "The most recent generation observed by the daemon set controller." - }, - "updatedNumberScheduled": { - "type": "integer", - "format": "int32", - "description": "The total number of nodes that are running updated daemon pod" - }, - "numberAvailable": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)" - }, - "numberUnavailable": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)" - } - } - }, - "v1.Status": { - "id": "v1.Status", - "description": "Status is a return value for calls that don't return other objects.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "status": { - "type": "string", - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "message": { - "type": "string", - "description": "A human-readable description of the status of this operation." - }, - "reason": { - "type": "string", - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it." - }, - "details": { - "$ref": "v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." - }, - "code": { - "type": "integer", - "format": "int32", - "description": "Suggested HTTP return code for this status, 0 if not set." - } - } - }, - "v1.StatusDetails": { - "id": "v1.StatusDetails", - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "name": { - "type": "string", - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)." - }, - "group": { - "type": "string", - "description": "The group attribute of the resource associated with the status StatusReason." - }, - "kind": { - "type": "string", - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "causes": { - "type": "array", - "items": { - "$ref": "v1.StatusCause" - }, - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes." - }, - "retryAfterSeconds": { - "type": "integer", - "format": "int32", - "description": "If specified, the time in seconds before the operation should be retried." - } - } - }, - "v1.StatusCause": { - "id": "v1.StatusCause", - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "reason": { - "type": "string", - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available." - }, - "message": { - "type": "string", - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader." - }, - "field": { - "type": "string", - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"" - } - } - }, - "v1.WatchEvent": { - "id": "v1.WatchEvent", - "required": [ - "type", - "object" - ], - "properties": { - "type": { - "type": "string" - }, - "object": { - "type": "string" - } - } - }, - "v1.Patch": { - "id": "v1.Patch", - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - "properties": {} - }, - "v1.DeleteOptions": { - "id": "v1.DeleteOptions", - "description": "DeleteOptions may be provided when deleting an API object.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "gracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately." - }, - "preconditions": { - "$ref": "v1.Preconditions", - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." - }, - "orphanDependents": { - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both." - }, - "propagationPolicy": { - "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." - } - } - }, - "v1.Preconditions": { - "id": "v1.Preconditions", - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "uid": { - "$ref": "types.UID", - "description": "Specifies the target UID." - } - } - }, - "types.UID": { - "id": "types.UID", - "properties": {} - }, - "v1.DeletionPropagation": { - "id": "v1.DeletionPropagation", - "properties": {} - }, - "v1beta1.DeploymentList": { - "id": "v1beta1.DeploymentList", - "description": "DeploymentList is a list of Deployments.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata." - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Deployment" - }, - "description": "Items is the list of Deployments." - } - } - }, - "v1beta1.Deployment": { - "id": "v1beta1.Deployment", - "description": "Deployment enables declarative updates for Pods and ReplicaSets.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object metadata." - }, - "spec": { - "$ref": "v1beta1.DeploymentSpec", - "description": "Specification of the desired behavior of the Deployment." - }, - "status": { - "$ref": "v1beta1.DeploymentStatus", - "description": "Most recently observed status of the Deployment." - } - } - }, - "v1beta1.DeploymentSpec": { - "id": "v1beta1.DeploymentSpec", - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "required": [ - "template" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1." - }, - "selector": { - "$ref": "v1.LabelSelector", - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment." - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "Template describes the pods that will be created." - }, - "strategy": { - "$ref": "v1beta1.DeploymentStrategy", - "description": "The deployment strategy to use to replace existing pods with new ones." - }, - "minReadySeconds": { - "type": "integer", - "format": "int32", - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)" - }, - "revisionHistoryLimit": { - "type": "integer", - "format": "int32", - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified." - }, - "paused": { - "type": "boolean", - "description": "Indicates that the deployment is paused and will not be processed by the deployment controller." - }, - "rollbackTo": { - "$ref": "v1beta1.RollbackConfig", - "description": "The config this deployment is rolling back to. Will be cleared after rollback is done." - }, - "progressDeadlineSeconds": { - "type": "integer", - "format": "int32", - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Once autoRollback is implemented, the deployment controller will automatically rollback failed deployments. Note that progress will not be estimated during the time a deployment is paused. This is not set by default." - } - } - }, - "v1beta1.DeploymentStrategy": { - "id": "v1beta1.DeploymentStrategy", - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "type": { - "type": "string", - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate." - }, - "rollingUpdate": { - "$ref": "v1beta1.RollingUpdateDeployment", - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate." - } - } - }, - "v1beta1.RollingUpdateDeployment": { - "id": "v1beta1.RollingUpdateDeployment", - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxUnavailable": { - "type": "string", - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods." - }, - "maxSurge": { - "type": "string", - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods." - } - } - }, - "v1beta1.RollbackConfig": { - "id": "v1beta1.RollbackConfig", - "properties": { - "revision": { - "type": "integer", - "format": "int64", - "description": "The revision to rollback to. If set to 0, rollbck to the last revision." - } - } - }, - "v1beta1.DeploymentStatus": { - "id": "v1beta1.DeploymentStatus", - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "observedGeneration": { - "type": "integer", - "format": "int64", - "description": "The generation observed by the deployment controller." - }, - "replicas": { - "type": "integer", - "format": "int32", - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector)." - }, - "updatedReplicas": { - "type": "integer", - "format": "int32", - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec." - }, - "readyReplicas": { - "type": "integer", - "format": "int32", - "description": "Total number of ready pods targeted by this deployment." - }, - "availableReplicas": { - "type": "integer", - "format": "int32", - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment." - }, - "unavailableReplicas": { - "type": "integer", - "format": "int32", - "description": "Total number of unavailable pods targeted by this deployment." - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta1.DeploymentCondition" - }, - "description": "Represents the latest available observations of a deployment's current state." - } - } - }, - "v1beta1.DeploymentCondition": { - "id": "v1beta1.DeploymentCondition", - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type of deployment condition." - }, - "status": { - "type": "string", - "description": "Status of the condition, one of True, False, Unknown." - }, - "lastUpdateTime": { - "type": "string", - "description": "The last time this condition was updated." - }, - "lastTransitionTime": { - "type": "string", - "description": "Last time the condition transitioned from one status to another." - }, - "reason": { - "type": "string", - "description": "The reason for the condition's last transition." - }, - "message": { - "type": "string", - "description": "A human readable message indicating details about the transition." - } - } - }, - "v1beta1.DeploymentRollback": { - "id": "v1beta1.DeploymentRollback", - "description": "DeploymentRollback stores the information required to rollback a deployment.", - "required": [ - "name", - "rollbackTo" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "name": { - "type": "string", - "description": "Required: This must match the Name of a deployment." - }, - "updatedAnnotations": { - "type": "object", - "description": "The annotations to be updated to a deployment" - }, - "rollbackTo": { - "$ref": "v1beta1.RollbackConfig", - "description": "The config of this deployment rollback." - } - } - }, - "v1beta1.Scale": { - "id": "v1beta1.Scale", - "description": "represents a scaling request for a resource.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object metadata; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata." - }, - "spec": { - "$ref": "v1beta1.ScaleSpec", - "description": "defines the behavior of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "v1beta1.ScaleStatus", - "description": "current status of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status. Read-only." - } - } - }, - "v1beta1.ScaleSpec": { - "id": "v1beta1.ScaleSpec", - "description": "describes the attributes of a scale subresource", - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "desired number of instances for the scaled object." - } - } - }, - "v1beta1.ScaleStatus": { - "id": "v1beta1.ScaleStatus", - "description": "represents the current status of a scale subresource.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "actual number of observed instances of the scaled object." - }, - "selector": { - "type": "object", - "description": "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors" - }, - "targetSelector": { - "type": "string", - "description": "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors" - } - } - }, - "v1beta1.IngressList": { - "id": "v1beta1.IngressList", - "description": "IngressList is a collection of Ingress.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Ingress" - }, - "description": "Items is the list of Ingress." - } - } - }, - "v1beta1.Ingress": { - "id": "v1beta1.Ingress", - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1beta1.IngressSpec": { - "id": "v1beta1.IngressSpec", - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "tls": { - "type": "array", - "items": { - "$ref": "v1beta1.IngressTLS" - }, - "description": "TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI." - }, - "rules": { - "type": "array", - "items": { - "$ref": "v1beta1.IngressRule" - }, - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend." - } - } - }, - "v1beta1.IngressBackend": { - "id": "v1beta1.IngressBackend", - "description": "IngressBackend describes all endpoints for a given service and port.", - "required": [ - "serviceName", - "servicePort" - ], - "properties": { - "serviceName": { - "type": "string", - "description": "Specifies the name of the referenced service." - }, - "servicePort": { - "type": "string", - "description": "Specifies the port of the referenced service." - } - } - }, - "v1beta1.IngressTLS": { - "id": "v1beta1.IngressTLS", - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified." - }, - "secretName": { - "type": "string", - "description": "SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing." - } - } - }, - "v1beta1.IngressRule": { - "id": "v1beta1.IngressRule", - "description": "IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.", - "properties": { - "host": { - "type": "string", - "description": "Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the\n\t IP in the Spec of the parent Ingress.\n2. The `:` delimiter is not respected because ports are not allowed.\n\t Currently the port of an Ingress is implicitly :80 for http and\n\t :443 for https.\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue." - }, - "http": { - "$ref": "v1beta1.HTTPIngressRuleValue" - } - } - }, - "v1beta1.HTTPIngressRuleValue": { - "id": "v1beta1.HTTPIngressRuleValue", - "description": "HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://\u003chost\u003e/\u003cpath\u003e?\u003csearchpart\u003e -\u003e backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.", - "required": [ - "paths" - ], - "properties": { - "paths": { - "type": "array", - "items": { - "$ref": "v1beta1.HTTPIngressPath" - }, - "description": "A collection of paths that map requests to backends." - } - } - }, - "v1beta1.HTTPIngressPath": { - "id": "v1beta1.HTTPIngressPath", - "description": "HTTPIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend.", - "required": [ - "backend" - ], - "properties": { - "path": { - "type": "string", - "description": "Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/'. If unspecified, the path defaults to a catch all sending traffic to the backend." - }, - "backend": { - "$ref": "v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - } - } - }, - "v1beta1.IngressStatus": { - "id": "v1beta1.IngressStatus", - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - } - }, - "v1.LoadBalancerStatus": { - "id": "v1.LoadBalancerStatus", - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "type": "array", - "items": { - "$ref": "v1.LoadBalancerIngress" - }, - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points." - } - } - }, - "v1.LoadBalancerIngress": { - "id": "v1.LoadBalancerIngress", - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "ip": { - "type": "string", - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)" - }, - "hostname": { - "type": "string", - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)" - } - } - }, - "v1beta1.NetworkPolicyList": { - "id": "v1beta1.NetworkPolicyList", - "description": "Network Policy List is a list of NetworkPolicy objects.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.NetworkPolicy" - }, - "description": "Items is a list of schema objects." - } - } - }, - "v1beta1.NetworkPolicy": { - "id": "v1beta1.NetworkPolicy", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.NetworkPolicySpec", - "description": "Specification of the desired behavior for this NetworkPolicy." - } - } - }, - "v1beta1.NetworkPolicySpec": { - "id": "v1beta1.NetworkPolicySpec", - "required": [ - "podSelector" - ], - "properties": { - "podSelector": { - "$ref": "v1.LabelSelector", - "description": "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace." - }, - "ingress": { - "type": "array", - "items": { - "$ref": "v1beta1.NetworkPolicyIngressRule" - }, - "description": "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if namespace.networkPolicy.ingress.isolation is undefined and cluster policy allows it, OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not affect ingress isolation. If this field is present and contains at least one rule, this policy allows any traffic which matches at least one of the ingress rules in this list." - } - } - }, - "v1beta1.NetworkPolicyIngressRule": { - "id": "v1beta1.NetworkPolicyIngressRule", - "description": "This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.", - "properties": { - "ports": { - "type": "array", - "items": { - "$ref": "v1beta1.NetworkPolicyPort" - }, - "description": "List of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is not provided, this rule matches all ports (traffic not restricted by port). If this field is empty, this rule matches no ports (no traffic matches). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list." - }, - "from": { - "type": "array", - "items": { - "$ref": "v1beta1.NetworkPolicyPeer" - }, - "description": "List of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is not provided, this rule matches all sources (traffic not restricted by source). If this field is empty, this rule matches no sources (no traffic matches). If this field is present and contains at least on item, this rule allows traffic only if the traffic matches at least one item in the from list." - } - } - }, - "v1beta1.NetworkPolicyPort": { - "id": "v1beta1.NetworkPolicyPort", - "properties": { - "protocol": { - "$ref": "v1.Protocol", - "description": "Optional. The protocol (TCP or UDP) which traffic must match. If not specified, this field defaults to TCP." - }, - "port": { - "type": "string", - "description": "If specified, the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched." - } - } - }, - "v1.Protocol": { - "id": "v1.Protocol", - "properties": {} - }, - "v1beta1.NetworkPolicyPeer": { - "id": "v1beta1.NetworkPolicyPeer", - "properties": { - "podSelector": { - "$ref": "v1.LabelSelector", - "description": "This is a label selector which selects Pods in this namespace. This field follows standard label selector semantics. If not provided, this selector selects no pods. If present but empty, this selector selects all pods in this namespace." - }, - "namespaceSelector": { - "$ref": "v1.LabelSelector", - "description": "Selects Namespaces using cluster scoped-labels. This matches all pods in all namespaces selected by this label selector. This field follows standard label selector semantics. If omitted, this selector selects no namespaces. If present but empty, this selector selects all namespaces." - } - } - }, - "v1beta1.PodSecurityPolicyList": { - "id": "v1beta1.PodSecurityPolicyList", - "description": "Pod Security Policy List is a list of PodSecurityPolicy objects.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.PodSecurityPolicy" - }, - "description": "Items is a list of schema objects." - } - } - }, - "v1beta1.PodSecurityPolicy": { - "id": "v1beta1.PodSecurityPolicy", - "description": "Pod Security Policy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.PodSecurityPolicySpec", - "description": "spec defines the policy enforced." - } - } - }, - "v1beta1.PodSecurityPolicySpec": { - "id": "v1beta1.PodSecurityPolicySpec", - "description": "Pod Security Policy Spec defines the policy enforced.", - "required": [ - "seLinux", - "runAsUser", - "supplementalGroups", - "fsGroup" - ], - "properties": { - "privileged": { - "type": "boolean", - "description": "privileged determines if a pod can request to be run as privileged." - }, - "defaultAddCapabilities": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capabiility in both DefaultAddCapabilities and RequiredDropCapabilities." - }, - "requiredDropCapabilities": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "RequiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added." - }, - "allowedCapabilities": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "AllowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities." - }, - "volumes": { - "type": "array", - "items": { - "$ref": "v1beta1.FSType" - }, - "description": "volumes is a white list of allowed volume plugins. Empty indicates that all plugins may be used." - }, - "hostNetwork": { - "type": "boolean", - "description": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec." - }, - "hostPorts": { - "type": "array", - "items": { - "$ref": "v1beta1.HostPortRange" - }, - "description": "hostPorts determines which host port ranges are allowed to be exposed." - }, - "hostPID": { - "type": "boolean", - "description": "hostPID determines if the policy allows the use of HostPID in the pod spec." - }, - "hostIPC": { - "type": "boolean", - "description": "hostIPC determines if the policy allows the use of HostIPC in the pod spec." - }, - "seLinux": { - "$ref": "v1beta1.SELinuxStrategyOptions", - "description": "seLinux is the strategy that will dictate the allowable labels that may be set." - }, - "runAsUser": { - "$ref": "v1beta1.RunAsUserStrategyOptions", - "description": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set." - }, - "supplementalGroups": { - "$ref": "v1beta1.SupplementalGroupsStrategyOptions", - "description": "SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext." - }, - "fsGroup": { - "$ref": "v1beta1.FSGroupStrategyOptions", - "description": "FSGroup is the strategy that will dictate what fs group is used by the SecurityContext." - }, - "readOnlyRootFilesystem": { - "type": "boolean", - "description": "ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to." - } - } - }, - "v1beta1.FSType": { - "id": "v1beta1.FSType", - "properties": {} - }, - "v1beta1.HostPortRange": { - "id": "v1beta1.HostPortRange", - "description": "Host Port Range defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", - "required": [ - "min", - "max" - ], - "properties": { - "min": { - "type": "integer", - "format": "int32", - "description": "min is the start of the range, inclusive." - }, - "max": { - "type": "integer", - "format": "int32", - "description": "max is the end of the range, inclusive." - } - } - }, - "v1beta1.SELinuxStrategyOptions": { - "id": "v1beta1.SELinuxStrategyOptions", - "description": "SELinux Strategy Options defines the strategy type and any options used to create the strategy.", - "required": [ - "rule" - ], - "properties": { - "rule": { - "type": "string", - "description": "type is the strategy that will dictate the allowable labels that may be set." - }, - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "seLinuxOptions required to run as; required for MustRunAs More info: http://releases.k8s.io/HEAD/docs/design/security_context.md#security-context" - } - } - }, - "v1beta1.RunAsUserStrategyOptions": { - "id": "v1beta1.RunAsUserStrategyOptions", - "description": "Run A sUser Strategy Options defines the strategy type and any options used to create the strategy.", - "required": [ - "rule" - ], - "properties": { - "rule": { - "type": "string", - "description": "Rule is the strategy that will dictate the allowable RunAsUser values that may be set." - }, - "ranges": { - "type": "array", - "items": { - "$ref": "v1beta1.IDRange" - }, - "description": "Ranges are the allowed ranges of uids that may be used." - } - } - }, - "v1beta1.IDRange": { - "id": "v1beta1.IDRange", - "description": "ID Range provides a min/max of an allowed range of IDs.", - "required": [ - "min", - "max" - ], - "properties": { - "min": { - "type": "integer", - "format": "int64", - "description": "Min is the start of the range, inclusive." - }, - "max": { - "type": "integer", - "format": "int64", - "description": "Max is the end of the range, inclusive." - } - } - }, - "v1beta1.SupplementalGroupsStrategyOptions": { - "id": "v1beta1.SupplementalGroupsStrategyOptions", - "description": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "rule": { - "type": "string", - "description": "Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext." - }, - "ranges": { - "type": "array", - "items": { - "$ref": "v1beta1.IDRange" - }, - "description": "Ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end." - } - } - }, - "v1beta1.FSGroupStrategyOptions": { - "id": "v1beta1.FSGroupStrategyOptions", - "description": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "rule": { - "type": "string", - "description": "Rule is the strategy that will dictate what FSGroup is used in the SecurityContext." - }, - "ranges": { - "type": "array", - "items": { - "$ref": "v1beta1.IDRange" - }, - "description": "Ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end." - } - } - }, - "v1beta1.ReplicaSetList": { - "id": "v1beta1.ReplicaSetList", - "description": "ReplicaSetList is a collection of ReplicaSets.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.ReplicaSet" - }, - "description": "List of ReplicaSets. More info: http://kubernetes.io/docs/user-guide/replication-controller" - } - } - }, - "v1beta1.ReplicaSet": { - "id": "v1beta1.ReplicaSet", - "description": "ReplicaSet represents the configuration of a ReplicaSet.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.ReplicaSetSpec", - "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1beta1.ReplicaSetStatus", - "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1beta1.ReplicaSetSpec": { - "id": "v1beta1.ReplicaSetSpec", - "description": "ReplicaSetSpec is the specification of a ReplicaSet.", - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: http://kubernetes.io/docs/user-guide/replication-controller#what-is-a-replication-controller" - }, - "minReadySeconds": { - "type": "integer", - "format": "int32", - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)" - }, - "selector": { - "$ref": "v1.LabelSelector", - "description": "Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors" - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: http://kubernetes.io/docs/user-guide/replication-controller#pod-template" - } - } - }, - "v1beta1.ReplicaSetStatus": { - "id": "v1beta1.ReplicaSetStatus", - "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "Replicas is the most recently oberved number of replicas. More info: http://kubernetes.io/docs/user-guide/replication-controller#what-is-a-replication-controller" - }, - "fullyLabeledReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of pods that have labels matching the labels of the pod template of the replicaset." - }, - "readyReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of ready replicas for this replica set." - }, - "availableReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set." - }, - "observedGeneration": { - "type": "integer", - "format": "int64", - "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet." - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta1.ReplicaSetCondition" - }, - "description": "Represents the latest available observations of a replica set's current state." - } - } - }, - "v1beta1.ReplicaSetCondition": { - "id": "v1beta1.ReplicaSetCondition", - "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type of replica set condition." - }, - "status": { - "type": "string", - "description": "Status of the condition, one of True, False, Unknown." - }, - "lastTransitionTime": { - "type": "string", - "description": "The last time the condition transitioned from one status to another." - }, - "reason": { - "type": "string", - "description": "The reason for the condition's last transition." - }, - "message": { - "type": "string", - "description": "A human readable message indicating details about the transition." - } - } - }, - "v1beta1.ThirdPartyResourceList": { - "id": "v1beta1.ThirdPartyResourceList", - "description": "ThirdPartyResourceList is a list of ThirdPartyResources.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata." - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.ThirdPartyResource" - }, - "description": "Items is the list of ThirdPartyResources." - } - } - }, - "v1beta1.ThirdPartyResource": { - "id": "v1beta1.ThirdPartyResource", - "description": "A ThirdPartyResource is a generic representation of a resource, it is used by add-ons and plugins to add new resource types to the API. It consists of one or more Versions of the api.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object metadata" - }, - "description": { - "type": "string", - "description": "Description is the description of this object." - }, - "versions": { - "type": "array", - "items": { - "$ref": "v1beta1.APIVersion" - }, - "description": "Versions are versions for this third party object" - } - } - }, - "v1beta1.APIVersion": { - "id": "v1beta1.APIVersion", - "description": "An APIVersion represents a single concrete version of an object model.", - "properties": { - "name": { - "type": "string", - "description": "Name of this version (e.g. 'v1')." - } - } - }, - "v1.APIResourceList": { - "id": "v1.APIResourceList", - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "required": [ - "groupVersion", - "resources" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "groupVersion": { - "type": "string", - "description": "groupVersion is the group and version this APIResourceList is for." - }, - "resources": { - "type": "array", - "items": { - "$ref": "v1.APIResource" - }, - "description": "resources contains the name of the resources and if they are namespaced." - } - } - }, - "v1.APIResource": { - "id": "v1.APIResource", - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "required": [ - "name", - "namespaced", - "kind", - "verbs" - ], - "properties": { - "name": { - "type": "string", - "description": "name is the name of the resource." - }, - "namespaced": { - "type": "boolean", - "description": "namespaced indicates if a resource is namespaced or not." - }, - "kind": { - "type": "string", - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')" - }, - "verbs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)" - }, - "shortNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "shortNames is a list of suggested short names of the resource." - } - } - } - } - } \ No newline at end of file diff --git a/k8s/.kube/schema/v1.6.6/schema629255130 b/k8s/.kube/schema/v1.6.6/schema629255130 deleted file mode 100644 index 1fb315f47a..0000000000 --- a/k8s/.kube/schema/v1.6.6/schema629255130 +++ /dev/null @@ -1,20838 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "v1", - "basePath": "https://10.240.255.15:443", - "resourcePath": "/api/v1", - "info": { - "title": "", - "description": "" - }, - "apis": [ - { - "path": "/api/v1/namespaces/{namespace}/bindings", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Binding", - "method": "POST", - "summary": "create a Binding", - "nickname": "createNamespacedBinding", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Binding", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Binding" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/componentstatuses", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ComponentStatusList", - "method": "GET", - "summary": "list objects of kind ComponentStatus", - "nickname": "listComponentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ComponentStatusList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/componentstatuses/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ComponentStatus", - "method": "GET", - "summary": "read the specified ComponentStatus", - "nickname": "readComponentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ComponentStatus", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ComponentStatus" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/configmaps", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ConfigMapList", - "method": "GET", - "summary": "list or watch objects of kind ConfigMap", - "nickname": "listNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMapList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ConfigMap", - "method": "POST", - "summary": "create a ConfigMap", - "nickname": "createNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ConfigMap", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ConfigMap", - "nickname": "deletecollectionNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/configmaps", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ConfigMap", - "nickname": "watchNamespacedConfigMapList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/configmaps/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ConfigMap", - "method": "GET", - "summary": "read the specified ConfigMap", - "nickname": "readNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ConfigMap", - "method": "PUT", - "summary": "replace the specified ConfigMap", - "nickname": "replaceNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ConfigMap", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ConfigMap", - "method": "PATCH", - "summary": "partially update the specified ConfigMap", - "nickname": "patchNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ConfigMap", - "nickname": "deleteNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/configmaps/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ConfigMap", - "nickname": "watchNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/configmaps", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ConfigMapList", - "method": "GET", - "summary": "list or watch objects of kind ConfigMap", - "nickname": "listConfigMapForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMapList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/configmaps", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ConfigMap", - "nickname": "watchConfigMapListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/endpoints", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.EndpointsList", - "method": "GET", - "summary": "list or watch objects of kind Endpoints", - "nickname": "listNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.EndpointsList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Endpoints", - "method": "POST", - "summary": "create Endpoints", - "nickname": "createNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Endpoints", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Endpoints" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Endpoints", - "nickname": "deletecollectionNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/endpoints", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Endpoints", - "nickname": "watchNamespacedEndpointsList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/endpoints/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Endpoints", - "method": "GET", - "summary": "read the specified Endpoints", - "nickname": "readNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Endpoints" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Endpoints", - "method": "PUT", - "summary": "replace the specified Endpoints", - "nickname": "replaceNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Endpoints", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Endpoints" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Endpoints", - "method": "PATCH", - "summary": "partially update the specified Endpoints", - "nickname": "patchNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Endpoints" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete Endpoints", - "nickname": "deleteNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/endpoints/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Endpoints", - "nickname": "watchNamespacedEndpoints", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Endpoints", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/endpoints", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.EndpointsList", - "method": "GET", - "summary": "list or watch objects of kind Endpoints", - "nickname": "listEndpointsForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.EndpointsList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/endpoints", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Endpoints", - "nickname": "watchEndpointsListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/events", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.EventList", - "method": "GET", - "summary": "list or watch objects of kind Event", - "nickname": "listNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.EventList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Event", - "method": "POST", - "summary": "create an Event", - "nickname": "createNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Event", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Event", - "nickname": "deletecollectionNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/events", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Event", - "nickname": "watchNamespacedEventList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/events/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Event", - "method": "GET", - "summary": "read the specified Event", - "nickname": "readNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Event", - "method": "PUT", - "summary": "replace the specified Event", - "nickname": "replaceNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Event", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Event", - "method": "PATCH", - "summary": "partially update the specified Event", - "nickname": "patchNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete an Event", - "nickname": "deleteNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/events/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Event", - "nickname": "watchNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/events", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.EventList", - "method": "GET", - "summary": "list or watch objects of kind Event", - "nickname": "listEventForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.EventList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/events", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Event", - "nickname": "watchEventListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/limitranges", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.LimitRangeList", - "method": "GET", - "summary": "list or watch objects of kind LimitRange", - "nickname": "listNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRangeList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.LimitRange", - "method": "POST", - "summary": "create a LimitRange", - "nickname": "createNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.LimitRange", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRange" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of LimitRange", - "nickname": "deletecollectionNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/limitranges", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of LimitRange", - "nickname": "watchNamespacedLimitRangeList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/limitranges/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.LimitRange", - "method": "GET", - "summary": "read the specified LimitRange", - "nickname": "readNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRange" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.LimitRange", - "method": "PUT", - "summary": "replace the specified LimitRange", - "nickname": "replaceNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.LimitRange", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRange" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.LimitRange", - "method": "PATCH", - "summary": "partially update the specified LimitRange", - "nickname": "patchNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRange" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a LimitRange", - "nickname": "deleteNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/limitranges/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind LimitRange", - "nickname": "watchNamespacedLimitRange", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the LimitRange", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/limitranges", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.LimitRangeList", - "method": "GET", - "summary": "list or watch objects of kind LimitRange", - "nickname": "listLimitRangeForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.LimitRangeList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/limitranges", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of LimitRange", - "nickname": "watchLimitRangeListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.NamespaceList", - "method": "GET", - "summary": "list or watch objects of kind Namespace", - "nickname": "listNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.NamespaceList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "POST", - "summary": "create a Namespace", - "nickname": "createNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Namespace", - "nickname": "watchNamespaceList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Namespace", - "method": "GET", - "summary": "read the specified Namespace", - "nickname": "readNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "PUT", - "summary": "replace the specified Namespace", - "nickname": "replaceNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "PATCH", - "summary": "partially update the specified Namespace", - "nickname": "patchNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Namespace", - "nickname": "deleteNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Namespace", - "nickname": "watchNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{name}/finalize", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Namespace", - "method": "PUT", - "summary": "replace finalize of the specified Namespace", - "nickname": "replaceNamespaceFinalize", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Namespace", - "method": "GET", - "summary": "read status of the specified Namespace", - "nickname": "readNamespaceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "PUT", - "summary": "replace status of the specified Namespace", - "nickname": "replaceNamespaceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "PATCH", - "summary": "partially update status of the specified Namespace", - "nickname": "patchNamespaceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/nodes", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.NodeList", - "method": "GET", - "summary": "list or watch objects of kind Node", - "nickname": "listNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.NodeList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Node", - "method": "POST", - "summary": "create a Node", - "nickname": "createNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Node", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Node", - "nickname": "deletecollectionNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/nodes", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Node", - "nickname": "watchNodeList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/nodes/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Node", - "method": "GET", - "summary": "read the specified Node", - "nickname": "readNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Node", - "method": "PUT", - "summary": "replace the specified Node", - "nickname": "replaceNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Node", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Node", - "method": "PATCH", - "summary": "partially update the specified Node", - "nickname": "patchNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Node", - "nickname": "deleteNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/nodes/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Node", - "nickname": "watchNode", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/proxy/nodes/{name}/{path}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Node", - "nickname": "proxyGETNodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Node", - "nickname": "proxyPUTNodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Node", - "nickname": "proxyPOSTNodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PATCH", - "summary": "proxy PATCH requests to Node", - "nickname": "proxyPATCHNodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Node", - "nickname": "proxyDELETENodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Node", - "nickname": "proxyHEADNodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "proxy OPTIONS requests to Node", - "nickname": "proxyOPTIONSNodeWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/proxy/nodes/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Node", - "nickname": "proxyGETNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Node", - "nickname": "proxyPUTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Node", - "nickname": "proxyPOSTNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PATCH", - "summary": "proxy PATCH requests to Node", - "nickname": "proxyPATCHNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Node", - "nickname": "proxyDELETENode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Node", - "nickname": "proxyHEADNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "proxy OPTIONS requests to Node", - "nickname": "proxyOPTIONSNode", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/nodes/{name}/proxy", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to proxy of Node", - "nickname": "connectGetNodeProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to proxy of Node", - "nickname": "connectPostNodeProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to proxy of Node", - "nickname": "connectPutNodeProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to proxy of Node", - "nickname": "connectDeleteNodeProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to proxy of Node", - "nickname": "connectHeadNodeProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to proxy of Node", - "nickname": "connectOptionsNodeProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/nodes/{name}/proxy/{path}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to proxy of Node", - "nickname": "connectGetNodeProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to proxy of Node", - "nickname": "connectPostNodeProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to proxy of Node", - "nickname": "connectPutNodeProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to proxy of Node", - "nickname": "connectDeleteNodeProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to proxy of Node", - "nickname": "connectHeadNodeProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to proxy of Node", - "nickname": "connectOptionsNodeProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to node.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/nodes/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Node", - "method": "GET", - "summary": "read status of the specified Node", - "nickname": "readNodeStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Node", - "method": "PUT", - "summary": "replace status of the specified Node", - "nickname": "replaceNodeStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Node", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Node", - "method": "PATCH", - "summary": "partially update status of the specified Node", - "nickname": "patchNodeStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Node", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Node" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/persistentvolumeclaims", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolumeClaimList", - "method": "GET", - "summary": "list or watch objects of kind PersistentVolumeClaim", - "nickname": "listNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaimList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolumeClaim", - "method": "POST", - "summary": "create a PersistentVolumeClaim", - "nickname": "createNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of PersistentVolumeClaim", - "nickname": "deletecollectionNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PersistentVolumeClaim", - "nickname": "watchNamespacedPersistentVolumeClaimList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolumeClaim", - "method": "GET", - "summary": "read the specified PersistentVolumeClaim", - "nickname": "readNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolumeClaim", - "method": "PUT", - "summary": "replace the specified PersistentVolumeClaim", - "nickname": "replaceNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolumeClaim", - "method": "PATCH", - "summary": "partially update the specified PersistentVolumeClaim", - "nickname": "patchNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a PersistentVolumeClaim", - "nickname": "deleteNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind PersistentVolumeClaim", - "nickname": "watchNamespacedPersistentVolumeClaim", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/persistentvolumeclaims", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolumeClaimList", - "method": "GET", - "summary": "list or watch objects of kind PersistentVolumeClaim", - "nickname": "listPersistentVolumeClaimForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaimList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/persistentvolumeclaims", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PersistentVolumeClaim", - "nickname": "watchPersistentVolumeClaimListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolumeClaim", - "method": "GET", - "summary": "read status of the specified PersistentVolumeClaim", - "nickname": "readNamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolumeClaim", - "method": "PUT", - "summary": "replace status of the specified PersistentVolumeClaim", - "nickname": "replaceNamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolumeClaim", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolumeClaim", - "method": "PATCH", - "summary": "partially update status of the specified PersistentVolumeClaim", - "nickname": "patchNamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolumeClaim", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeClaim" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/persistentvolumes", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolumeList", - "method": "GET", - "summary": "list or watch objects of kind PersistentVolume", - "nickname": "listPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolumeList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolume", - "method": "POST", - "summary": "create a PersistentVolume", - "nickname": "createPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolume", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of PersistentVolume", - "nickname": "deletecollectionPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/persistentvolumes", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PersistentVolume", - "nickname": "watchPersistentVolumeList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/persistentvolumes/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolume", - "method": "GET", - "summary": "read the specified PersistentVolume", - "nickname": "readPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolume", - "method": "PUT", - "summary": "replace the specified PersistentVolume", - "nickname": "replacePersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolume", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolume", - "method": "PATCH", - "summary": "partially update the specified PersistentVolume", - "nickname": "patchPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a PersistentVolume", - "nickname": "deletePersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/persistentvolumes/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind PersistentVolume", - "nickname": "watchPersistentVolume", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/persistentvolumes/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PersistentVolume", - "method": "GET", - "summary": "read status of the specified PersistentVolume", - "nickname": "readPersistentVolumeStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolume", - "method": "PUT", - "summary": "replace status of the specified PersistentVolume", - "nickname": "replacePersistentVolumeStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PersistentVolume", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PersistentVolume", - "method": "PATCH", - "summary": "partially update status of the specified PersistentVolume", - "nickname": "patchPersistentVolumeStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PersistentVolume", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PersistentVolume" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PodList", - "method": "GET", - "summary": "list or watch objects of kind Pod", - "nickname": "listNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Pod", - "method": "POST", - "summary": "create a Pod", - "nickname": "createNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Pod", - "nickname": "deletecollectionNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/pods", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Pod", - "nickname": "watchNamespacedPodList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Pod", - "method": "GET", - "summary": "read the specified Pod", - "nickname": "readNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Pod", - "method": "PUT", - "summary": "replace the specified Pod", - "nickname": "replaceNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Pod", - "method": "PATCH", - "summary": "partially update the specified Pod", - "nickname": "patchNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Pod", - "nickname": "deleteNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/pods/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Pod", - "nickname": "watchNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/proxy/namespaces/{namespace}/pods/{name}/{path}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Pod", - "nickname": "proxyGETNamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Pod", - "nickname": "proxyPUTNamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Pod", - "nickname": "proxyPOSTNamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PATCH", - "summary": "proxy PATCH requests to Pod", - "nickname": "proxyPATCHNamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Pod", - "nickname": "proxyDELETENamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Pod", - "nickname": "proxyHEADNamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "proxy OPTIONS requests to Pod", - "nickname": "proxyOPTIONSNamespacedPodWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/proxy/namespaces/{namespace}/pods/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Pod", - "nickname": "proxyGETNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Pod", - "nickname": "proxyPUTNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Pod", - "nickname": "proxyPOSTNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PATCH", - "summary": "proxy PATCH requests to Pod", - "nickname": "proxyPATCHNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Pod", - "nickname": "proxyDELETENamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Pod", - "nickname": "proxyHEADNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "proxy OPTIONS requests to Pod", - "nickname": "proxyOPTIONSNamespacedPod", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/pods", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PodList", - "method": "GET", - "summary": "list or watch objects of kind Pod", - "nickname": "listPodForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/pods", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Pod", - "nickname": "watchPodListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/attach", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to attach of Pod", - "nickname": "connectGetNamespacedPodAttach", - "parameters": [ - { - "type": "boolean", - "paramType": "query", - "name": "stdin", - "description": "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stdout", - "description": "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stderr", - "description": "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "tty", - "description": "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "container", - "description": "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to attach of Pod", - "nickname": "connectPostNamespacedPodAttach", - "parameters": [ - { - "type": "boolean", - "paramType": "query", - "name": "stdin", - "description": "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stdout", - "description": "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stderr", - "description": "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "tty", - "description": "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "container", - "description": "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/binding", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Binding", - "method": "POST", - "summary": "create binding of a Binding", - "nickname": "createNamespacedBindingBinding", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Binding", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Binding", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Binding" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/eviction", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1beta1.Eviction", - "method": "POST", - "summary": "create eviction of an Eviction", - "nickname": "createNamespacedEvictionEviction", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Eviction", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Eviction", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Eviction" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/exec", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to exec of Pod", - "nickname": "connectGetNamespacedPodExec", - "parameters": [ - { - "type": "boolean", - "paramType": "query", - "name": "stdin", - "description": "Redirect the standard input stream of the pod for this call. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stdout", - "description": "Redirect the standard output stream of the pod for this call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stderr", - "description": "Redirect the standard error stream of the pod for this call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "tty", - "description": "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "container", - "description": "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "command", - "description": "Command is the remote command to execute. argv array. Not executed within a shell.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to exec of Pod", - "nickname": "connectPostNamespacedPodExec", - "parameters": [ - { - "type": "boolean", - "paramType": "query", - "name": "stdin", - "description": "Redirect the standard input stream of the pod for this call. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stdout", - "description": "Redirect the standard output stream of the pod for this call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "stderr", - "description": "Redirect the standard error stream of the pod for this call. Defaults to true.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "tty", - "description": "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "container", - "description": "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "command", - "description": "Command is the remote command to execute. argv array. Not executed within a shell.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/log", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "read log of the specified Pod", - "nickname": "readNamespacedPodLog", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "container", - "description": "The container for which to stream logs. Defaults to only container if there is one container in the pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "follow", - "description": "Follow the log stream of the pod. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "previous", - "description": "Return previous terminated container logs. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "sinceSeconds", - "description": "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "timestamps", - "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "tailLines", - "description": "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limitBytes", - "description": "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "string" - } - ], - "produces": [ - "text/plain", - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/portforward", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to portforward of Pod", - "nickname": "connectGetNamespacedPodPortforward", - "parameters": [ - { - "type": "integer", - "paramType": "query", - "name": "ports", - "description": "List of ports to forward Required when using WebSockets", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to portforward of Pod", - "nickname": "connectPostNamespacedPodPortforward", - "parameters": [ - { - "type": "integer", - "paramType": "query", - "name": "ports", - "description": "List of ports to forward Required when using WebSockets", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/proxy", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to proxy of Pod", - "nickname": "connectGetNamespacedPodProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to proxy of Pod", - "nickname": "connectPostNamespacedPodProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to proxy of Pod", - "nickname": "connectPutNamespacedPodProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to proxy of Pod", - "nickname": "connectDeleteNamespacedPodProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to proxy of Pod", - "nickname": "connectHeadNamespacedPodProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to proxy of Pod", - "nickname": "connectOptionsNamespacedPodProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to proxy of Pod", - "nickname": "connectGetNamespacedPodProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to proxy of Pod", - "nickname": "connectPostNamespacedPodProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to proxy of Pod", - "nickname": "connectPutNamespacedPodProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to proxy of Pod", - "nickname": "connectDeleteNamespacedPodProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to proxy of Pod", - "nickname": "connectHeadNamespacedPodProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to proxy of Pod", - "nickname": "connectOptionsNamespacedPodProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the URL path to use for the current proxy request to pod.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/pods/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Pod", - "method": "GET", - "summary": "read status of the specified Pod", - "nickname": "readNamespacedPodStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Pod", - "method": "PUT", - "summary": "replace status of the specified Pod", - "nickname": "replaceNamespacedPodStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Pod", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Pod", - "method": "PATCH", - "summary": "partially update status of the specified Pod", - "nickname": "patchNamespacedPodStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Pod", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Pod" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/podtemplates", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PodTemplateList", - "method": "GET", - "summary": "list or watch objects of kind PodTemplate", - "nickname": "listNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplateList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PodTemplate", - "method": "POST", - "summary": "create a PodTemplate", - "nickname": "createNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PodTemplate", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplate" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of PodTemplate", - "nickname": "deletecollectionNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/podtemplates", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PodTemplate", - "nickname": "watchNamespacedPodTemplateList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/podtemplates/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PodTemplate", - "method": "GET", - "summary": "read the specified PodTemplate", - "nickname": "readNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplate" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PodTemplate", - "method": "PUT", - "summary": "replace the specified PodTemplate", - "nickname": "replaceNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.PodTemplate", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplate" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.PodTemplate", - "method": "PATCH", - "summary": "partially update the specified PodTemplate", - "nickname": "patchNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplate" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a PodTemplate", - "nickname": "deleteNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/podtemplates/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind PodTemplate", - "nickname": "watchNamespacedPodTemplate", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the PodTemplate", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/podtemplates", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.PodTemplateList", - "method": "GET", - "summary": "list or watch objects of kind PodTemplate", - "nickname": "listPodTemplateForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.PodTemplateList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/podtemplates", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of PodTemplate", - "nickname": "watchPodTemplateListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/replicationcontrollers", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ReplicationControllerList", - "method": "GET", - "summary": "list or watch objects of kind ReplicationController", - "nickname": "listNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationControllerList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ReplicationController", - "method": "POST", - "summary": "create a ReplicationController", - "nickname": "createNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ReplicationController", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ReplicationController", - "nickname": "deletecollectionNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/replicationcontrollers", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ReplicationController", - "nickname": "watchNamespacedReplicationControllerList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ReplicationController", - "method": "GET", - "summary": "read the specified ReplicationController", - "nickname": "readNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ReplicationController", - "method": "PUT", - "summary": "replace the specified ReplicationController", - "nickname": "replaceNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ReplicationController", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ReplicationController", - "method": "PATCH", - "summary": "partially update the specified ReplicationController", - "nickname": "patchNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ReplicationController", - "nickname": "deleteNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ReplicationController", - "nickname": "watchNamespacedReplicationController", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/replicationcontrollers", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ReplicationControllerList", - "method": "GET", - "summary": "list or watch objects of kind ReplicationController", - "nickname": "listReplicationControllerForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationControllerList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/replicationcontrollers", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ReplicationController", - "nickname": "watchReplicationControllerListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Scale", - "method": "GET", - "summary": "read scale of the specified Scale", - "nickname": "readNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Scale", - "method": "PUT", - "summary": "replace scale of the specified Scale", - "nickname": "replaceNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Scale", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Scale", - "method": "PATCH", - "summary": "partially update scale of the specified Scale", - "nickname": "patchNamespacedScaleScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ReplicationController", - "method": "GET", - "summary": "read status of the specified ReplicationController", - "nickname": "readNamespacedReplicationControllerStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ReplicationController", - "method": "PUT", - "summary": "replace status of the specified ReplicationController", - "nickname": "replaceNamespacedReplicationControllerStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ReplicationController", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ReplicationController", - "method": "PATCH", - "summary": "partially update status of the specified ReplicationController", - "nickname": "patchNamespacedReplicationControllerStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicationController", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ReplicationController" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/resourcequotas", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ResourceQuotaList", - "method": "GET", - "summary": "list or watch objects of kind ResourceQuota", - "nickname": "listNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuotaList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ResourceQuota", - "method": "POST", - "summary": "create a ResourceQuota", - "nickname": "createNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ResourceQuota", - "nickname": "deletecollectionNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/resourcequotas", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ResourceQuota", - "nickname": "watchNamespacedResourceQuotaList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/resourcequotas/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ResourceQuota", - "method": "GET", - "summary": "read the specified ResourceQuota", - "nickname": "readNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ResourceQuota", - "method": "PUT", - "summary": "replace the specified ResourceQuota", - "nickname": "replaceNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ResourceQuota", - "method": "PATCH", - "summary": "partially update the specified ResourceQuota", - "nickname": "patchNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ResourceQuota", - "nickname": "deleteNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ResourceQuota", - "nickname": "watchNamespacedResourceQuota", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/resourcequotas", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ResourceQuotaList", - "method": "GET", - "summary": "list or watch objects of kind ResourceQuota", - "nickname": "listResourceQuotaForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuotaList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/resourcequotas", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ResourceQuota", - "nickname": "watchResourceQuotaListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/resourcequotas/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ResourceQuota", - "method": "GET", - "summary": "read status of the specified ResourceQuota", - "nickname": "readNamespacedResourceQuotaStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ResourceQuota", - "method": "PUT", - "summary": "replace status of the specified ResourceQuota", - "nickname": "replaceNamespacedResourceQuotaStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ResourceQuota", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ResourceQuota", - "method": "PATCH", - "summary": "partially update status of the specified ResourceQuota", - "nickname": "patchNamespacedResourceQuotaStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ResourceQuota", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ResourceQuota" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/secrets", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.SecretList", - "method": "GET", - "summary": "list or watch objects of kind Secret", - "nickname": "listNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.SecretList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Secret", - "method": "POST", - "summary": "create a Secret", - "nickname": "createNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Secret", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Secret", - "nickname": "deletecollectionNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/secrets", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Secret", - "nickname": "watchNamespacedSecretList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/secrets/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Secret", - "method": "GET", - "summary": "read the specified Secret", - "nickname": "readNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Secret", - "method": "PUT", - "summary": "replace the specified Secret", - "nickname": "replaceNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Secret", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Secret", - "method": "PATCH", - "summary": "partially update the specified Secret", - "nickname": "patchNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Secret", - "nickname": "deleteNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/secrets/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Secret", - "nickname": "watchNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/secrets", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.SecretList", - "method": "GET", - "summary": "list or watch objects of kind Secret", - "nickname": "listSecretForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.SecretList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/secrets", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Secret", - "nickname": "watchSecretListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/serviceaccounts", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ServiceAccountList", - "method": "GET", - "summary": "list or watch objects of kind ServiceAccount", - "nickname": "listNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccountList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ServiceAccount", - "method": "POST", - "summary": "create a ServiceAccount", - "nickname": "createNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ServiceAccount", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccount" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ServiceAccount", - "nickname": "deletecollectionNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/serviceaccounts", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ServiceAccount", - "nickname": "watchNamespacedServiceAccountList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/serviceaccounts/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ServiceAccount", - "method": "GET", - "summary": "read the specified ServiceAccount", - "nickname": "readNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccount" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ServiceAccount", - "method": "PUT", - "summary": "replace the specified ServiceAccount", - "nickname": "replaceNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ServiceAccount", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccount" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ServiceAccount", - "method": "PATCH", - "summary": "partially update the specified ServiceAccount", - "nickname": "patchNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccount" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ServiceAccount", - "nickname": "deleteNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ServiceAccount", - "nickname": "watchNamespacedServiceAccount", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ServiceAccount", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/serviceaccounts", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ServiceAccountList", - "method": "GET", - "summary": "list or watch objects of kind ServiceAccount", - "nickname": "listServiceAccountForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceAccountList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/serviceaccounts", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ServiceAccount", - "nickname": "watchServiceAccountListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ServiceList", - "method": "GET", - "summary": "list or watch objects of kind Service", - "nickname": "listNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "POST", - "summary": "create a Service", - "nickname": "createNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/services", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Service", - "nickname": "watchNamespacedServiceList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Service", - "method": "GET", - "summary": "read the specified Service", - "nickname": "readNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "PUT", - "summary": "replace the specified Service", - "nickname": "replaceNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "PATCH", - "summary": "partially update the specified Service", - "nickname": "patchNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Service", - "nickname": "deleteNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/services/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Service", - "nickname": "watchNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/proxy/namespaces/{namespace}/services/{name}/{path}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Service", - "nickname": "proxyGETNamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Service", - "nickname": "proxyPUTNamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Service", - "nickname": "proxyPOSTNamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PATCH", - "summary": "proxy PATCH requests to Service", - "nickname": "proxyPATCHNamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Service", - "nickname": "proxyDELETENamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Service", - "nickname": "proxyHEADNamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "proxy OPTIONS requests to Service", - "nickname": "proxyOPTIONSNamespacedServiceWithPath", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/proxy/namespaces/{namespace}/services/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "proxy GET requests to Service", - "nickname": "proxyGETNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "proxy PUT requests to Service", - "nickname": "proxyPUTNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "proxy POST requests to Service", - "nickname": "proxyPOSTNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PATCH", - "summary": "proxy PATCH requests to Service", - "nickname": "proxyPATCHNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "proxy DELETE requests to Service", - "nickname": "proxyDELETENamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "proxy HEAD requests to Service", - "nickname": "proxyHEADNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "proxy OPTIONS requests to Service", - "nickname": "proxyOPTIONSNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/services", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ServiceList", - "method": "GET", - "summary": "list or watch objects of kind Service", - "nickname": "listServiceForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/services", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Service", - "nickname": "watchServiceListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services/{name}/proxy", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to proxy of Service", - "nickname": "connectGetNamespacedServiceProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to proxy of Service", - "nickname": "connectPostNamespacedServiceProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to proxy of Service", - "nickname": "connectPutNamespacedServiceProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to proxy of Service", - "nickname": "connectDeleteNamespacedServiceProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to proxy of Service", - "nickname": "connectHeadNamespacedServiceProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to proxy of Service", - "nickname": "connectOptionsNamespacedServiceProxy", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}", - "description": "API at /api/v1", - "operations": [ - { - "type": "string", - "method": "GET", - "summary": "connect GET requests to proxy of Service", - "nickname": "connectGetNamespacedServiceProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "POST", - "summary": "connect POST requests to proxy of Service", - "nickname": "connectPostNamespacedServiceProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "PUT", - "summary": "connect PUT requests to proxy of Service", - "nickname": "connectPutNamespacedServiceProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "DELETE", - "summary": "connect DELETE requests to proxy of Service", - "nickname": "connectDeleteNamespacedServiceProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "HEAD", - "summary": "connect HEAD requests to proxy of Service", - "nickname": "connectHeadNamespacedServiceProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "string", - "method": "OPTIONS", - "summary": "connect OPTIONS requests to proxy of Service", - "nickname": "connectOptionsNamespacedServiceProxyWithPath", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "path", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "path", - "description": "path to the resource", - "required": true, - "allowMultiple": false - } - ], - "produces": [ - "*/*" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Service", - "method": "GET", - "summary": "read status of the specified Service", - "nickname": "readNamespacedServiceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "PUT", - "summary": "replace status of the specified Service", - "nickname": "replaceNamespacedServiceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "PATCH", - "summary": "partially update status of the specified Service", - "nickname": "patchNamespacedServiceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.APIResourceList", - "method": "GET", - "summary": "get available resources", - "nickname": "getAPIResources", - "parameters": [], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ] - } - ] - } - ], - "models": { - "v1.Binding": { - "id": "v1.Binding", - "description": "Binding ties one object to another. For example, a pod is bound to a node by a scheduler.", - "required": [ - "target" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "target": { - "$ref": "v1.ObjectReference", - "description": "The target object that you want to bind to the standard object." - } - } - }, - "v1.ObjectMeta": { - "id": "v1.ObjectMeta", - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "name": { - "type": "string", - "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "generateName": { - "type": "string", - "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#idempotency" - }, - "namespace": { - "type": "string", - "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" - }, - "selfLink": { - "type": "string", - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." - }, - "uid": { - "type": "string", - "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "resourceVersion": { - "type": "string", - "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency" - }, - "generation": { - "type": "integer", - "format": "int64", - "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only." - }, - "creationTimestamp": { - "type": "string", - "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "deletionTimestamp": { - "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "deletionGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only." - }, - "labels": { - "type": "object", - "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels" - }, - "annotations": { - "type": "object", - "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations" - }, - "ownerReferences": { - "type": "array", - "items": { - "$ref": "v1.OwnerReference" - }, - "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller." - }, - "finalizers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed." - }, - "clusterName": { - "type": "string", - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request." - } - } - }, - "v1.OwnerReference": { - "id": "v1.OwnerReference", - "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "API version of the referent." - }, - "kind": { - "type": "string", - "description": "Kind of the referent. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "uid": { - "type": "string", - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "controller": { - "type": "boolean", - "description": "If true, this reference points to the managing controller." - }, - "blockOwnerDeletion": { - "type": "boolean", - "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned." - } - } - }, - "v1.ObjectReference": { - "id": "v1.ObjectReference", - "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", - "properties": { - "kind": { - "type": "string", - "description": "Kind of the referent. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "namespace": { - "type": "string", - "description": "Namespace of the referent. More info: http://kubernetes.io/docs/user-guide/namespaces" - }, - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "uid": { - "type": "string", - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "apiVersion": { - "type": "string", - "description": "API version of the referent." - }, - "resourceVersion": { - "type": "string", - "description": "Specific resourceVersion to which this reference is made, if any. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency" - }, - "fieldPath": { - "type": "string", - "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object." - } - } - }, - "v1.ComponentStatusList": { - "id": "v1.ComponentStatusList", - "description": "Status of all the conditions for the component as a list of ComponentStatus objects.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.ComponentStatus" - }, - "description": "List of ComponentStatus objects." - } - } - }, - "v1.ListMeta": { - "id": "v1.ListMeta", - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "selfLink": { - "type": "string", - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." - }, - "resourceVersion": { - "type": "string", - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency" - } - } - }, - "v1.ComponentStatus": { - "id": "v1.ComponentStatus", - "description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1.ComponentCondition" - }, - "description": "List of component conditions observed" - } - } - }, - "v1.ComponentCondition": { - "id": "v1.ComponentCondition", - "description": "Information about the condition of a component.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type of condition for a component. Valid value: \"Healthy\"" - }, - "status": { - "type": "string", - "description": "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\"." - }, - "message": { - "type": "string", - "description": "Message about the condition for a component. For example, information about a health check." - }, - "error": { - "type": "string", - "description": "Condition error code for a component. For example, a health check error code." - } - } - }, - "v1.ConfigMapList": { - "id": "v1.ConfigMapList", - "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.ConfigMap" - }, - "description": "Items is the list of ConfigMaps." - } - } - }, - "v1.ConfigMap": { - "id": "v1.ConfigMap", - "description": "ConfigMap holds configuration data for pods to consume.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "data": { - "type": "object", - "description": "Data contains the configuration data. Each key must be a valid DNS_SUBDOMAIN with an optional leading dot." - } - } - }, - "v1.Status": { - "id": "v1.Status", - "description": "Status is a return value for calls that don't return other objects.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "status": { - "type": "string", - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "message": { - "type": "string", - "description": "A human-readable description of the status of this operation." - }, - "reason": { - "type": "string", - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it." - }, - "details": { - "$ref": "v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." - }, - "code": { - "type": "integer", - "format": "int32", - "description": "Suggested HTTP return code for this status, 0 if not set." - } - } - }, - "v1.StatusDetails": { - "id": "v1.StatusDetails", - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "name": { - "type": "string", - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)." - }, - "group": { - "type": "string", - "description": "The group attribute of the resource associated with the status StatusReason." - }, - "kind": { - "type": "string", - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "causes": { - "type": "array", - "items": { - "$ref": "v1.StatusCause" - }, - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes." - }, - "retryAfterSeconds": { - "type": "integer", - "format": "int32", - "description": "If specified, the time in seconds before the operation should be retried." - } - } - }, - "v1.StatusCause": { - "id": "v1.StatusCause", - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "reason": { - "type": "string", - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available." - }, - "message": { - "type": "string", - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader." - }, - "field": { - "type": "string", - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"" - } - } - }, - "v1.WatchEvent": { - "id": "v1.WatchEvent", - "required": [ - "type", - "object" - ], - "properties": { - "type": { - "type": "string" - }, - "object": { - "type": "string" - } - } - }, - "v1.Patch": { - "id": "v1.Patch", - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - "properties": {} - }, - "v1.DeleteOptions": { - "id": "v1.DeleteOptions", - "description": "DeleteOptions may be provided when deleting an API object.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "gracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately." - }, - "preconditions": { - "$ref": "v1.Preconditions", - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." - }, - "orphanDependents": { - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both." - }, - "propagationPolicy": { - "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." - } - } - }, - "v1.Preconditions": { - "id": "v1.Preconditions", - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "uid": { - "$ref": "types.UID", - "description": "Specifies the target UID." - } - } - }, - "types.UID": { - "id": "types.UID", - "properties": {} - }, - "v1.DeletionPropagation": { - "id": "v1.DeletionPropagation", - "properties": {} - }, - "v1.EndpointsList": { - "id": "v1.EndpointsList", - "description": "EndpointsList is a list of endpoints.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Endpoints" - }, - "description": "List of endpoints." - } - } - }, - "v1.Endpoints": { - "id": "v1.Endpoints", - "description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n Name: \"mysvc\",\n Subsets: [\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n },\n {\n Addresses: [{\"ip\": \"10.10.3.3\"}],\n Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n },\n ]", - "required": [ - "subsets" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "subsets": { - "type": "array", - "items": { - "$ref": "v1.EndpointSubset" - }, - "description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service." - } - } - }, - "v1.EndpointSubset": { - "id": "v1.EndpointSubset", - "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n }\nThe resulting set of endpoints can be viewed as:\n a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n b: [ 10.10.1.1:309, 10.10.2.2:309 ]", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "v1.EndpointAddress" - }, - "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize." - }, - "notReadyAddresses": { - "type": "array", - "items": { - "$ref": "v1.EndpointAddress" - }, - "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check." - }, - "ports": { - "type": "array", - "items": { - "$ref": "v1.EndpointPort" - }, - "description": "Port numbers available on the related IP addresses." - } - } - }, - "v1.EndpointAddress": { - "id": "v1.EndpointAddress", - "description": "EndpointAddress is a tuple that describes single IP address.", - "required": [ - "ip" - ], - "properties": { - "ip": { - "type": "string", - "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready." - }, - "hostname": { - "type": "string", - "description": "The Hostname of this endpoint" - }, - "nodeName": { - "type": "string", - "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node." - }, - "targetRef": { - "$ref": "v1.ObjectReference", - "description": "Reference to object providing the endpoint." - } - } - }, - "v1.EndpointPort": { - "id": "v1.EndpointPort", - "description": "EndpointPort is a tuple that describes a single port.", - "required": [ - "port" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of this port (corresponds to ServicePort.Name). Must be a DNS_LABEL. Optional only if one port is defined." - }, - "port": { - "type": "integer", - "format": "int32", - "description": "The port number of the endpoint." - }, - "protocol": { - "type": "string", - "description": "The IP protocol for this port. Must be UDP or TCP. Default is TCP." - } - } - }, - "v1.EventList": { - "id": "v1.EventList", - "description": "EventList is a list of events.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Event" - }, - "description": "List of events" - } - } - }, - "v1.Event": { - "id": "v1.Event", - "description": "Event is a report of an event somewhere in the cluster.", - "required": [ - "metadata", - "involvedObject" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "involvedObject": { - "$ref": "v1.ObjectReference", - "description": "The object that this event is about." - }, - "reason": { - "type": "string", - "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status." - }, - "message": { - "type": "string", - "description": "A human-readable description of the status of this operation." - }, - "source": { - "$ref": "v1.EventSource", - "description": "The component reporting this event. Should be a short machine understandable string." - }, - "firstTimestamp": { - "type": "string", - "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)" - }, - "lastTimestamp": { - "type": "string", - "description": "The time at which the most recent occurrence of this event was recorded." - }, - "count": { - "type": "integer", - "format": "int32", - "description": "The number of times this event has occurred." - }, - "type": { - "type": "string", - "description": "Type of this event (Normal, Warning), new types could be added in the future" - } - } - }, - "v1.EventSource": { - "id": "v1.EventSource", - "description": "EventSource contains information for an event.", - "properties": { - "component": { - "type": "string", - "description": "Component from which the event is generated." - }, - "host": { - "type": "string", - "description": "Node name on which the event is generated." - } - } - }, - "v1.LimitRangeList": { - "id": "v1.LimitRangeList", - "description": "LimitRangeList is a list of LimitRange items.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.LimitRange" - }, - "description": "Items is a list of LimitRange objects. More info: http://releases.k8s.io/HEAD/docs/design/admission_control_limit_range.md" - } - } - }, - "v1.LimitRange": { - "id": "v1.LimitRange", - "description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.LimitRangeSpec", - "description": "Spec defines the limits enforced. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.LimitRangeSpec": { - "id": "v1.LimitRangeSpec", - "description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", - "required": [ - "limits" - ], - "properties": { - "limits": { - "type": "array", - "items": { - "$ref": "v1.LimitRangeItem" - }, - "description": "Limits is the list of LimitRangeItem objects that are enforced." - } - } - }, - "v1.LimitRangeItem": { - "id": "v1.LimitRangeItem", - "description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", - "properties": { - "type": { - "type": "string", - "description": "Type of resource that this limit applies to." - }, - "max": { - "type": "object", - "description": "Max usage constraints on this kind by resource name." - }, - "min": { - "type": "object", - "description": "Min usage constraints on this kind by resource name." - }, - "default": { - "type": "object", - "description": "Default resource requirement limit value by resource name if resource limit is omitted." - }, - "defaultRequest": { - "type": "object", - "description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted." - }, - "maxLimitRequestRatio": { - "type": "object", - "description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource." - } - } - }, - "v1.NamespaceList": { - "id": "v1.NamespaceList", - "description": "NamespaceList is a list of Namespaces.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Namespace" - }, - "description": "Items is the list of Namespace objects in the list. More info: http://kubernetes.io/docs/user-guide/namespaces" - } - } - }, - "v1.Namespace": { - "id": "v1.Namespace", - "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.NamespaceSpec", - "description": "Spec defines the behavior of the Namespace. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.NamespaceStatus", - "description": "Status describes the current status of a Namespace. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.NamespaceSpec": { - "id": "v1.NamespaceSpec", - "description": "NamespaceSpec describes the attributes on a Namespace.", - "properties": { - "finalizers": { - "type": "array", - "items": { - "$ref": "v1.FinalizerName" - }, - "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: http://releases.k8s.io/HEAD/docs/design/namespaces.md#finalizers" - } - } - }, - "v1.FinalizerName": { - "id": "v1.FinalizerName", - "properties": {} - }, - "v1.NamespaceStatus": { - "id": "v1.NamespaceStatus", - "description": "NamespaceStatus is information about the current status of a Namespace.", - "properties": { - "phase": { - "type": "string", - "description": "Phase is the current lifecycle phase of the namespace. More info: http://releases.k8s.io/HEAD/docs/design/namespaces.md#phases" - } - } - }, - "v1.NodeList": { - "id": "v1.NodeList", - "description": "NodeList is the whole list of all Nodes which have been registered with master.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Node" - }, - "description": "List of nodes" - } - } - }, - "v1.Node": { - "id": "v1.Node", - "description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.NodeSpec", - "description": "Spec defines the behavior of a node. http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.NodeStatus", - "description": "Most recently observed status of the node. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.NodeSpec": { - "id": "v1.NodeSpec", - "description": "NodeSpec describes the attributes that a node is created with.", - "properties": { - "podCIDR": { - "type": "string", - "description": "PodCIDR represents the pod IP range assigned to the node." - }, - "externalID": { - "type": "string", - "description": "External ID of the node assigned by some machine database (e.g. a cloud provider). Deprecated." - }, - "providerID": { - "type": "string", - "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e" - }, - "unschedulable": { - "type": "boolean", - "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: http://releases.k8s.io/HEAD/docs/admin/node.md#manual-node-administration" - }, - "taints": { - "type": "array", - "items": { - "$ref": "v1.Taint" - }, - "description": "If specified, the node's taints." - } - } - }, - "v1.Taint": { - "id": "v1.Taint", - "description": "The node this Taint is attached to has the effect \"effect\" on any pod that that does not tolerate the Taint.", - "required": [ - "key", - "effect" - ], - "properties": { - "key": { - "type": "string", - "description": "Required. The taint key to be applied to a node." - }, - "value": { - "type": "string", - "description": "Required. The taint value corresponding to the taint key." - }, - "effect": { - "type": "string", - "description": "Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute." - }, - "timeAdded": { - "type": "string", - "description": "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints." - } - } - }, - "v1.NodeStatus": { - "id": "v1.NodeStatus", - "description": "NodeStatus is information about the current status of a node.", - "properties": { - "capacity": { - "type": "object", - "description": "Capacity represents the total resources of a node. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#capacity for more details." - }, - "allocatable": { - "type": "object", - "description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity." - }, - "phase": { - "type": "string", - "description": "NodePhase is the recently observed lifecycle phase of the node. More info: http://releases.k8s.io/HEAD/docs/admin/node.md#node-phase The field is never populated, and now is deprecated." - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1.NodeCondition" - }, - "description": "Conditions is an array of current observed node conditions. More info: http://releases.k8s.io/HEAD/docs/admin/node.md#node-condition" - }, - "addresses": { - "type": "array", - "items": { - "$ref": "v1.NodeAddress" - }, - "description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: http://releases.k8s.io/HEAD/docs/admin/node.md#node-addresses" - }, - "daemonEndpoints": { - "$ref": "v1.NodeDaemonEndpoints", - "description": "Endpoints of daemons running on the Node." - }, - "nodeInfo": { - "$ref": "v1.NodeSystemInfo", - "description": "Set of ids/uuids to uniquely identify the node. More info: http://releases.k8s.io/HEAD/docs/admin/node.md#node-info" - }, - "images": { - "type": "array", - "items": { - "$ref": "v1.ContainerImage" - }, - "description": "List of container images on this node" - }, - "volumesInUse": { - "type": "array", - "items": { - "$ref": "v1.UniqueVolumeName" - }, - "description": "List of attachable volumes in use (mounted) by the node." - }, - "volumesAttached": { - "type": "array", - "items": { - "$ref": "v1.AttachedVolume" - }, - "description": "List of volumes that are attached to the node." - } - } - }, - "v1.NodeCondition": { - "id": "v1.NodeCondition", - "description": "NodeCondition contains condition information for a node.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type of node condition." - }, - "status": { - "type": "string", - "description": "Status of the condition, one of True, False, Unknown." - }, - "lastHeartbeatTime": { - "type": "string", - "description": "Last time we got an update on a given condition." - }, - "lastTransitionTime": { - "type": "string", - "description": "Last time the condition transit from one status to another." - }, - "reason": { - "type": "string", - "description": "(brief) reason for the condition's last transition." - }, - "message": { - "type": "string", - "description": "Human readable message indicating details about last transition." - } - } - }, - "v1.NodeAddress": { - "id": "v1.NodeAddress", - "description": "NodeAddress contains information for the node's address.", - "required": [ - "type", - "address" - ], - "properties": { - "type": { - "type": "string", - "description": "Node address type, one of Hostname, ExternalIP or InternalIP." - }, - "address": { - "type": "string", - "description": "The node address." - } - } - }, - "v1.NodeDaemonEndpoints": { - "id": "v1.NodeDaemonEndpoints", - "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", - "properties": { - "kubeletEndpoint": { - "$ref": "v1.DaemonEndpoint", - "description": "Endpoint on which Kubelet is listening." - } - } - }, - "v1.DaemonEndpoint": { - "id": "v1.DaemonEndpoint", - "description": "DaemonEndpoint contains information about a single Daemon endpoint.", - "required": [ - "Port" - ], - "properties": { - "Port": { - "type": "integer", - "format": "int32", - "description": "Port number of the given endpoint." - } - } - }, - "v1.NodeSystemInfo": { - "id": "v1.NodeSystemInfo", - "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", - "required": [ - "machineID", - "systemUUID", - "bootID", - "kernelVersion", - "osImage", - "containerRuntimeVersion", - "kubeletVersion", - "kubeProxyVersion", - "operatingSystem", - "architecture" - ], - "properties": { - "machineID": { - "type": "string", - "description": "MachineID reported by the node. For unique machine identification in the cluster this field is prefered. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html" - }, - "systemUUID": { - "type": "string", - "description": "SystemUUID reported by the node. For unique machine identification MachineID is prefered. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html" - }, - "bootID": { - "type": "string", - "description": "Boot ID reported by the node." - }, - "kernelVersion": { - "type": "string", - "description": "Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64)." - }, - "osImage": { - "type": "string", - "description": "OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy))." - }, - "containerRuntimeVersion": { - "type": "string", - "description": "ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0)." - }, - "kubeletVersion": { - "type": "string", - "description": "Kubelet Version reported by the node." - }, - "kubeProxyVersion": { - "type": "string", - "description": "KubeProxy Version reported by the node." - }, - "operatingSystem": { - "type": "string", - "description": "The Operating System reported by the node" - }, - "architecture": { - "type": "string", - "description": "The Architecture reported by the node" - } - } - }, - "v1.ContainerImage": { - "id": "v1.ContainerImage", - "description": "Describe a container image", - "required": [ - "names" - ], - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Names by which this image is known. e.g. [\"gcr.io/google_containers/hyperkube:v1.0.7\", \"dockerhub.io/google_containers/hyperkube:v1.0.7\"]" - }, - "sizeBytes": { - "type": "integer", - "format": "int64", - "description": "The size of the image in bytes." - } - } - }, - "v1.UniqueVolumeName": { - "id": "v1.UniqueVolumeName", - "properties": {} - }, - "v1.AttachedVolume": { - "id": "v1.AttachedVolume", - "description": "AttachedVolume describes a volume attached to a node", - "required": [ - "name", - "devicePath" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the attached volume" - }, - "devicePath": { - "type": "string", - "description": "DevicePath represents the device path where the volume should be available" - } - } - }, - "v1.PersistentVolumeClaimList": { - "id": "v1.PersistentVolumeClaimList", - "description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.PersistentVolumeClaim" - }, - "description": "A list of persistent volume claims. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - } - } - }, - "v1.PersistentVolumeClaim": { - "id": "v1.PersistentVolumeClaim", - "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.PersistentVolumeClaimSpec", - "description": "Spec defines the desired characteristics of a volume requested by a pod author. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - }, - "status": { - "$ref": "v1.PersistentVolumeClaimStatus", - "description": "Status represents the current information/status of a persistent volume claim. Read-only. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - } - } - }, - "v1.PersistentVolumeClaimSpec": { - "id": "v1.PersistentVolumeClaimSpec", - "description": "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes", - "properties": { - "accessModes": { - "type": "array", - "items": { - "$ref": "v1.PersistentVolumeAccessMode" - }, - "description": "AccessModes contains the desired access modes the volume should have. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#access-modes-1" - }, - "selector": { - "$ref": "v1.LabelSelector", - "description": "A label query over volumes to consider for binding." - }, - "resources": { - "$ref": "v1.ResourceRequirements", - "description": "Resources represents the minimum resources the volume should have. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#resources" - }, - "volumeName": { - "type": "string", - "description": "VolumeName is the binding reference to the PersistentVolume backing this claim." - }, - "storageClassName": { - "type": "string", - "description": "Name of the StorageClass required by the claim. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#class-1" - } - } - }, - "v1.PersistentVolumeAccessMode": { - "id": "v1.PersistentVolumeAccessMode", - "properties": {} - }, - "v1.LabelSelector": { - "id": "v1.LabelSelector", - "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", - "properties": { - "matchLabels": { - "type": "object", - "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." - }, - "matchExpressions": { - "type": "array", - "items": { - "$ref": "v1.LabelSelectorRequirement" - }, - "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed." - } - } - }, - "v1.LabelSelectorRequirement": { - "id": "v1.LabelSelectorRequirement", - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "type": "string", - "description": "key is the label key that the selector applies to." - }, - "operator": { - "type": "string", - "description": "operator represents a key's relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." - } - } - }, - "v1.ResourceRequirements": { - "id": "v1.ResourceRequirements", - "description": "ResourceRequirements describes the compute resource requirements.", - "properties": { - "limits": { - "type": "object", - "description": "Limits describes the maximum amount of compute resources allowed. More info: http://kubernetes.io/docs/user-guide/compute-resources/" - }, - "requests": { - "type": "object", - "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: http://kubernetes.io/docs/user-guide/compute-resources/" - } - } - }, - "v1.PersistentVolumeClaimStatus": { - "id": "v1.PersistentVolumeClaimStatus", - "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", - "properties": { - "phase": { - "type": "string", - "description": "Phase represents the current phase of PersistentVolumeClaim." - }, - "accessModes": { - "type": "array", - "items": { - "$ref": "v1.PersistentVolumeAccessMode" - }, - "description": "AccessModes contains the actual access modes the volume backing the PVC has. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#access-modes-1" - }, - "capacity": { - "type": "object", - "description": "Represents the actual resources of the underlying volume." - } - } - }, - "v1.PersistentVolumeList": { - "id": "v1.PersistentVolumeList", - "description": "PersistentVolumeList is a list of PersistentVolume items.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.PersistentVolume" - }, - "description": "List of persistent volumes. More info: http://kubernetes.io/docs/user-guide/persistent-volumes" - } - } - }, - "v1.PersistentVolume": { - "id": "v1.PersistentVolume", - "description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: http://kubernetes.io/docs/user-guide/persistent-volumes", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.PersistentVolumeSpec", - "description": "Spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistent-volumes" - }, - "status": { - "$ref": "v1.PersistentVolumeStatus", - "description": "Status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistent-volumes" - } - } - }, - "v1.PersistentVolumeSpec": { - "id": "v1.PersistentVolumeSpec", - "description": "PersistentVolumeSpec is the specification of a persistent volume.", - "properties": { - "capacity": { - "type": "object", - "description": "A description of the persistent volume's resources and capacity. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#capacity" - }, - "gcePersistentDisk": { - "$ref": "v1.GCEPersistentDiskVolumeSource", - "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "awsElasticBlockStore": { - "$ref": "v1.AWSElasticBlockStoreVolumeSource", - "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "hostPath": { - "$ref": "v1.HostPathVolumeSource", - "description": "HostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath" - }, - "glusterfs": { - "$ref": "v1.GlusterfsVolumeSource", - "description": "Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md" - }, - "nfs": { - "$ref": "v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host. Provisioned by an admin. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "rbd": { - "$ref": "v1.RBDVolumeSource", - "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md" - }, - "iscsi": { - "$ref": "v1.ISCSIVolumeSource", - "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin." - }, - "cinder": { - "$ref": "v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "cephfs": { - "$ref": "v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "fc": { - "$ref": "v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "flocker": { - "$ref": "v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running" - }, - "flexVolume": { - "$ref": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future." - }, - "azureFile": { - "$ref": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "vsphereVolume": { - "$ref": "v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "azureDisk": { - "$ref": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "photonPersistentDisk": { - "$ref": "v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "portworxVolume": { - "$ref": "v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "scaleIO": { - "$ref": "v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "accessModes": { - "type": "array", - "items": { - "$ref": "v1.PersistentVolumeAccessMode" - }, - "description": "AccessModes contains all ways the volume can be mounted. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#access-modes" - }, - "claimRef": { - "$ref": "v1.ObjectReference", - "description": "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#binding" - }, - "persistentVolumeReclaimPolicy": { - "type": "string", - "description": "What happens to a persistent volume when released from its claim. Valid options are Retain (default) and Recycle. Recycling must be supported by the volume plugin underlying this persistent volume. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#recycling-policy" - }, - "storageClassName": { - "type": "string", - "description": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass." - } - } - }, - "v1.GCEPersistentDiskVolumeSource": { - "id": "v1.GCEPersistentDiskVolumeSource", - "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", - "required": [ - "pdName" - ], - "properties": { - "pdName": { - "type": "string", - "description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - } - } - }, - "v1.AWSElasticBlockStoreVolumeSource": { - "id": "v1.AWSElasticBlockStoreVolumeSource", - "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." - }, - "readOnly": { - "type": "boolean", - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - } - } - }, - "v1.HostPathVolumeSource": { - "id": "v1.HostPathVolumeSource", - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "Path of the directory on the host. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath" - } - } - }, - "v1.GlusterfsVolumeSource": { - "id": "v1.GlusterfsVolumeSource", - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "endpoints", - "path" - ], - "properties": { - "endpoints": { - "type": "string", - "description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - }, - "path": { - "type": "string", - "description": "Path is the Glusterfs volume path. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - } - } - }, - "v1.NFSVolumeSource": { - "id": "v1.NFSVolumeSource", - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - "required": [ - "server", - "path" - ], - "properties": { - "server": { - "type": "string", - "description": "Server is the hostname or IP address of the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "path": { - "type": "string", - "description": "Path that is exported by the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - } - } - }, - "v1.RBDVolumeSource": { - "id": "v1.RBDVolumeSource", - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "required": [ - "monitors", - "image" - ], - "properties": { - "monitors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A collection of Ceph monitors. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "image": { - "type": "string", - "description": "The rados image name. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#rbd" - }, - "pool": { - "type": "string", - "description": "The rados pool name. Default is rbd. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it." - }, - "user": { - "type": "string", - "description": "The rados user name. Default is admin. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "keyring": { - "type": "string", - "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - } - } - }, - "v1.LocalObjectReference": { - "id": "v1.LocalObjectReference", - "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - } - } - }, - "v1.ISCSIVolumeSource": { - "id": "v1.ISCSIVolumeSource", - "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "properties": { - "targetPortal": { - "type": "string", - "description": "iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." - }, - "iqn": { - "type": "string", - "description": "Target iSCSI Qualified Name." - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "iSCSI target lun number." - }, - "iscsiInterface": { - "type": "string", - "description": "Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport." - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#iscsi" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." - }, - "portals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "iSCSI target portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." - } - } - }, - "v1.CinderVolumeSource": { - "id": "v1.CinderVolumeSource", - "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "volume id used to identify the volume in cinder More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - } - } - }, - "v1.CephFSVolumeSource": { - "id": "v1.CephFSVolumeSource", - "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "monitors" - ], - "properties": { - "monitors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required: Monitors is a collection of Ceph monitors More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "path": { - "type": "string", - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" - }, - "user": { - "type": "string", - "description": "Optional: User is the rados user name, default is admin More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "secretFile": { - "type": "string", - "description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - } - } - }, - "v1.FCVolumeSource": { - "id": "v1.FCVolumeSource", - "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], - "properties": { - "targetWWNs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required: FC target worldwide names (WWNs)" - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "Required: FC target lun number" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.FlockerVolumeSource": { - "id": "v1.FlockerVolumeSource", - "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", - "properties": { - "datasetName": { - "type": "string", - "description": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated" - }, - "datasetUUID": { - "type": "string", - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset" - } - } - }, - "v1.FlexVolumeSource": { - "id": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", - "required": [ - "driver" - ], - "properties": { - "driver": { - "type": "string", - "description": "Driver is the name of the driver to use for this volume." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - }, - "options": { - "type": "object", - "description": "Optional: Extra command options if any." - } - } - }, - "v1.AzureFileVolumeSource": { - "id": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "required": [ - "secretName", - "shareName" - ], - "properties": { - "secretName": { - "type": "string", - "description": "the name of secret that contains Azure Storage Account Name and Key" - }, - "shareName": { - "type": "string", - "description": "Share Name" - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.VsphereVirtualDiskVolumeSource": { - "id": "v1.VsphereVirtualDiskVolumeSource", - "description": "Represents a vSphere volume resource.", - "required": [ - "volumePath" - ], - "properties": { - "volumePath": { - "type": "string", - "description": "Path that identifies vSphere volume vmdk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - } - } - }, - "v1.QuobyteVolumeSource": { - "id": "v1.QuobyteVolumeSource", - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - "required": [ - "registry", - "volume" - ], - "properties": { - "registry": { - "type": "string", - "description": "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" - }, - "volume": { - "type": "string", - "description": "Volume is a string that references an already created Quobyte volume by name." - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." - }, - "user": { - "type": "string", - "description": "User to map volume access to Defaults to serivceaccount user" - }, - "group": { - "type": "string", - "description": "Group to map volume access to Default is no group" - } - } - }, - "v1.AzureDiskVolumeSource": { - "id": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "required": [ - "diskName", - "diskURI" - ], - "properties": { - "diskName": { - "type": "string", - "description": "The Name of the data disk in the blob storage" - }, - "diskURI": { - "type": "string", - "description": "The URI the data disk in the blob storage" - }, - "cachingMode": { - "$ref": "v1.AzureDataDiskCachingMode", - "description": "Host Caching mode: None, Read Only, Read Write." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.AzureDataDiskCachingMode": { - "id": "v1.AzureDataDiskCachingMode", - "properties": {} - }, - "v1.PhotonPersistentDiskVolumeSource": { - "id": "v1.PhotonPersistentDiskVolumeSource", - "description": "Represents a Photon Controller persistent disk resource.", - "required": [ - "pdID" - ], - "properties": { - "pdID": { - "type": "string", - "description": "ID that identifies Photon Controller persistent disk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - } - } - }, - "v1.PortworxVolumeSource": { - "id": "v1.PortworxVolumeSource", - "description": "PortworxVolumeSource represents a Portworx volume resource.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "VolumeID uniquely identifies a Portworx volume" - }, - "fsType": { - "type": "string", - "description": "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.ScaleIOVolumeSource": { - "id": "v1.ScaleIOVolumeSource", - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", - "required": [ - "gateway", - "system", - "secretRef" - ], - "properties": { - "gateway": { - "type": "string", - "description": "The host address of the ScaleIO API Gateway." - }, - "system": { - "type": "string", - "description": "The name of the storage system as configured in ScaleIO." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "type": "boolean", - "description": "Flag to enable/disable SSL communication with Gateway, default false" - }, - "protectionDomain": { - "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." - }, - "storagePool": { - "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." - }, - "storageMode": { - "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." - }, - "volumeName": { - "type": "string", - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.PersistentVolumeStatus": { - "id": "v1.PersistentVolumeStatus", - "description": "PersistentVolumeStatus is the current status of a persistent volume.", - "properties": { - "phase": { - "type": "string", - "description": "Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#phase" - }, - "message": { - "type": "string", - "description": "A human-readable message indicating details about why the volume is in this state." - }, - "reason": { - "type": "string", - "description": "Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI." - } - } - }, - "v1.PodList": { - "id": "v1.PodList", - "description": "PodList is a list of Pods.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Pod" - }, - "description": "List of pods. More info: http://kubernetes.io/docs/user-guide/pods" - } - } - }, - "v1.Pod": { - "id": "v1.Pod", - "description": "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.PodStatus", - "description": "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.PodSpec": { - "id": "v1.PodSpec", - "description": "PodSpec is a description of a pod.", - "required": [ - "containers" - ], - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "v1.Volume" - }, - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: http://kubernetes.io/docs/user-guide/volumes" - }, - "initContainers": { - "type": "array", - "items": { - "$ref": "v1.Container" - }, - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers" - }, - "containers": { - "type": "array", - "items": { - "$ref": "v1.Container" - }, - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers" - }, - "restartPolicy": { - "type": "string", - "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: http://kubernetes.io/docs/user-guide/pod-states#restartpolicy" - }, - "terminationGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds." - }, - "activeDeadlineSeconds": { - "type": "integer", - "format": "int64", - "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer." - }, - "dnsPolicy": { - "type": "string", - "description": "Set DNS policy for containers within the pod. One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'. Defaults to \"ClusterFirst\". To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'." - }, - "nodeSelector": { - "type": "object", - "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: http://kubernetes.io/docs/user-guide/node-selection/README" - }, - "serviceAccountName": { - "type": "string", - "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: http://releases.k8s.io/HEAD/docs/design/service_accounts.md" - }, - "serviceAccount": { - "type": "string", - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead." - }, - "automountServiceAccountToken": { - "type": "boolean", - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted." - }, - "nodeName": { - "type": "string", - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements." - }, - "hostNetwork": { - "type": "boolean", - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false." - }, - "hostPID": { - "type": "boolean", - "description": "Use the host's pid namespace. Optional: Default to false." - }, - "hostIPC": { - "type": "boolean", - "description": "Use the host's ipc namespace. Optional: Default to false." - }, - "securityContext": { - "$ref": "v1.PodSecurityContext", - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." - }, - "imagePullSecrets": { - "type": "array", - "items": { - "$ref": "v1.LocalObjectReference" - }, - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod" - }, - "hostname": { - "type": "string", - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value." - }, - "subdomain": { - "type": "string", - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all." - }, - "affinity": { - "$ref": "v1.Affinity", - "description": "If specified, the pod's scheduling constraints" - }, - "schedulerName": { - "type": "string", - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler." - }, - "tolerations": { - "type": "array", - "items": { - "$ref": "v1.Toleration" - }, - "description": "If specified, the pod's tolerations." - } - } - }, - "v1.Volume": { - "id": "v1.Volume", - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "hostPath": { - "$ref": "v1.HostPathVolumeSource", - "description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath" - }, - "emptyDir": { - "$ref": "v1.EmptyDirVolumeSource", - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" - }, - "gcePersistentDisk": { - "$ref": "v1.GCEPersistentDiskVolumeSource", - "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk" - }, - "awsElasticBlockStore": { - "$ref": "v1.AWSElasticBlockStoreVolumeSource", - "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore" - }, - "gitRepo": { - "$ref": "v1.GitRepoVolumeSource", - "description": "GitRepo represents a git repository at a particular revision." - }, - "secret": { - "$ref": "v1.SecretVolumeSource", - "description": "Secret represents a secret that should populate this volume. More info: http://kubernetes.io/docs/user-guide/volumes#secrets" - }, - "nfs": { - "$ref": "v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: http://kubernetes.io/docs/user-guide/volumes#nfs" - }, - "iscsi": { - "$ref": "v1.ISCSIVolumeSource", - "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md" - }, - "glusterfs": { - "$ref": "v1.GlusterfsVolumeSource", - "description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md" - }, - "persistentVolumeClaim": { - "$ref": "v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - }, - "rbd": { - "$ref": "v1.RBDVolumeSource", - "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md" - }, - "flexVolume": { - "$ref": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future." - }, - "cinder": { - "$ref": "v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "cephfs": { - "$ref": "v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "flocker": { - "$ref": "v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" - }, - "downwardAPI": { - "$ref": "v1.DownwardAPIVolumeSource", - "description": "DownwardAPI represents downward API about the pod that should populate this volume" - }, - "fc": { - "$ref": "v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "azureFile": { - "$ref": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "configMap": { - "$ref": "v1.ConfigMapVolumeSource", - "description": "ConfigMap represents a configMap that should populate this volume" - }, - "vsphereVolume": { - "$ref": "v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "azureDisk": { - "$ref": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "photonPersistentDisk": { - "$ref": "v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "projected": { - "$ref": "v1.ProjectedVolumeSource", - "description": "Items for all in one resources secrets, configmaps, and downward API" - }, - "portworxVolume": { - "$ref": "v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "scaleIO": { - "$ref": "v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - } - } - }, - "v1.EmptyDirVolumeSource": { - "id": "v1.EmptyDirVolumeSource", - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - "properties": { - "medium": { - "type": "string", - "description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" - } - } - }, - "v1.GitRepoVolumeSource": { - "id": "v1.GitRepoVolumeSource", - "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.", - "required": [ - "repository" - ], - "properties": { - "repository": { - "type": "string", - "description": "Repository URL" - }, - "revision": { - "type": "string", - "description": "Commit hash for the specified revision." - }, - "directory": { - "type": "string", - "description": "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." - } - } - }, - "v1.SecretVolumeSource": { - "id": "v1.SecretVolumeSource", - "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", - "properties": { - "secretName": { - "type": "string", - "description": "Name of the secret in the pod's namespace to use. More info: http://kubernetes.io/docs/user-guide/volumes#secrets" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or it's keys must be defined" - } - } - }, - "v1.KeyToPath": { - "id": "v1.KeyToPath", - "description": "Maps a string key to a path within a volume.", - "required": [ - "key", - "path" - ], - "properties": { - "key": { - "type": "string", - "description": "The key to project." - }, - "path": { - "type": "string", - "description": "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." - }, - "mode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.PersistentVolumeClaimVolumeSource": { - "id": "v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", - "required": [ - "claimName" - ], - "properties": { - "claimName": { - "type": "string", - "description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims" - }, - "readOnly": { - "type": "boolean", - "description": "Will force the ReadOnly setting in VolumeMounts. Default false." - } - } - }, - "v1.DownwardAPIVolumeSource": { - "id": "v1.DownwardAPIVolumeSource", - "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "v1.DownwardAPIVolumeFile" - }, - "description": "Items is a list of downward API volume file" - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.DownwardAPIVolumeFile": { - "id": "v1.DownwardAPIVolumeFile", - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'" - }, - "fieldRef": { - "$ref": "v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." - }, - "resourceFieldRef": { - "$ref": "v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - }, - "mode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.ObjectFieldSelector": { - "id": "v1.ObjectFieldSelector", - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", - "required": [ - "fieldPath" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"." - }, - "fieldPath": { - "type": "string", - "description": "Path of the field to select in the specified API version." - } - } - }, - "v1.ResourceFieldSelector": { - "id": "v1.ResourceFieldSelector", - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - "required": [ - "resource" - ], - "properties": { - "containerName": { - "type": "string", - "description": "Container name: required for volumes, optional for env vars" - }, - "resource": { - "type": "string", - "description": "Required: resource to select" - }, - "divisor": { - "type": "string", - "description": "Specifies the output format of the exposed resources, defaults to \"1\"" - } - } - }, - "v1.ConfigMapVolumeSource": { - "id": "v1.ConfigMapVolumeSource", - "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's keys must be defined" - } - } - }, - "v1.ProjectedVolumeSource": { - "id": "v1.ProjectedVolumeSource", - "description": "Represents a projected volume source", - "required": [ - "sources" - ], - "properties": { - "sources": { - "type": "array", - "items": { - "$ref": "v1.VolumeProjection" - }, - "description": "list of volume projections" - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.VolumeProjection": { - "id": "v1.VolumeProjection", - "description": "Projection that may be projected along with other supported volume types", - "properties": { - "secret": { - "$ref": "v1.SecretProjection", - "description": "information about the secret data to project" - }, - "downwardAPI": { - "$ref": "v1.DownwardAPIProjection", - "description": "information about the downwardAPI data to project" - }, - "configMap": { - "$ref": "v1.ConfigMapProjection", - "description": "information about the configMap data to project" - } - } - }, - "v1.SecretProjection": { - "id": "v1.SecretProjection", - "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or its key must be defined" - } - } - }, - "v1.DownwardAPIProjection": { - "id": "v1.DownwardAPIProjection", - "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "v1.DownwardAPIVolumeFile" - }, - "description": "Items is a list of DownwardAPIVolume file" - } - } - }, - "v1.ConfigMapProjection": { - "id": "v1.ConfigMapProjection", - "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's keys must be defined" - } - } - }, - "v1.Container": { - "id": "v1.Container", - "description": "A single application container that you want to run within a pod.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated." - }, - "image": { - "type": "string", - "description": "Docker image name. More info: http://kubernetes.io/docs/user-guide/images" - }, - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers#containers-and-commands" - }, - "args": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers#containers-and-commands" - }, - "workingDir": { - "type": "string", - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated." - }, - "ports": { - "type": "array", - "items": { - "$ref": "v1.ContainerPort" - }, - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated." - }, - "envFrom": { - "type": "array", - "items": { - "$ref": "v1.EnvFromSource" - }, - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated." - }, - "env": { - "type": "array", - "items": { - "$ref": "v1.EnvVar" - }, - "description": "List of environment variables to set in the container. Cannot be updated." - }, - "resources": { - "$ref": "v1.ResourceRequirements", - "description": "Compute Resources required by this container. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#resources" - }, - "volumeMounts": { - "type": "array", - "items": { - "$ref": "v1.VolumeMount" - }, - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated." - }, - "livenessProbe": { - "$ref": "v1.Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "readinessProbe": { - "$ref": "v1.Probe", - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "lifecycle": { - "$ref": "v1.Lifecycle", - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." - }, - "terminationMessagePath": { - "type": "string", - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated." - }, - "terminationMessagePolicy": { - "type": "string", - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated." - }, - "imagePullPolicy": { - "type": "string", - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/images#updating-images" - }, - "securityContext": { - "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: http://releases.k8s.io/HEAD/docs/design/security_context.md" - }, - "stdin": { - "type": "boolean", - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false." - }, - "stdinOnce": { - "type": "boolean", - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false" - }, - "tty": { - "type": "boolean", - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false." - } - } - }, - "v1.ContainerPort": { - "id": "v1.ContainerPort", - "description": "ContainerPort represents a network port in a single container.", - "required": [ - "containerPort" - ], - "properties": { - "name": { - "type": "string", - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services." - }, - "hostPort": { - "type": "integer", - "format": "int32", - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this." - }, - "containerPort": { - "type": "integer", - "format": "int32", - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536." - }, - "protocol": { - "type": "string", - "description": "Protocol for port. Must be UDP or TCP. Defaults to \"TCP\"." - }, - "hostIP": { - "type": "string", - "description": "What host IP to bind the external port to." - } - } - }, - "v1.EnvFromSource": { - "id": "v1.EnvFromSource", - "description": "EnvFromSource represents the source of a set of ConfigMaps", - "properties": { - "prefix": { - "type": "string", - "description": "An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER." - }, - "configMapRef": { - "$ref": "v1.ConfigMapEnvSource", - "description": "The ConfigMap to select from" - }, - "secretRef": { - "$ref": "v1.SecretEnvSource", - "description": "The Secret to select from" - } - } - }, - "v1.ConfigMapEnvSource": { - "id": "v1.ConfigMapEnvSource", - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap must be defined" - } - } - }, - "v1.SecretEnvSource": { - "id": "v1.SecretEnvSource", - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret must be defined" - } - } - }, - "v1.EnvVar": { - "id": "v1.EnvVar", - "description": "EnvVar represents an environment variable present in a Container.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the environment variable. Must be a C_IDENTIFIER." - }, - "value": { - "type": "string", - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\"." - }, - "valueFrom": { - "$ref": "v1.EnvVarSource", - "description": "Source for the environment variable's value. Cannot be used if value is not empty." - } - } - }, - "v1.EnvVarSource": { - "id": "v1.EnvVarSource", - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "fieldRef": { - "$ref": "v1.ObjectFieldSelector", - "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.podIP." - }, - "resourceFieldRef": { - "$ref": "v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - }, - "configMapKeyRef": { - "$ref": "v1.ConfigMapKeySelector", - "description": "Selects a key of a ConfigMap." - }, - "secretKeyRef": { - "$ref": "v1.SecretKeySelector", - "description": "Selects a key of a secret in the pod's namespace" - } - } - }, - "v1.ConfigMapKeySelector": { - "id": "v1.ConfigMapKeySelector", - "description": "Selects a key from a ConfigMap.", - "required": [ - "key" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "key": { - "type": "string", - "description": "The key to select." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's key must be defined" - } - } - }, - "v1.SecretKeySelector": { - "id": "v1.SecretKeySelector", - "description": "SecretKeySelector selects a key of a Secret.", - "required": [ - "key" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "key": { - "type": "string", - "description": "The key of the secret to select from. Must be a valid secret key." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or it's key must be defined" - } - } - }, - "v1.VolumeMount": { - "id": "v1.VolumeMount", - "description": "VolumeMount describes a mounting of a Volume within a container.", - "required": [ - "name", - "mountPath" - ], - "properties": { - "name": { - "type": "string", - "description": "This must match the Name of a Volume." - }, - "readOnly": { - "type": "boolean", - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false." - }, - "mountPath": { - "type": "string", - "description": "Path within the container at which the volume should be mounted. Must not contain ':'." - }, - "subPath": { - "type": "string", - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root)." - } - } - }, - "v1.Probe": { - "id": "v1.Probe", - "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - "properties": { - "exec": { - "$ref": "v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - }, - "initialDelaySeconds": { - "type": "integer", - "format": "int32", - "description": "Number of seconds after the container has started before liveness probes are initiated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "timeoutSeconds": { - "type": "integer", - "format": "int32", - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes" - }, - "periodSeconds": { - "type": "integer", - "format": "int32", - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1." - }, - "successThreshold": { - "type": "integer", - "format": "int32", - "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1." - }, - "failureThreshold": { - "type": "integer", - "format": "int32", - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1." - } - } - }, - "v1.ExecAction": { - "id": "v1.ExecAction", - "description": "ExecAction describes a \"run in container\" action.", - "properties": { - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy." - } - } - }, - "v1.HTTPGetAction": { - "id": "v1.HTTPGetAction", - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "required": [ - "port" - ], - "properties": { - "path": { - "type": "string", - "description": "Path to access on the HTTP server." - }, - "port": { - "type": "string", - "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." - }, - "host": { - "type": "string", - "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead." - }, - "scheme": { - "type": "string", - "description": "Scheme to use for connecting to the host. Defaults to HTTP." - }, - "httpHeaders": { - "type": "array", - "items": { - "$ref": "v1.HTTPHeader" - }, - "description": "Custom headers to set in the request. HTTP allows repeated headers." - } - } - }, - "v1.HTTPHeader": { - "id": "v1.HTTPHeader", - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "required": [ - "name", - "value" - ], - "properties": { - "name": { - "type": "string", - "description": "The header field name" - }, - "value": { - "type": "string", - "description": "The header field value" - } - } - }, - "v1.TCPSocketAction": { - "id": "v1.TCPSocketAction", - "description": "TCPSocketAction describes an action based on opening a socket", - "required": [ - "port" - ], - "properties": { - "port": { - "type": "string", - "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." - } - } - }, - "v1.Lifecycle": { - "id": "v1.Lifecycle", - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "$ref": "v1.Handler", - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: http://kubernetes.io/docs/user-guide/container-environment#hook-details" - }, - "preStop": { - "$ref": "v1.Handler", - "description": "PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: http://kubernetes.io/docs/user-guide/container-environment#hook-details" - } - } - }, - "v1.Handler": { - "id": "v1.Handler", - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "$ref": "v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - } - } - }, - "v1.SecurityContext": { - "id": "v1.SecurityContext", - "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", - "properties": { - "capabilities": { - "$ref": "v1.Capabilities", - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." - }, - "privileged": { - "type": "boolean", - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false." - }, - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "runAsNonRoot": { - "type": "boolean", - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "readOnlyRootFilesystem": { - "type": "boolean", - "description": "Whether this container has a read-only root filesystem. Default is false." - } - } - }, - "v1.Capabilities": { - "id": "v1.Capabilities", - "description": "Adds and removes POSIX capabilities from running containers.", - "properties": { - "add": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "Added capabilities" - }, - "drop": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "Removed capabilities" - } - } - }, - "v1.Capability": { - "id": "v1.Capability", - "properties": {} - }, - "v1.SELinuxOptions": { - "id": "v1.SELinuxOptions", - "description": "SELinuxOptions are the labels to be applied to the container", - "properties": { - "user": { - "type": "string", - "description": "User is a SELinux user label that applies to the container." - }, - "role": { - "type": "string", - "description": "Role is a SELinux role label that applies to the container." - }, - "type": { - "type": "string", - "description": "Type is a SELinux type label that applies to the container." - }, - "level": { - "type": "string", - "description": "Level is SELinux level label that applies to the container." - } - } - }, - "v1.PodSecurityContext": { - "id": "v1.PodSecurityContext", - "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", - "properties": { - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." - }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." - }, - "runAsNonRoot": { - "type": "boolean", - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "supplementalGroups": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container." - }, - "fsGroup": { - "type": "integer", - "format": "int64", - "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw " - } - } - }, - "v1.Affinity": { - "id": "v1.Affinity", - "description": "Affinity is a group of affinity scheduling rules.", - "properties": { - "nodeAffinity": { - "$ref": "v1.NodeAffinity", - "description": "Describes node affinity scheduling rules for the pod." - }, - "podAffinity": { - "$ref": "v1.PodAffinity", - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." - }, - "podAntiAffinity": { - "$ref": "v1.PodAntiAffinity", - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." - } - } - }, - "v1.NodeAffinity": { - "id": "v1.NodeAffinity", - "description": "Node affinity is a group of node affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "$ref": "v1.NodeSelector", - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PreferredSchedulingTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.NodeSelector": { - "id": "v1.NodeSelector", - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - "required": [ - "nodeSelectorTerms" - ], - "properties": { - "nodeSelectorTerms": { - "type": "array", - "items": { - "$ref": "v1.NodeSelectorTerm" - }, - "description": "Required. A list of node selector terms. The terms are ORed." - } - } - }, - "v1.NodeSelectorTerm": { - "id": "v1.NodeSelectorTerm", - "description": "A null or empty node selector term matches no objects.", - "required": [ - "matchExpressions" - ], - "properties": { - "matchExpressions": { - "type": "array", - "items": { - "$ref": "v1.NodeSelectorRequirement" - }, - "description": "Required. A list of node selector requirements. The requirements are ANDed." - } - } - }, - "v1.NodeSelectorRequirement": { - "id": "v1.NodeSelectorRequirement", - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "type": "string", - "description": "The label key that the selector applies to." - }, - "operator": { - "type": "string", - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." - } - } - }, - "v1.PreferredSchedulingTerm": { - "id": "v1.PreferredSchedulingTerm", - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "required": [ - "weight", - "preference" - ], - "properties": { - "weight": { - "type": "integer", - "format": "int32", - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." - }, - "preference": { - "$ref": "v1.NodeSelectorTerm", - "description": "A node selector term, associated with the corresponding weight." - } - } - }, - "v1.PodAffinity": { - "id": "v1.PodAffinity", - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PodAffinityTerm" - }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.WeightedPodAffinityTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.PodAffinityTerm": { - "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", - "properties": { - "labelSelector": { - "$ref": "v1.LabelSelector", - "description": "A label query over a set of resources, in this case pods." - }, - "namespaces": { - "type": "array", - "items": { - "type": "string" - }, - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"" - }, - "topologyKey": { - "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." - } - } - }, - "v1.WeightedPodAffinityTerm": { - "id": "v1.WeightedPodAffinityTerm", - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "required": [ - "weight", - "podAffinityTerm" - ], - "properties": { - "weight": { - "type": "integer", - "format": "int32", - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100." - }, - "podAffinityTerm": { - "$ref": "v1.PodAffinityTerm", - "description": "Required. A pod affinity term, associated with the corresponding weight." - } - } - }, - "v1.PodAntiAffinity": { - "id": "v1.PodAntiAffinity", - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PodAffinityTerm" - }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.WeightedPodAffinityTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.Toleration": { - "id": "v1.Toleration", - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", - "properties": { - "key": { - "type": "string", - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys." - }, - "operator": { - "type": "string", - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category." - }, - "value": { - "type": "string", - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string." - }, - "effect": { - "type": "string", - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute." - }, - "tolerationSeconds": { - "type": "integer", - "format": "int64", - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system." - } - } - }, - "v1.PodStatus": { - "id": "v1.PodStatus", - "description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system.", - "properties": { - "phase": { - "type": "string", - "description": "Current condition of the pod. More info: http://kubernetes.io/docs/user-guide/pod-states#pod-phase" - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1.PodCondition" - }, - "description": "Current service state of pod. More info: http://kubernetes.io/docs/user-guide/pod-states#pod-conditions" - }, - "message": { - "type": "string", - "description": "A human readable message indicating details about why the pod is in this condition." - }, - "reason": { - "type": "string", - "description": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'OutOfDisk'" - }, - "hostIP": { - "type": "string", - "description": "IP address of the host to which the pod is assigned. Empty if not yet scheduled." - }, - "podIP": { - "type": "string", - "description": "IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated." - }, - "startTime": { - "type": "string", - "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod." - }, - "initContainerStatuses": { - "type": "array", - "items": { - "$ref": "v1.ContainerStatus" - }, - "description": "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: http://kubernetes.io/docs/user-guide/pod-states#container-statuses" - }, - "containerStatuses": { - "type": "array", - "items": { - "$ref": "v1.ContainerStatus" - }, - "description": "The list has one entry per container in the manifest. Each entry is currently the output of `docker inspect`. More info: http://kubernetes.io/docs/user-guide/pod-states#container-statuses" - }, - "qosClass": { - "type": "string", - "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://github.com/kubernetes/kubernetes/blob/master/docs/design/resource-qos.md" - } - } - }, - "v1.PodCondition": { - "id": "v1.PodCondition", - "description": "PodCondition contains details for the current condition of this pod.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type is the type of the condition. Currently only Ready. More info: http://kubernetes.io/docs/user-guide/pod-states#pod-conditions" - }, - "status": { - "type": "string", - "description": "Status is the status of the condition. Can be True, False, Unknown. More info: http://kubernetes.io/docs/user-guide/pod-states#pod-conditions" - }, - "lastProbeTime": { - "type": "string", - "description": "Last time we probed the condition." - }, - "lastTransitionTime": { - "type": "string", - "description": "Last time the condition transitioned from one status to another." - }, - "reason": { - "type": "string", - "description": "Unique, one-word, CamelCase reason for the condition's last transition." - }, - "message": { - "type": "string", - "description": "Human-readable message indicating details about last transition." - } - } - }, - "v1.ContainerStatus": { - "id": "v1.ContainerStatus", - "description": "ContainerStatus contains details for the current status of this container.", - "required": [ - "name", - "ready", - "restartCount", - "image", - "imageID" - ], - "properties": { - "name": { - "type": "string", - "description": "This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated." - }, - "state": { - "$ref": "v1.ContainerState", - "description": "Details about the container's current condition." - }, - "lastState": { - "$ref": "v1.ContainerState", - "description": "Details about the container's last termination condition." - }, - "ready": { - "type": "boolean", - "description": "Specifies whether the container has passed its readiness probe." - }, - "restartCount": { - "type": "integer", - "format": "int32", - "description": "The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC." - }, - "image": { - "type": "string", - "description": "The image the container is running. More info: http://kubernetes.io/docs/user-guide/images" - }, - "imageID": { - "type": "string", - "description": "ImageID of the container's image." - }, - "containerID": { - "type": "string", - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'. More info: http://kubernetes.io/docs/user-guide/container-environment#container-information" - } - } - }, - "v1.ContainerState": { - "id": "v1.ContainerState", - "description": "ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.", - "properties": { - "waiting": { - "$ref": "v1.ContainerStateWaiting", - "description": "Details about a waiting container" - }, - "running": { - "$ref": "v1.ContainerStateRunning", - "description": "Details about a running container" - }, - "terminated": { - "$ref": "v1.ContainerStateTerminated", - "description": "Details about a terminated container" - } - } - }, - "v1.ContainerStateWaiting": { - "id": "v1.ContainerStateWaiting", - "description": "ContainerStateWaiting is a waiting state of a container.", - "properties": { - "reason": { - "type": "string", - "description": "(brief) reason the container is not yet running." - }, - "message": { - "type": "string", - "description": "Message regarding why the container is not yet running." - } - } - }, - "v1.ContainerStateRunning": { - "id": "v1.ContainerStateRunning", - "description": "ContainerStateRunning is a running state of a container.", - "properties": { - "startedAt": { - "type": "string", - "description": "Time at which the container was last (re-)started" - } - } - }, - "v1.ContainerStateTerminated": { - "id": "v1.ContainerStateTerminated", - "description": "ContainerStateTerminated is a terminated state of a container.", - "required": [ - "exitCode" - ], - "properties": { - "exitCode": { - "type": "integer", - "format": "int32", - "description": "Exit status from the last termination of the container" - }, - "signal": { - "type": "integer", - "format": "int32", - "description": "Signal from the last termination of the container" - }, - "reason": { - "type": "string", - "description": "(brief) reason from the last termination of the container" - }, - "message": { - "type": "string", - "description": "Message regarding the last termination of the container" - }, - "startedAt": { - "type": "string", - "description": "Time at which previous execution of the container started" - }, - "finishedAt": { - "type": "string", - "description": "Time at which the container last terminated" - }, - "containerID": { - "type": "string", - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'" - } - } - }, - "v1beta1.Eviction": { - "id": "v1beta1.Eviction", - "description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/\u003cpod name\u003e/evictions.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "ObjectMeta describes the pod that is being evicted." - }, - "deleteOptions": { - "$ref": "v1.DeleteOptions", - "description": "DeleteOptions may be provided" - } - } - }, - "v1.PodTemplateList": { - "id": "v1.PodTemplateList", - "description": "PodTemplateList is a list of PodTemplates.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.PodTemplate" - }, - "description": "List of pod templates" - } - } - }, - "v1.PodTemplate": { - "id": "v1.PodTemplate", - "description": "PodTemplate describes a template for creating copies of a predefined pod.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "Template defines the pods that will be created from this pod template. http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.PodTemplateSpec": { - "id": "v1.PodTemplateSpec", - "description": "PodTemplateSpec describes the data a pod should have when created from a template", - "properties": { - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.ReplicationControllerList": { - "id": "v1.ReplicationControllerList", - "description": "ReplicationControllerList is a collection of replication controllers.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.ReplicationController" - }, - "description": "List of replication controllers. More info: http://kubernetes.io/docs/user-guide/replication-controller" - } - } - }, - "v1.ReplicationController": { - "id": "v1.ReplicationController", - "description": "ReplicationController represents the configuration of a replication controller.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.ReplicationControllerSpec", - "description": "Spec defines the specification of the desired behavior of the replication controller. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.ReplicationControllerStatus", - "description": "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.ReplicationControllerSpec": { - "id": "v1.ReplicationControllerSpec", - "description": "ReplicationControllerSpec is the specification of a replication controller.", - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: http://kubernetes.io/docs/user-guide/replication-controller#what-is-a-replication-controller" - }, - "minReadySeconds": { - "type": "integer", - "format": "int32", - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)" - }, - "selector": { - "type": "object", - "description": "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors" - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. More info: http://kubernetes.io/docs/user-guide/replication-controller#pod-template" - } - } - }, - "v1.ReplicationControllerStatus": { - "id": "v1.ReplicationControllerStatus", - "description": "ReplicationControllerStatus represents the current status of a replication controller.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "Replicas is the most recently oberved number of replicas. More info: http://kubernetes.io/docs/user-guide/replication-controller#what-is-a-replication-controller" - }, - "fullyLabeledReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of pods that have labels matching the labels of the pod template of the replication controller." - }, - "readyReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of ready replicas for this replication controller." - }, - "availableReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of available replicas (ready for at least minReadySeconds) for this replication controller." - }, - "observedGeneration": { - "type": "integer", - "format": "int64", - "description": "ObservedGeneration reflects the generation of the most recently observed replication controller." - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1.ReplicationControllerCondition" - }, - "description": "Represents the latest available observations of a replication controller's current state." - } - } - }, - "v1.ReplicationControllerCondition": { - "id": "v1.ReplicationControllerCondition", - "description": "ReplicationControllerCondition describes the state of a replication controller at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type of replication controller condition." - }, - "status": { - "type": "string", - "description": "Status of the condition, one of True, False, Unknown." - }, - "lastTransitionTime": { - "type": "string", - "description": "The last time the condition transitioned from one status to another." - }, - "reason": { - "type": "string", - "description": "The reason for the condition's last transition." - }, - "message": { - "type": "string", - "description": "A human readable message indicating details about the transition." - } - } - }, - "v1.Scale": { - "id": "v1.Scale", - "description": "Scale represents a scaling request for a resource.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object metadata; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata." - }, - "spec": { - "$ref": "v1.ScaleSpec", - "description": "defines the behavior of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "v1.ScaleStatus", - "description": "current status of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status. Read-only." - } - } - }, - "v1.ScaleSpec": { - "id": "v1.ScaleSpec", - "description": "ScaleSpec describes the attributes of a scale subresource.", - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "desired number of instances for the scaled object." - } - } - }, - "v1.ScaleStatus": { - "id": "v1.ScaleStatus", - "description": "ScaleStatus represents the current status of a scale subresource.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "actual number of observed instances of the scaled object." - }, - "selector": { - "type": "string", - "description": "label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors" - } - } - }, - "v1.ResourceQuotaList": { - "id": "v1.ResourceQuotaList", - "description": "ResourceQuotaList is a list of ResourceQuota items.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.ResourceQuota" - }, - "description": "Items is a list of ResourceQuota objects. More info: http://releases.k8s.io/HEAD/docs/design/admission_control_resource_quota.md#admissioncontrol-plugin-resourcequota" - } - } - }, - "v1.ResourceQuota": { - "id": "v1.ResourceQuota", - "description": "ResourceQuota sets aggregate quota restrictions enforced per namespace", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.ResourceQuotaSpec", - "description": "Spec defines the desired quota. http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.ResourceQuotaStatus", - "description": "Status defines the actual enforced quota and its current usage. http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.ResourceQuotaSpec": { - "id": "v1.ResourceQuotaSpec", - "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", - "properties": { - "hard": { - "type": "object", - "description": "Hard is the set of desired hard limits for each named resource. More info: http://releases.k8s.io/HEAD/docs/design/admission_control_resource_quota.md#admissioncontrol-plugin-resourcequota" - }, - "scopes": { - "type": "array", - "items": { - "$ref": "v1.ResourceQuotaScope" - }, - "description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects." - } - } - }, - "v1.ResourceQuotaScope": { - "id": "v1.ResourceQuotaScope", - "properties": {} - }, - "v1.ResourceQuotaStatus": { - "id": "v1.ResourceQuotaStatus", - "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", - "properties": { - "hard": { - "type": "object", - "description": "Hard is the set of enforced hard limits for each named resource. More info: http://releases.k8s.io/HEAD/docs/design/admission_control_resource_quota.md#admissioncontrol-plugin-resourcequota" - }, - "used": { - "type": "object", - "description": "Used is the current observed total usage of the resource in the namespace." - } - } - }, - "v1.SecretList": { - "id": "v1.SecretList", - "description": "SecretList is a list of Secret.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Secret" - }, - "description": "Items is a list of secret objects. More info: http://kubernetes.io/docs/user-guide/secrets" - } - } - }, - "v1.Secret": { - "id": "v1.Secret", - "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "data": { - "type": "object", - "description": "Data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4" - }, - "stringData": { - "type": "object", - "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API." - }, - "type": { - "type": "string", - "description": "Used to facilitate programmatic handling of secret data." - } - } - }, - "v1.ServiceAccountList": { - "id": "v1.ServiceAccountList", - "description": "ServiceAccountList is a list of ServiceAccount objects", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.ServiceAccount" - }, - "description": "List of ServiceAccounts. More info: http://releases.k8s.io/HEAD/docs/design/service_accounts.md#service-accounts" - } - } - }, - "v1.ServiceAccount": { - "id": "v1.ServiceAccount", - "description": "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "secrets": { - "type": "array", - "items": { - "$ref": "v1.ObjectReference" - }, - "description": "Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: http://kubernetes.io/docs/user-guide/secrets" - }, - "imagePullSecrets": { - "type": "array", - "items": { - "$ref": "v1.LocalObjectReference" - }, - "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: http://kubernetes.io/docs/user-guide/secrets#manually-specifying-an-imagepullsecret" - }, - "automountServiceAccountToken": { - "type": "boolean", - "description": "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level." - } - } - }, - "v1.ServiceList": { - "id": "v1.ServiceList", - "description": "ServiceList holds a list of services.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Service" - }, - "description": "List of services" - } - } - }, - "v1.Service": { - "id": "v1.Service", - "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.ServiceSpec", - "description": "Spec defines the behavior of a service. http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.ServiceStatus", - "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.ServiceSpec": { - "id": "v1.ServiceSpec", - "description": "ServiceSpec describes the attributes that a user creates on a service.", - "properties": { - "ports": { - "type": "array", - "items": { - "$ref": "v1.ServicePort" - }, - "description": "The list of ports that are exposed by this service. More info: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies" - }, - "selector": { - "type": "object", - "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: http://kubernetes.io/docs/user-guide/services#overview" - }, - "clusterIP": { - "type": "string", - "description": "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies" - }, - "type": { - "type": "string", - "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: http://kubernetes.io/docs/user-guide/services#overview" - }, - "externalIPs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system. A previous form of this functionality exists as the deprecatedPublicIPs field. When using this field, callers should also clear the deprecatedPublicIPs field." - }, - "deprecatedPublicIPs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "deprecatedPublicIPs is deprecated and replaced by the externalIPs field with almost the exact same semantics. This field is retained in the v1 API for compatibility until at least 8/20/2016. It will be removed from any new API revisions. If both deprecatedPublicIPs *and* externalIPs are set, deprecatedPublicIPs is used." - }, - "sessionAffinity": { - "type": "string", - "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies" - }, - "loadBalancerIP": { - "type": "string", - "description": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature." - }, - "loadBalancerSourceRanges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: http://kubernetes.io/docs/user-guide/services-firewalls" - }, - "externalName": { - "type": "string", - "description": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid DNS name and requires Type to be ExternalName." - } - } - }, - "v1.ServicePort": { - "id": "v1.ServicePort", - "description": "ServicePort contains information on service's port.", - "required": [ - "port" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. This maps to the 'Name' field in EndpointPort objects. Optional if only one ServicePort is defined on this service." - }, - "protocol": { - "type": "string", - "description": "The IP protocol for this port. Supports \"TCP\" and \"UDP\". Default is TCP." - }, - "port": { - "type": "integer", - "format": "int32", - "description": "The port that will be exposed by this service." - }, - "targetPort": { - "type": "string", - "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: http://kubernetes.io/docs/user-guide/services#defining-a-service" - }, - "nodePort": { - "type": "integer", - "format": "int32", - "description": "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: http://kubernetes.io/docs/user-guide/services#type--nodeport" - } - } - }, - "v1.ServiceStatus": { - "id": "v1.ServiceStatus", - "description": "ServiceStatus represents the current status of a service.", - "properties": { - "loadBalancer": { - "$ref": "v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer, if one is present." - } - } - }, - "v1.LoadBalancerStatus": { - "id": "v1.LoadBalancerStatus", - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "type": "array", - "items": { - "$ref": "v1.LoadBalancerIngress" - }, - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points." - } - } - }, - "v1.LoadBalancerIngress": { - "id": "v1.LoadBalancerIngress", - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "ip": { - "type": "string", - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)" - }, - "hostname": { - "type": "string", - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)" - } - } - }, - "v1.APIResourceList": { - "id": "v1.APIResourceList", - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "required": [ - "groupVersion", - "resources" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources" - }, - "groupVersion": { - "type": "string", - "description": "groupVersion is the group and version this APIResourceList is for." - }, - "resources": { - "type": "array", - "items": { - "$ref": "v1.APIResource" - }, - "description": "resources contains the name of the resources and if they are namespaced." - } - } - }, - "v1.APIResource": { - "id": "v1.APIResource", - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "required": [ - "name", - "namespaced", - "kind", - "verbs" - ], - "properties": { - "name": { - "type": "string", - "description": "name is the name of the resource." - }, - "namespaced": { - "type": "boolean", - "description": "namespaced indicates if a resource is namespaced or not." - }, - "kind": { - "type": "string", - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')" - }, - "verbs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)" - }, - "shortNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "shortNames is a list of suggested short names of the resource." - } - } - } - } - } \ No newline at end of file diff --git a/cli-linux/build-bits-linux.sh b/obsolete/cli-linux/build-bits-linux.sh old mode 100755 new mode 100644 similarity index 100% rename from cli-linux/build-bits-linux.sh rename to obsolete/cli-linux/build-bits-linux.sh diff --git a/cli-linux/docker-compose.local.build.yml b/obsolete/cli-linux/docker-compose.local.build.yml similarity index 100% rename from cli-linux/docker-compose.local.build.yml rename to obsolete/cli-linux/docker-compose.local.build.yml diff --git a/cli-linux/prepare-spa-app.sh b/obsolete/cli-linux/prepare-spa-app.sh similarity index 100% rename from cli-linux/prepare-spa-app.sh rename to obsolete/cli-linux/prepare-spa-app.sh diff --git a/cli-linux/run.sh b/obsolete/cli-linux/run.sh similarity index 100% rename from cli-linux/run.sh rename to obsolete/cli-linux/run.sh diff --git a/cli-mac/build-bits.sh b/obsolete/cli-mac/build-bits.sh old mode 100755 new mode 100644 similarity index 100% rename from cli-mac/build-bits.sh rename to obsolete/cli-mac/build-bits.sh diff --git a/cli-windows/add-firewall-rules-for-sts-auth-thru-docker.ps1 b/obsolete/cli-windows/add-firewall-rules-for-sts-auth-thru-docker.ps1 similarity index 100% rename from cli-windows/add-firewall-rules-for-sts-auth-thru-docker.ps1 rename to obsolete/cli-windows/add-firewall-rules-for-sts-auth-thru-docker.ps1 diff --git a/cli-windows/build-bits-simple.ps1 b/obsolete/cli-windows/build-bits-simple.ps1 similarity index 100% rename from cli-windows/build-bits-simple.ps1 rename to obsolete/cli-windows/build-bits-simple.ps1 diff --git a/cli-windows/build-bits.ps1 b/obsolete/cli-windows/build-bits.ps1 similarity index 100% rename from cli-windows/build-bits.ps1 rename to obsolete/cli-windows/build-bits.ps1 diff --git a/cli-windows/build-images.ps1 b/obsolete/cli-windows/build-images.ps1 similarity index 100% rename from cli-windows/build-images.ps1 rename to obsolete/cli-windows/build-images.ps1 diff --git a/cli-windows/delete-images.ps1 b/obsolete/cli-windows/delete-images.ps1 similarity index 100% rename from cli-windows/delete-images.ps1 rename to obsolete/cli-windows/delete-images.ps1 diff --git a/cli-windows/delete-vs-and-eshop-images.ps1 b/obsolete/cli-windows/delete-vs-and-eshop-images.ps1 similarity index 100% rename from cli-windows/delete-vs-and-eshop-images.ps1 rename to obsolete/cli-windows/delete-vs-and-eshop-images.ps1 diff --git a/cli-windows/set-dockernat-networkategory-to-private.ps1 b/obsolete/cli-windows/set-dockernat-networkategory-to-private.ps1 similarity index 100% rename from cli-windows/set-dockernat-networkategory-to-private.ps1 rename to obsolete/cli-windows/set-dockernat-networkategory-to-private.ps1 diff --git a/cli-windows/start-external.ps1 b/obsolete/cli-windows/start-external.ps1 similarity index 100% rename from cli-windows/start-external.ps1 rename to obsolete/cli-windows/start-external.ps1 diff --git a/cli-windows/start-windows-containers.ps1 b/obsolete/cli-windows/start-windows-containers.ps1 similarity index 100% rename from cli-windows/start-windows-containers.ps1 rename to obsolete/cli-windows/start-windows-containers.ps1 diff --git a/cli-windows/vsts/build-bits-no-parallel.ps1 b/obsolete/cli-windows/vsts/build-bits-no-parallel.ps1 similarity index 100% rename from cli-windows/vsts/build-bits-no-parallel.ps1 rename to obsolete/cli-windows/vsts/build-bits-no-parallel.ps1 diff --git a/readme/README.ENV.md b/obsolete/readme/README.ENV.md similarity index 100% rename from readme/README.ENV.md rename to obsolete/readme/README.ENV.md diff --git a/readme/readme-docker-compose.md b/obsolete/readme/readme-docker-compose.md similarity index 100% rename from readme/readme-docker-compose.md rename to obsolete/readme/readme-docker-compose.md diff --git a/readme/readme.md b/obsolete/readme/readme.md similarity index 100% rename from readme/readme.md rename to obsolete/readme/readme.md diff --git a/run-docker-compose-build.ps1 b/obsolete/run-docker-compose-build.ps1 similarity index 100% rename from run-docker-compose-build.ps1 rename to obsolete/run-docker-compose-build.ps1 diff --git a/vsts-docs/builds/images/android-build-step1.png b/obsolete/vsts-docs/builds/images/android-build-step1.png similarity index 100% rename from vsts-docs/builds/images/android-build-step1.png rename to obsolete/vsts-docs/builds/images/android-build-step1.png diff --git a/vsts-docs/builds/images/android-build-step2.png b/obsolete/vsts-docs/builds/images/android-build-step2.png similarity index 100% rename from vsts-docs/builds/images/android-build-step2.png rename to obsolete/vsts-docs/builds/images/android-build-step2.png diff --git a/vsts-docs/builds/images/android-build-step3.png b/obsolete/vsts-docs/builds/images/android-build-step3.png similarity index 100% rename from vsts-docs/builds/images/android-build-step3.png rename to obsolete/vsts-docs/builds/images/android-build-step3.png diff --git a/vsts-docs/builds/images/android-build-step4.png b/obsolete/vsts-docs/builds/images/android-build-step4.png similarity index 100% rename from vsts-docs/builds/images/android-build-step4.png rename to obsolete/vsts-docs/builds/images/android-build-step4.png diff --git a/vsts-docs/builds/images/android-build-step5.png b/obsolete/vsts-docs/builds/images/android-build-step5.png similarity index 100% rename from vsts-docs/builds/images/android-build-step5.png rename to obsolete/vsts-docs/builds/images/android-build-step5.png diff --git a/vsts-docs/builds/images/android-build.png b/obsolete/vsts-docs/builds/images/android-build.png similarity index 100% rename from vsts-docs/builds/images/android-build.png rename to obsolete/vsts-docs/builds/images/android-build.png diff --git a/vsts-docs/builds/images/ios-build-step1.png b/obsolete/vsts-docs/builds/images/ios-build-step1.png similarity index 100% rename from vsts-docs/builds/images/ios-build-step1.png rename to obsolete/vsts-docs/builds/images/ios-build-step1.png diff --git a/vsts-docs/builds/images/ios-build-step2.png b/obsolete/vsts-docs/builds/images/ios-build-step2.png similarity index 100% rename from vsts-docs/builds/images/ios-build-step2.png rename to obsolete/vsts-docs/builds/images/ios-build-step2.png diff --git a/vsts-docs/builds/images/ios-build-step3.png b/obsolete/vsts-docs/builds/images/ios-build-step3.png similarity index 100% rename from vsts-docs/builds/images/ios-build-step3.png rename to obsolete/vsts-docs/builds/images/ios-build-step3.png diff --git a/vsts-docs/builds/images/ios-build.png b/obsolete/vsts-docs/builds/images/ios-build.png similarity index 100% rename from vsts-docs/builds/images/ios-build.png rename to obsolete/vsts-docs/builds/images/ios-build.png diff --git a/vsts-docs/builds/xamarin-android.md b/obsolete/vsts-docs/builds/xamarin-android.md similarity index 100% rename from vsts-docs/builds/xamarin-android.md rename to obsolete/vsts-docs/builds/xamarin-android.md diff --git a/vsts-docs/builds/xamarin-iOS.md b/obsolete/vsts-docs/builds/xamarin-iOS.md similarity index 100% rename from vsts-docs/builds/xamarin-iOS.md rename to obsolete/vsts-docs/builds/xamarin-iOS.md diff --git a/vsts-docs/readme.md b/obsolete/vsts-docs/readme.md similarity index 100% rename from vsts-docs/readme.md rename to obsolete/vsts-docs/readme.md diff --git a/restore-packages.cmd b/restore-packages.cmd deleted file mode 100644 index 4e99614d63..0000000000 --- a/restore-packages.cmd +++ /dev/null @@ -1 +0,0 @@ -for /R %%f in (*.csproj) do dotnet restore --no-dependencies %%f diff --git a/Components/GeolocatorPlugin-1.0.3.info b/src/Mobile/Components/GeolocatorPlugin-1.0.3.info similarity index 100% rename from Components/GeolocatorPlugin-1.0.3.info rename to src/Mobile/Components/GeolocatorPlugin-1.0.3.info diff --git a/Components/GeolocatorPlugin-1.0.3.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3.png diff --git a/Components/GeolocatorPlugin-1.0.3/component/Details.md b/src/Mobile/Components/GeolocatorPlugin-1.0.3/component/Details.md similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/component/Details.md rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/component/Details.md diff --git a/Components/GeolocatorPlugin-1.0.3/component/GettingStarted.md b/src/Mobile/Components/GeolocatorPlugin-1.0.3/component/GettingStarted.md similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/component/GettingStarted.md rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/component/GettingStarted.md diff --git a/Components/GeolocatorPlugin-1.0.3/component/License.md b/src/Mobile/Components/GeolocatorPlugin-1.0.3/component/License.md similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/component/License.md rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/component/License.md diff --git a/Components/GeolocatorPlugin-1.0.3/component/Manifest.xml b/src/Mobile/Components/GeolocatorPlugin-1.0.3/component/Manifest.xml similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/component/Manifest.xml rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/component/Manifest.xml diff --git a/Components/GeolocatorPlugin-1.0.3/component/icons/GeolocatorPlugin_128x128.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/component/icons/GeolocatorPlugin_128x128.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/component/icons/GeolocatorPlugin_128x128.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/component/icons/GeolocatorPlugin_128x128.png diff --git a/Components/GeolocatorPlugin-1.0.3/component/icons/GeolocatorPlugin_512x512.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/component/icons/GeolocatorPlugin_512x512.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/component/icons/GeolocatorPlugin_512x512.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/component/icons/GeolocatorPlugin_512x512.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample.sln b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample.sln similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample.sln rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample.sln diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Assets/AboutAssets.txt b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Assets/AboutAssets.txt similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Assets/AboutAssets.txt rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Assets/AboutAssets.txt diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/GeolocatorSample.Droid.csproj b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/GeolocatorSample.Droid.csproj similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/GeolocatorSample.Droid.csproj rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/GeolocatorSample.Droid.csproj diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/MainActivity.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/MainActivity.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/MainActivity.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/MainActivity.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/PluginsHelp/GeolocatorReadme.txt b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/PluginsHelp/GeolocatorReadme.txt similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/PluginsHelp/GeolocatorReadme.txt rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/PluginsHelp/GeolocatorReadme.txt diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Properties/AndroidManifest.xml b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Properties/AndroidManifest.xml similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Properties/AndroidManifest.xml rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Properties/AndroidManifest.xml diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Properties/AssemblyInfo.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Properties/AssemblyInfo.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Properties/AssemblyInfo.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Properties/AssemblyInfo.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/AboutResources.txt b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/AboutResources.txt similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/AboutResources.txt rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/AboutResources.txt diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/Resource.Designer.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/Resource.Designer.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/Resource.Designer.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/Resource.Designer.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-hdpi/icon.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-hdpi/icon.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-hdpi/icon.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-hdpi/icon.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-xhdpi/icon.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-xhdpi/icon.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-xhdpi/icon.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-xhdpi/icon.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-xxhdpi/icon.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-xxhdpi/icon.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-xxhdpi/icon.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable-xxhdpi/icon.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable/icon.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable/icon.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable/icon.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/Resources/drawable/icon.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/packages.config b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/packages.config similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/packages.config rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.Droid/packages.config diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/App.xaml b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/App.xaml similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/App.xaml rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/App.xaml diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/App.xaml.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/App.xaml.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/App.xaml.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/App.xaml.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/AlignmentGrid.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/AlignmentGrid.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/AlignmentGrid.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/AlignmentGrid.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/ApplicationIcon.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/ApplicationIcon.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/ApplicationIcon.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/ApplicationIcon.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileLarge.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileLarge.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileLarge.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileLarge.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileMedium.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileMedium.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileMedium.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileMedium.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileSmall.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileSmall.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileSmall.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/FlipCycleTileSmall.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/IconicTileMediumLarge.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/IconicTileMediumLarge.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/IconicTileMediumLarge.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/IconicTileMediumLarge.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/IconicTileSmall.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/IconicTileSmall.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/IconicTileSmall.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Assets/Tiles/IconicTileSmall.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/GeolocatorSample.WinPhone.csproj b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/GeolocatorSample.WinPhone.csproj similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/GeolocatorSample.WinPhone.csproj rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/GeolocatorSample.WinPhone.csproj diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/LocalizedStrings.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/LocalizedStrings.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/LocalizedStrings.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/LocalizedStrings.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/MainPage.xaml b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/MainPage.xaml similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/MainPage.xaml rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/MainPage.xaml diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/MainPage.xaml.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/MainPage.xaml.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/MainPage.xaml.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/MainPage.xaml.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/PluginsHelp/GeolocatorReadme.txt b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/PluginsHelp/GeolocatorReadme.txt similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/PluginsHelp/GeolocatorReadme.txt rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/PluginsHelp/GeolocatorReadme.txt diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/AppManifest.xml b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/AppManifest.xml similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/AppManifest.xml rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/AppManifest.xml diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/AssemblyInfo.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/AssemblyInfo.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/AssemblyInfo.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/AssemblyInfo.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/WMAppManifest.xml b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/WMAppManifest.xml similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/WMAppManifest.xml rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Properties/WMAppManifest.xml diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/README_FIRST.txt b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/README_FIRST.txt similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/README_FIRST.txt rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/README_FIRST.txt diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Resources/AppResources.Designer.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Resources/AppResources.Designer.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Resources/AppResources.Designer.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Resources/AppResources.Designer.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Resources/AppResources.resx b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Resources/AppResources.resx similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Resources/AppResources.resx rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Resources/AppResources.resx diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/SplashScreenImage.jpg b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/SplashScreenImage.jpg similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/SplashScreenImage.jpg rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/SplashScreenImage.jpg diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Add.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Add.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Add.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Add.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Cancel.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Cancel.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Cancel.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Cancel.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Check.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Check.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Check.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Check.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Delete.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Delete.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Delete.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Delete.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Select.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Select.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Select.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/Toolkit.Content/ApplicationBar.Select.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/packages.config b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/packages.config similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/packages.config rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.WinPhone/packages.config diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/AppDelegate.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/AppDelegate.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/AppDelegate.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/AppDelegate.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Entitlements.plist b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Entitlements.plist similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Entitlements.plist rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Entitlements.plist diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/GeolocatorSample.iOS.csproj b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/GeolocatorSample.iOS.csproj similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/GeolocatorSample.iOS.csproj rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/GeolocatorSample.iOS.csproj diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Info.plist b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Info.plist similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Info.plist rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Info.plist diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Main.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Main.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Main.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Main.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/PluginsHelp/GeolocatorReadme.txt b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/PluginsHelp/GeolocatorReadme.txt similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/PluginsHelp/GeolocatorReadme.txt rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/PluginsHelp/GeolocatorReadme.txt diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Properties/AssemblyInfo.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Properties/AssemblyInfo.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Properties/AssemblyInfo.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Properties/AssemblyInfo.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-568h@2x.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-568h@2x.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-568h@2x.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-568h@2x.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-Portrait.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-Portrait.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-Portrait.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-Portrait.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-Portrait@2x.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-Portrait@2x.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-Portrait@2x.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default-Portrait@2x.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default@2x.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default@2x.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default@2x.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Default@2x.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-60@2x.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-60@2x.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-60@2x.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-60@2x.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-60@3x.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-60@3x.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-60@3x.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-60@3x.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-76.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-76.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-76.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-76.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-76@2x.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-76@2x.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-76@2x.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-76@2x.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40@2x.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40@2x.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40@2x.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40@2x.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40@3x.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40@3x.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40@3x.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small-40@3x.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small@2x.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small@2x.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small@2x.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small@2x.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small@3x.png b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small@3x.png similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small@3x.png rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/Icon-Small@3x.png diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/LaunchScreen.storyboard b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/LaunchScreen.storyboard similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/LaunchScreen.storyboard rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/Resources/LaunchScreen.storyboard diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/iTunesArtwork b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/iTunesArtwork similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/iTunesArtwork rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/iTunesArtwork diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/iTunesArtwork@2x b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/iTunesArtwork@2x similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/iTunesArtwork@2x rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/iTunesArtwork@2x diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/packages.config b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/packages.config similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/packages.config rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample.iOS/packages.config diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/App.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/App.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/App.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/App.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/GeolocatorSample.csproj b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/GeolocatorSample.csproj similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/GeolocatorSample.csproj rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/GeolocatorSample.csproj diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/PluginsHelp/GeolocatorReadme.txt b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/PluginsHelp/GeolocatorReadme.txt similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/PluginsHelp/GeolocatorReadme.txt rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/PluginsHelp/GeolocatorReadme.txt diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/Properties/AssemblyInfo.cs b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/Properties/AssemblyInfo.cs similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/Properties/AssemblyInfo.cs rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/Properties/AssemblyInfo.cs diff --git a/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/packages.config b/src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/packages.config similarity index 100% rename from Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/packages.config rename to src/Mobile/Components/GeolocatorPlugin-1.0.3/samples/GeolocatorSample/GeolocatorSample/GeolocatorSample/packages.config diff --git a/src/docker-compose.prod.yml b/src/docker-compose.prod.yml index 7548a4154f..afc9314d9d 100644 --- a/src/docker-compose.prod.yml +++ b/src/docker-compose.prod.yml @@ -1,20 +1,20 @@ version: '3.4' -# The Production docker-compose file has to have the external/real IPs or DNS names for the services -# The ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP environment variable is taken, by default, from the ".env" file defined like: +# The Production docker-compose file has to have the external/real IPs or DNS names for the services +# The ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP environment variable is taken, by default, from the ".env" file defined like: # ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP=192.168.88.248 # but values present in the environment vars at runtime will always override those defined inside the .env file # An external IP or DNS name has to be used when testing the Web apps and the Xamarin apps from remote machines/devices using the same WiFi, for instance. # # IMPORTANT: Note that this compose file uses ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP instead of ESHOP_EXTERNAL_DNS_NAME_OR_IP -# Set ASPNETCORE_ENVIRONMENT= Development or Production, depending if you want to show up errors while testing. +# Set ASPNETCORE_ENVIRONMENT= Development or Production, depending if you want to show up errors while testing. # # You need to start it with the following CLI command: # docker-compose -f docker-compose.yml -f docker-compose.prod.yml up services: - + basket-api: environment: - ASPNETCORE_ENVIRONMENT=Development @@ -24,24 +24,24 @@ services: - IdentityUrlExternal=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105 - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - AzureServiceBusEnabled=False - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} - UseLoadTest=${USE_LOADTEST:-False} ports: - - "80" # The API Gateway redirects and access through the internal port (80). + - "80" # The API Gateway redirects and access through the internal port (80). catalog-api: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - ConnectionString=${ESHOP_AZURE_CATALOG_DB:-Server=sqldata;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word} - - PicBaseUrl=${ESHOP_AZURE_STORAGE_CATALOG_URL:-http://localhost:5101/api/v1/catalog/items/[0]/pic/} #Local: You need to open your local dev-machine firewall at range 5100-5110. + - PicBaseUrl=${ESHOP_AZURE_STORAGE_CATALOG_URL:-http://localhost:5101/api/v1/catalog/items/[0]/pic/} #Local: You need to open your local dev-machine firewall at range 5100-5110. - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - AzureStorageAccountName=${ESHOP_AZURE_STORAGE_CATALOG_NAME} - AzureStorageAccountKey=${ESHOP_AZURE_STORAGE_CATALOG_KEY} - UseCustomizationData=True @@ -50,7 +50,7 @@ services: - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} ports: - - "80" # The API Gateway redirects and access through the internal port (80). + - "80" # The API Gateway redirects and access through the internal port (80). identity-api: environment: @@ -58,19 +58,19 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:80 - SpaClient=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5104 - XamarinCallback=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105/xamarincallback #localhost do not work for UWP login, so we have to use "external" IP always - - ConnectionString=${ESHOP_AZURE_IDENTITY_DB:-Server=sqldata;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word} - - MvcClient=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5100 #Local: You need to open your local dev-machine firewall at range 5100-5110. + - ConnectionString=${ESHOP_AZURE_IDENTITY_DB:-Server=sqldata;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word} + - MvcClient=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5100 #Local: You need to open your local dev-machine firewall at range 5100-5110. - LocationApiClient=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5109 - MarketingApiClient=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5110 - BasketApiClient=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5103 - OrderingApiClient=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5102 - MobileShoppingAggClient=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5120 - WebShoppingAggClient=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5121 - - UseCustomizationData=True + - UseCustomizationData=True - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} ports: - - "5105:80" + - "5105:80" ordering-api: environment: @@ -81,7 +81,7 @@ services: - IdentityUrlExternal=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105 - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - UseCustomizationData=True - AzureServiceBusEnabled=False - CheckUpdateTime=30000 @@ -98,7 +98,7 @@ services: - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sqldata;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - UseCustomizationData=True - AzureServiceBusEnabled=False - CheckUpdateTime=30000 @@ -118,7 +118,7 @@ services: - MongoDatabase=MarketingDb - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - identityUrl=http://identity-api #Local: You need to open your local dev-machine firewall at range 5100-5110. - IdentityUrlExternal=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105 - CampaignDetailFunctionUri=${ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI} @@ -137,12 +137,12 @@ services: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - - IdentityUrl=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + - IdentityUrl=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. - PurchaseUrl=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5202 - - MarketingUrl=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5203 + - MarketingUrl=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5203 - CatalogUrlHC=http://catalog-api/hc - OrderingUrlHC=http://ordering-api/hc - - IdentityUrlHC=http://identity-api/hc #Local: Use ${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}, if using external IP or DNS name from browser. + - IdentityUrlHC=http://identity-api/hc #Local: Use ${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}, if using external IP or DNS name from browser. - BasketUrlHC=http://basket-api/hc - MarketingUrlHC=http://marketing-api/hc - PaymentUrlHC=http://payment-api/hc @@ -150,7 +150,7 @@ services: - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} ports: - - "5104:80" + - "5104:80" webmvc: environment: @@ -158,10 +158,10 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:80 - PurchaseUrl=http://webshoppingapigw - IdentityUrl=http://10.0.75.1:5105 # Local Mac: Use http://docker.for.mac.localhost:5105 || Local Windows: Use 10.0.75.1 in a "Docker for Windows" environment, if using "localhost" from browser. || #Remote access: Use ${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP} if using external IP or DNS name from browser. - - MarketingUrl=http://webmarketingapigw + - MarketingUrl=http://webmarketingapigw - CatalogUrlHC=http://catalog-api/hc - OrderingUrlHC=http://ordering-api/hc - - IdentityUrlHC=http://identity-api/hc #Local: Use ${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}, if using external IP or DNS name from browser. + - IdentityUrlHC=http://identity-api/hc #Local: Use ${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}, if using external IP or DNS name from browser. - BasketUrlHC=http://basket-api/hc - MarketingUrlHC=http://marketing-api/hc - PaymentUrlHC=http://payment-api/hc @@ -196,7 +196,7 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:80 - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - AzureServiceBusEnabled=False - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} @@ -209,11 +209,11 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:80 - ConnectionString=${ESHOP_AZURE_COSMOSDB:-mongodb://nosqldata} - Database=LocationsDb - - identityUrl=http://identity-api #Local: You need to open your local dev-machine firewall at range 5100-5110. + - identityUrl=http://identity-api #Local: You need to open your local dev-machine firewall at range 5100-5110. - IdentityUrlExternal=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105 - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} + - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - AzureServiceBusEnabled=False - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - OrchestratorType=${ORCHESTRATOR_TYPE} @@ -235,7 +235,7 @@ services: basket.data: ports: - "6379:6379" # Important: In a production environment your should remove the external port - + rabbitmq: ports: - "15672:15672" # Important: In a production environment your should remove the external port @@ -246,17 +246,17 @@ services: - ASPNETCORE_ENVIRONMENT=Development - IdentityUrl=http://identity-api #Local: You need to open your local dev-machine firewall at range 5100-5110. ports: - - "5200:80" # Important: In a production environment your should remove the external port (5200) kept here for microservice debugging purposes. + - "5200:80" # Important: In a production environment your should remove the external port (5200) kept here for microservice debugging purposes. # The API Gateway redirects and access through the internal port (80). volumes: - ./ApiGateways/Mobile.Bff.Shopping/apigw:/app/configuration - + mobilemarketingapigw: environment: - ASPNETCORE_ENVIRONMENT=Development - IdentityUrl=http://identity-api #Local: You need to open your local dev-machine firewall at range 5100-5110. ports: - - "5201:80" # Important: In a production environment your should remove the external port (5201) kept here for microservice debugging purposes. + - "5201:80" # Important: In a production environment your should remove the external port (5201) kept here for microservice debugging purposes. # The API Gateway redirects and access through the internal port (80). volumes: - ./ApiGateways/Mobile.Bff.Marketing/apigw:/app/configuration @@ -266,7 +266,7 @@ services: - ASPNETCORE_ENVIRONMENT=Development - IdentityUrl=http://identity-api #Local: You need to open your local dev-machine firewall at range 5100-5110. ports: - - "5202:80" # Important: In a production environment your should remove the external port (5202) kept here for microservice debugging purposes. + - "5202:80" # Important: In a production environment your should remove the external port (5202) kept here for microservice debugging purposes. # The API Gateway redirects and access through the internal port (80). volumes: - ./ApiGateways/Web.Bff.Shopping/apigw:/app/configuration @@ -276,7 +276,7 @@ services: - ASPNETCORE_ENVIRONMENT=Development - IdentityUrl=http://identity-api #Local: You need to open your local dev-machine firewall at range 5100-5110. ports: - - "5203:80" # Important: In a production environment your should remove the external port (5203) kept here for microservice debugging purposes. + - "5203:80" # Important: In a production environment your should remove the external port (5203) kept here for microservice debugging purposes. # The API Gateway redirects and access through the internal port (80). volumes: - ./ApiGateways/Web.Bff.Marketing/apigw:/app/configuration @@ -289,7 +289,7 @@ services: - urls__orders=http://ordering-api - urls__identity=http://identity-api #Local: You need to open your local dev-machine firewall at range 5100-5110. ports: - - "80" # Important: In a production environment your should remove the external port (5120) kept here for microservice debugging purposes. + - "80" # Important: In a production environment your should remove the external port (5120) kept here for microservice debugging purposes. # The API Gateway redirects and access through the internal port (80). webshoppingagg: @@ -300,6 +300,6 @@ services: - urls__orders=http://ordering-api - urls__identity=http://identity-api #Local: You need to open your local dev-machine firewall at range 5100-5110. ports: - - "80" # Important: In a production environment your should remove the external port (5121) kept here for microservice debugging purposes. + - "80" # Important: In a production environment your should remove the external port (5121) kept here for microservice debugging purposes. # The API Gateway redirects and access through the internal port (80). diff --git a/src/eShopOnContainers-ServicesAndWebApps.sln b/src/eShopOnContainers-ServicesAndWebApps.sln index 08dd3e6561..3a1dec68a7 100644 --- a/src/eShopOnContainers-ServicesAndWebApps.sln +++ b/src/eShopOnContainers-ServicesAndWebApps.sln @@ -138,7 +138,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Webhooks.API", "Services\We EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebhookClient", "Web\WebhookClient\WebhookClient.csproj", "{766D7E92-6AF0-476C-ADD5-282BF4D8C576}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Devspace.Support", "Devspace.Support", "{68F5041D-51F2-4630-94B6-B49789F5E51A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Devspaces.Support", "Devspaces.Support", "{68F5041D-51F2-4630-94B6-B49789F5E51A}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Devspaces.Support", "BuildingBlocks\Devspaces.Support\Devspaces.Support.csproj", "{56C2EF0B-6BF2-41D9-BE07-6E6D08D06B35}" EndProject From 41385b42ebb6733cd4d90085920c11635614badb Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Wed, 20 Nov 2019 19:17:08 +0000 Subject: [PATCH 138/149] Remove old test docs already in wiki --- test/docker-compose-tests.override.yml | 20 --- test/docker-compose-tests.yml | 10 -- ...p-powershell-infrastructure-containers.PNG | Bin 153044 -> 0 bytes test/img/functionaltests-catalog-running.PNG | Bin 218838 -> 0 bytes test/img/functionaltestsview.PNG | Bin 15493 -> 0 bytes ...l-application-functional-tests-running.PNG | Bin 76207 -> 0 bytes test/img/integrationtestsview.PNG | Bin 26263 -> 0 bytes test/img/orderingservicetests.PNG | Bin 9465 -> 0 bytes test/img/services-functional-tests-folder.PNG | Bin 41410 -> 0 bytes test/img/unittestsrunning.PNG | Bin 63396 -> 0 bytes test/img/unittestsview.PNG | Bin 12037 -> 0 bytes test/readme.md | 128 ------------------ 12 files changed, 158 deletions(-) delete mode 100644 test/docker-compose-tests.override.yml delete mode 100644 test/docker-compose-tests.yml delete mode 100644 test/img/compose-up-powershell-infrastructure-containers.PNG delete mode 100644 test/img/functionaltests-catalog-running.PNG delete mode 100644 test/img/functionaltestsview.PNG delete mode 100644 test/img/global-application-functional-tests-running.PNG delete mode 100644 test/img/integrationtestsview.PNG delete mode 100644 test/img/orderingservicetests.PNG delete mode 100644 test/img/services-functional-tests-folder.PNG delete mode 100644 test/img/unittestsrunning.PNG delete mode 100644 test/img/unittestsview.PNG delete mode 100644 test/readme.md diff --git a/test/docker-compose-tests.override.yml b/test/docker-compose-tests.override.yml deleted file mode 100644 index 27308ec750..0000000000 --- a/test/docker-compose-tests.override.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' - -services: - redis.data: - ports: - - "6379:6379" - rabbitmq: - ports: - - "15672:15672" - - "5672:5672" - sql.data: - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5433:1433" - nosql.data: - ports: - - "27017:27017" # Important: In a production environment your should remove the external por - diff --git a/test/docker-compose-tests.yml b/test/docker-compose-tests.yml deleted file mode 100644 index 113aca9eda..0000000000 --- a/test/docker-compose-tests.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: '3' -services: - redis.data: - image: redis:alpine - rabbitmq: - image: rabbitmq:3-management-alpine - sql.data: - image: microsoft/mssql-server-linux:2017-latest - nosql.data: - image: mongo \ No newline at end of file diff --git a/test/img/compose-up-powershell-infrastructure-containers.PNG b/test/img/compose-up-powershell-infrastructure-containers.PNG deleted file mode 100644 index e5fbfe25ac94a506fa2e7272c6eb88a81dbf1b50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153044 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

bqQ!~P0KIZdnOJ623 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 diff --git a/test/img/functionaltests-catalog-running.PNG b/test/img/functionaltests-catalog-running.PNG deleted file mode 100644 index 98d7a34f3523996a1d33bdbd22f4dedf91703b94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218838 zcmYJa1yEc|^FAEh-Q7LdLU3o%;7)Lt0Kr{?ySrP0y9Kue7IzK0ID`O;1PJzV?|py& zudBAU=G4rdb9#Ea`{`#oT1`a`1CeNVnK&T{`Ljq zrXeTwu5OzAE~98?SE($kE0sULdw!0+0Xrn>!|}K+ z{AhfIj6yHp*Y=v{IeI?1nJw&Pb6Aj_zga#uKCVek^PfPe!uT$ArT&v$aU=zI`v2sm zISDBDf0tvM{~R;NY&6mRZ_!MoY$*zPezY2g8{!-UK3@f?M-vNxOkHRMAxXLeP(VxN?4^z|%HBnv}G!Sny_<#LH*(pOD;*{5jz-!m1$C1OP-&hGw26mqvWAo8RYvB9CJ zCyK-@@3&nfq7xFrcxr=HT2Bf-B3yenE?(1}x1~R%k7|GR~r2*X& z$d%c%kME<7{hL_uG&At#P;?8w{J#ZsJL<1j zZyg)x!HiOmEF&At+$N0P~V7`f6Z{`)RZ zw6Aaem>pwvQ5=vt}*s9EQ zy7&Hl0!E@BJyY2%7dwVg)(*PcS}&JW%E*CzTViL6rF_=NZH~XAUQb*yu=_*Qs z6(b;UG<&pDDpx4M9d};g6NG^xN2Wg0Jc9_Mlpm0iDC$C~ooLb_dujl1&}%FpE+|Y% zp1jZvS!!H9oBE|1FwjnYe_2S47q{D|AuDQwpZU;LJlFqQ`*P{8R$QPf*tvJe?`g+SqtB&CS2M8qDCOolFk|HaehrY0i`Ve{AxK3(?Z$%6|vg&!* z$m3b#%ycEN0D6;@I5A+v_7EEfo_dH?ZI}O9t1H2XkQJh8(?@_So&r{}|!u*6SaJzSgNl z(kb^Iba(ciU* z_Qt9+JRGpN(lJv=BW)4lO(#GNvWQ4B3sxg>AxOy&~Q>lJ_&NmVvmt4~oqIP;(OHQ>b?Zv+o)7Y?y7dUw;r=!Ox~BQYI7 z%G|+QIWna>O36xb=~k?Wq)n`DRtu;VWVD(CRp9$J zn{jl8Y+r(@a6q!PsFN)bYw1o5Bf%^+kTFDP20lf-cpTl%5C(&dU@S}>TsYgSp)Q8c z-|m7>s@;Y^t|xzZXbuP^l_^$8rzOD?Y%>r}LQf=j(2e<}3Q*pI1>oBNj;Ay1h{F%H zrLX3y0iD>{y|;980I?di5xp3t>g&;)I-=<1C231op~&$Y`fNTaSy6H6h-txIq^X>r z%SG9m5+m42knLtX7yQl@6uHM7dQd=fyApL_9sL3gFO{P3$1+cNAs4Zuq>~{4eh46M z1n}N~S=z_h_$bB9=pR#-_o9*ZfC#y4hM|WyTQVm&g7{DmL2VW!ZB}X#j+1Se1%>Q; zM0YV4Yx;mE17R4F-Xs5u83vGJIX#KfXGs#L&<(;+z=mu%daJ&e4T;mlKlaWtpZy4b zhvA|U5dMgMM{zDKNpfzm0hY3A$8t46A9toY=w%(zJa>C99gzL#t`_kqboWq%egv|B zO~jBSq2%#CQ)^bU@^*l5GctoLuo5MU0V1+cJ%Tsmj{`Rqp})>pP$c@i%|!E2LQjWq zr-G-8&=V^~+N#v7>S#zPL$!t3%pDH7JJlk%B1UW|Cqe-tBiDNMQt2czN6_Jsz+RPb zR=SawBJ>lj>>DaFp}Ime%FaF)o%cO`Bw~Gylwy=Y*7tF{gqthqo4*!%dfqjGh709F zQ_L12@-Y;STbpbuLA||Vr%+ zs(37}zLI)(7Z75xE6ADKQ@#iR&*sUQ6URbWa64xB`$ah&2fY;V!Of^;{e(Q{C)g1_ z!mcipvaa|`Ju)))0Jp}67DC-NKC>-GvWP!%lK7Q=Pg;B#47kvu;ClT>p;bOsSnZ3o zm>TqN5+tOVzXpc$!kVmiQS!M(ai84XP0)26ry;7^1%DQ>(}A`$=Yve|)cUoUjZX)_k(uSXTb$zJ$oG13Vqu4BjYBVJ-8^9$hU zgQ-YHIWa{J^@xE#EXom%@;@qo*+pW-fbS=U)BZQ~pxCiYlcjkPRw zh5-LUPWLk=@yhSglunCQRk;1KKYU!Mk|XaTR?vY3(MK8iBa7lHFlLLky!g|R=uFGX zcF}bENMG*n-`RhN>xY6r;i}T^-cRyla!bD@x0yq(BC&pxe=1mIh2GoOA-Hu8Y?h=oWGB-aIm`V8S#R`k{<1F5oA^yV z_lv*X4$c@5U^&>fRErN`hq5j~T8DF-r$e|I#e~HPuYsOHIww zrY+;aNS;)wJNNC)ry-9TN(0OpCld`v%S5iv7QR{+xRa(qmW0?&7%h*x`NnSO=E+%k zs$|{|h62*CW<-!0(7z*C)iGux7vRHN+9yp)6sSiYyLnve0ikpeU(w%Yd?;J9i<;D) zvRDLT!(>7ZI@X#90a$ zkE-ohB%q~3K8K+n3;^<&jwo0`R?V1_B+Kz0@6%{DJ1`B2-hBU_kgJij)heO+cV22x zn|W^dc!Tm|h<>1|wN2gNL$hM0%Yg8ar*UhnAMzQ~!_6VJb4Gc}1%$4P-w~YiYaPn zw~t*(E}M!__B|F8M%C}Zk6gF$Cm&V!<{p67F_3U8g{;3T3KAmb`!NMbN_nn^%+7yD zYZq>~mlE*wPhUv*aT+F-h#D`=#hwfsh?C@2ZXRsKn?|=$Q<@9qrz0PyRb4sWb&jPL zW|0aI#>+z68*f|SJ|_B&&N2|lhANi}=xH=xu1hj~fTt77StOnl#wFo4Cmu-m(UQ_?N{pVn}ywpiVqzduyY6e!Vh}rgd~{bEV3+4 z+UF#YkQ*o#exbu;;TO(&U*tt>Y@89Xdat*!G#SQkQyA7Pi-^QYP z=fH<0s+KT(Jy*B?hRO@F+y`iwQSjLLLs_G#uwzH~T{wE*3h&X=6~y3KqXwGze$|xk zJ`Hd;2}2(iR7@-G2MoD>OoNahg4OjoGK!m~IroG=GDcb*i!i5Z?u6#sG#w?4aVSJk zLBq$@^pDbtPn0ny8pNc)U#ExPa`~eqNW6PZV*EmfNRxgt`X(m>wZ(NFO{&};saA`yI4#wNaX`h;jTh`qT>= z62+sdsQaUZuU=x=u%wpF6k^`emaYnnoXn-d1`)cFtJ5}PtFdGIe#zj!O&Lx5sTlm`Lhve~Bz#p<=HX-55DBznA{K`vh3TYOk5Mte9CdszSe; z(XfJjz#msLbRm%|egi!8(vFkrdW6I3Cby~R>w-*{P>uMCAKPE#u7oLTrBOHiX z_rCeJ*X&w&LYov*1V0;=_o_FcBV-i&jXBZ?P(F@+civK=Ol0oSO4?E)Uj98X;Bva6 z`$3xuB-*;qTTmDvm4wl# zfI>VyIp2|PzJh%(M#Ziu!mieKxQG?;-hvJak)DEXTChV+*PXSZno2%=f9^QuvgfNw zFq-iiniasBcZ*(}eP>4fhl6p<;SFQ&mW4@uRQd!p-$?yjRMvS`R_PqvzR19dqz9n3pKK3Y!@)@x!K21I^=p0z}aF?cvkg2>umHC?gjKxUG8kp_tMP=B8ph! zH%|CTV{{}huc{mQ}K3$*O=8dQkH~ulXaLs*-X_W2%xOcXldFw)N7WTCDYi zripR&?}jz4KH>mpkhIi zaqwB7;CiQ9U`CCEBh^X|X*t}(d{YmsMp6g268=kzS=xi01H@;x-Vnd4OsmMnREmDM>O1Zn=AF-I=-rzykj{!G6{hn4tw-!UJ(FB#a;Cikdw80^v>?6>+{s z#puC>E3U}n&NXH5B)vMLYH2!Y!#H6@=mhKus1vM=ARpxX2Z?kuAIAnsL`yw!ZK`Q{ z>Nm5ykce>>vl)f2Lrcf`gOZGcW;t-BAMs*uyZ^o>lhrdLF2jM8mCj+n%Ehqg+)%f! zk2$uEtwl8o9Zc{u+v=$*ZZy}5xgZhkmkb~WEe&$RV|kyHXEOGn#;g!A)A5`}O{Wn% z!8J`&YVpX$Tt}ZRl}~~XZnQbTLx%l6nwF8+&Or_8#BZzI1!y5bBU5Hrq>+ZLRy`Re zW(DOkm`mHxirp&Ew>7uqacJFi#H`XFZG=@=KV)E1AbhNr0vuV14XO$N_vtx&fiLG| zw8?dQVstl<&r+7{i3FLD-imRxb%FS~hJaZoW&FqqJV z-ts=E^+}DSm}lh!HK?(KlSj%@>+urhdB)0xGEVLB(ub=M*HVv4g(Iyv2>58$Q4~k~ zg_)aL8rNny_NB@yd^D-Mov0WPjGboogYk44d9^{wRG+qW=E(#1?$tBIpEfz~%24$# zB4F=g9l-4fwe#<~#Me2Sz}a`3-q5_altC>hbW0h+sGnYZgRW67$9Zxm{=o3FX*3Uiem=0d_} z+N6d$;oYBkWoo0=;zrBNMkg+dBtg#PpH!hNn7rLxNSN+$r@ifXBZ0~d^*;!;skXzl zFp{%~d)hl-yT5&o0Zw1vy8OcX1^vY`o{AC{e1k$Kty2{?iS&7A8Vk#8{4HcYVs%|U z<@o2|XvzGX@PHmp=6l~@8CT9(jBEaewy_GDy`Px#Jrjs%#g1{mICes(0^umeh`VYvnD31wPzEv;S1M?jZa2dBmM6_yV(V z4A$e6Xhk=>mO)i)=utVY?;g6#AtHAMt0^S3&8Mb&JF-e}6?&(;Be!2NAnqA#$`R`* zRIi*?S=4TkoE)GapJixaa;ViKy4hq8QHIQ zGA_MGaOqT%D?xq%qH(sQ@!4I?&J=x8)AR+uEbpk>N>Er-Tgt3U2KKI1A*~4Ii%aFZ zmuX*kt`KnY6RB)N6}vFa7B|Q{qjqZuc6^F)ZZ2bOV$Fc^Z4Ls_1%-t}UG-j|o^=1A z7kr?8OIG6z^Lbus#IcZzz>|d0kXqX>T?(m{!lthk{ceJRfp$?61F_23hfvzh^5AqK zd6iF?LVb-`RNeCgFOG69w{Z)$A`LiyFt9-VUVlv8oMh;Gb+Gg+Re{OgJW0Ej95sq?b4bC>GPPv(g42qFf22FMV2#7J} z)n10y*my8(1l~qgjF8fWntwZ-K<=vHL+&U>^Rv`_veTV8sMy~@ASclSjN0&54YSP- zG}lRumB^tIIaMMz5)DfpiD}(O25y@4uBoPsHx`v&VOw>lMfwrw`tH{?vk9#}C9Rr1 zf@h7$Nf_tPuOI_e$aSg8{!x3wZ*MW<=L0Tl`u4B#a4zgr4jp_oV!y*8Nw~;_d9bMJ z#$+?rV=2H_+WFeNh8`K0J=bS6#z|1|ig^>IGAy2L^Ly4b)$R%n{I{ zv4^24ycauGmsd^Ru`vmPTav+v*`rwk1u6nmw6eRcu7U9hd(s0RYdsaQ!l}ve?@7%A z%=Hrw$ZHZq1l-6~RN|%UiSA5|7)hcJ9vB@kn^p97M&Lbm`0Fp4#KDAca&%bVhHkh9@^CW zQ6mp3jw}4`(lFo1%!@sf7${JnAgM<3GGQ{k-?B>|Ibg|>Wn$J#&-v$McAMJAOz>rw z;RHmM{NVTwdJXq}#s}$uxaMQhK39kk{56<%b%&6HO-3GLse+N9=%azGTe*SW^q? zLL0iK)NwSJSF{v2n0qf3>Pp-T6==l#tY?Aea|vpj@m{ z5J$v|Gc1ae&@0gZ}6gX;FPZb+sH_$9YLH$2Yw)oSw-XvyVT zm-wK$wvS?%toYxb06r8;R4<{rHXrS2}~7Us2sRM zkR&Cdb4i)>AZ;T^e7`69@L7(yPpar{~EE~4FK3VL3R{aIh z<;@DvhG{a~JzAva;K^FeQbIiY=?9x`UTWH!Gql3W@UI3r;3pOC?G{eHp+m1tLXOkC z5~p8dj_D77%|ddy_QjJCOklWEKaRS)TO$;nbD5vh;JpyjL{D!cq#qwQ`puy5+G*ga zCz}Q1|F>0Wp;L!L2}W|mF6#j7{5K%r?*D1OlLeckgFg7`N}YQ8Pdz-|KvPJx4A+xe z5ucd2=9m8##)fIA1i7jMnHDSUhonosmJ$Sop3pwP_LC*t3+C}*ubQzA{akFhM#x~B zFi)%6UR$aDTMY?9X~ndc3Higpewmml0|d^SI(xXOKf7}u$ ze)Zl^V45|uOP@rrWJ_A)8K;S6IA%EE46eV*(f~(vYkOo;(ZP4GBSa-1BkcupoTN{eHEoyrV64T(uoDCO5T0{}A=5AMN!mNC4E5%@$y5`P z)(M1-jmh4Sa3ZeH%UD3?5;LyjM%M#Y7v+2*4{RbLux_jy0crcD(_)Q2-a=V`Jdhd}5QqdR1aWS9GA+kWY&BWIId%QkVHH;FuC;8`JK+pkXKvY&;UbQc>f7I6 zAm(!rDDZb>9cJDA*@T-y%^edR4NRmIgoT;9hb)$uom9_n;%-TRIo!@oRbD zEnGhSVGlvZM-p~7cC65EZqtib%m4EbJ>46C5^}6nrKONW>UmDa=YUpwC}rNHN+ZvRmQ7L`U0~= z9$b`iZr%w#`R&jl9Xqc^>A6cRlugZ`PUZffkNg=H71cI5EsF1tfrMCZ&Q%;06@@(% zkq82T)LZSf8*_$=71LP<=aA|rU-RBw{tN~UyF?OjER@;$VPd^#Mi>b)VQ}@`<_gt#?W||UA zq(@Y)v`Xf8vd`6iWO6@SB~&K;GaQpA@z-jwyS~iqe69o@;_&uQoB3Nn;H zA&_j3miNyAoG1Rvhw%mC>lKeY#w(bb@K4U;EU!aj!@KI2)Lp}rr37RB=>2yAX1U)oP9R$N>PAJfqp*VHBh%{>O zB#&+2{+gr_7cY!b;qCosG24vUmi6BL5p*ZJOlii)p|%F5D1CBUJe z2yJO`AAdz_f;;kyrd&FS=Q^Hjw>cCc7i^&N`$NBT48=GmqLA-X^1f&t({mGQ2k5{g z_WZ!^Q|%CP4ty|e`!r-<@fL1}f>08%szX(Js`sY8+(9CzDrwIpswkwlH&Cm!6A`dl za9m!|43mB|b%`9$wF53>N8%Wel9PXZT`H0**o+tU<&U@m*Qy1V_(J~)Sp^fTcb*W{$3jA<>is% zxVpIwZ=anxq;T|jN{R~9&lVM{hvIs(i6lcAz?W+(b!36%AJZZ z_>%uMU-&L+Wm5m>dhP4NTE@eJk6x1{4&i&f5E|)-V#h8|^Mg3)$3MThoHlOTU;et# z&r};_MgS2Z*WP9=Iw7r6?{{~1)k}5AmGCbn6^Bx+gtdy_CH(#w76xM3T`kBDQ_jVl zO%6Hen;9{=KHQVH?v-Z?TM6zl$gtSz_R(vzCL`w%#$D!=Xv0m&3p>#3P@fW~W5KC> zz;q!WI`=^13L1c&%k;qu(#*!~%pV<|kW43MKAk5B6MeNe$WJGi4c(Y@%=&u>a3`51{$)&onYbS7A1No` zY8+poRve-S-2rov>*BU=?E1Mkxjrl%e3d|MbJ~Cq_70| zJy)sMXbz#w4|x0&9U#$-RPOovC$Q;0o-;5$*ThBl+NL4E8+6s7BalET8dC~Rz?P(w zsW3Ihf%*j4{`{8h4X@)rgHe7>nZLhJFYAEtpm_KuY z&!N73)OENrA^WEU`=wn@r^EzKGAu0n=%}L=3;UJRV0i+hm%Nw}U5+AuK6vx5a(>Gr z$!(gK>s>!A?ozP0d~bx00d~Y1Iu0_s!59L#YeegO9KdGc437SN$pGkPu=`@goA$a0 zXGHw4GG6XU0*%{Aw0D2KYxOgoDZJR38(?=a?VrfHzC`Z#B*ofxrs!Sw#>XJ#|N1;D z*?#IdsM_}|^tV=TAWX-fL$@PFap+ip62dL&gT&mCt&Rk0aU5yQVdU8b`j za~6TZYiMXVUo9$V)oJLTL0O{PojsMdQc`e}lNzw*<{B+$`nY_qEG!q8m_-70c0@mL z_T1pk&ub**4sy(k`6pL&YrYUWpVQ*Qb}BB=rgv9_P1F8cDrFZyz$w*y}>bn$Yn z4XW={YpY8dwhsC-ZGx}jXqtHU+JcXNcAyEheU2xjqaqYE0F?%#YHN4AD`C@?ld0}B z6WG8FZ`nW}TI|C`)2Wq}x{%$5--FLfc?;qW;KB@dASWmRUL9@`CQ}AG zs_3FpbwYc49?=Ft)s__NUchyo-@s3HZKkj*4Q84yp$`_(SmGl3-5zb8zdxZq-A(q} zT_2@_YPaPbJ_Vk4WR7l~GM)m0Z!RBv7$PsKbI0jn6*^JX2w5A=8m6Bz@80K^?pj44 za>!AhdUliY8}cKT$|el14j3Wi;~wN$QQ@#8Y%Gr0^Ph!->wdFM7srEF+1Sip=l1eq zzHGgqX!1?UmFiW?Csg1^j+<+b$*uT8*m;$yRXa1k!cAm44M<;zMt$NA){kO@#WN|4 zc={fjEV|>N?aRLjewF895^t zXPmXM#txV5214(W$`B^b8D;Ex(JQ&-FcwPx5+t?cS3bF+rR- z@5#`+I|SviH=M*N{V&bVex`r@@R<)k;tjFH%$CS}Y!no1KvrkuaxrsQYeMk*b5`8# zHE7)&`?rZ_e?LXaZs+MN!3_IH_q%gVP%u7|O5=;H5EV2Wx| z3r}u^`ivqxK25-_?*d7mg>|h2pZ2}7I9Z-2omz=+)#ePJsN8*&w;kl}DzuE&cBp{8 z6$9~36?&S0DjG*9iZ08F72WQ+>LGBJFigaj2(q35Mahccdml^vlNG-*TYvc|UC7@? zJzq3%D)+NgA&;Q>!an?EvkDUZ1^051>NL?g0||qS51rhIoFnU)>%L3iET*Xm)%lfR ziaT|5I`i%iwjEGrsPAbtlD{kPZc{gl_r%Fzqg_&fgusgI>4DD2%q)5T@^!GhFfe3B z>`}^}H;JF^ni4nAAnGn#@4XrAGi7MJk6=UcrGqTt(blllzHG&jc!^^-x!jUQ04H*_N z5gmu^-N>jF`-2ibjT?TsA+t)UG`^jndgSzV*%k#@aS$1zn~e`uAGWBM)0Ip#_~;P)HB$=5Nmdh2kjl2Z(2BTC^_lW?d2k^S}R@cLjY_luhNgQtLT3f$mF6&E4TxZJ^+z zPI&W|z+*<$z!K;2iNrJqKBi1LzY;jrK9Kcbf~jpras z2-BbEzdb^qt~q1VF&Hr=0mbFw9Zu|G>vltFPAaZiPh^U;3SSSrLEPf?d)uX-x;!ze zbn9vO1h4Hs0>i@ddQRf{g}i&Z!6Qg7Q*-QIjJvvMe4bA6()_V2Kqnc4L`hyWi{dA;H_ZSPd}mPF3*-q^<>y;)uX!Kn1pBL z*sgT2ObTfe)v8P0TKCLVsmKUbe~ngEkyWN2#5cgwjq5|<$2zCq{~J#U6T2(D)XC0O z^qDR2KFoJ&y-22Uu>QwB z`tXEyv6So;L!$G##kgcmP}?_+p%DV5_J+I<-w7DQ@3@r!L4^%j2B>kI6mmV8>*pPM5X zDzj!3eEOX?`{n*}Tz#|i7HFJ_`nKsmdo93(N?BZzx55ni&*Tx$z;QWv@=fLlqaw>biSJh|D)>B~#2@l*#IQM#?D)~aiy7gkfFf^cp z{?BlGlLrIcfBAt-%*^K>b<;?mPD<`#e~$ws-QPkpO(Uz>55J)*C71GvgN*Rw{Ue)F z<=kZ;@Dz>qYEG^&<=QbZQTzq}`e=rLY7#AEVn;h0Oz8(3PsSgt;8Ku!e74yohfQHj zV{Q)W`#iio2kBG77f8@8%QC&BShu9mxjDe$7x2$1tYctBkv|5~52j-1T*LNjqxy!KLGfPUvZM6fz1PipIks($yAG z^xX-L99E23vM;;&YRbL(+esi#MN0sT1h)j{0}op;Gs<=Q4ps|wj~C-&8Z+)aiyZ|% zxm6Zt)WW>l3#Ae>#ypMI@Dk`{C}0E`Hduf$f#_?8Rx8<76CqctU$4{tYjWDvC=p>3 zGBX>Qkal1E%xf+art3od{Qz{3aWFAD@GSDge}5eD>gtmxr=WJt{Jb&|+y79>E%_XK zq;D*2$O`{!{Gjk7(sHgNXegc^lV~&Yl|t|T8qzozywN77H;-t9oH$kT6ygf`EmQ|lAeHO+vB!CgC3r#EQ3)|c(!zJQhUX-}qd9WR z!}M;qM=2aDjY|}~{5^*H+BwQ*=Q|2c^9S<78#It6~;yS8Ip)^u3#N?VY`%@bz9YMuY z1^tiBB0{ZA2paksxyQ6H*ZWpLI_e8MCLdce8~UQt5`R7LyQ{^DG>V^MVyVQeg{nD1 zq2$_&R{nqebQ}mn@IMcRgF)rd$BRAAC7R9FGTslLTQk??Tsn3`gGnca?Iqe$SzSoR z_t|^mO9;@beg|KlC0;5Tszebo{#W9K?hsHg3PmQ+8xhYb(3I@C;jmO_Q&3)P4%tM?uy*AA*Zc;(fUiGZHR3oE^GE;9u|KD6or6)CfPTMwRdjng zjPT#P;o`m`+dd6h-l(bQ&y{KazIv;VK}l812u;cZV&$H^Xms$Dw)#Y0j64_t8 zI;XV)d*N+UB%O=cAZ&O*Cv>ia5jd3>uX`!L`ng*1|61>$iNSc7i!yLZo;@+1wV(0k zTnbZ<@gHwp`;TT#3oWR0EKq7lUs7uS|F%7J@8dq(p`xyO@!h?W;lSNpAo${%j(8k<@Us!;=0rrnmZ>I83)( zd2t&`fk$5~rsHYB8?U5apLz66xbcT6m8Z5LTI>odKi$XwvDI`%#jo9@oU}dMwt4e7 zzdv0g!A&T*YiKkV>!Mc}h$nbG{WtNg4(e6}=kJL?c1JGpYq@o&JBgFduSaaLo{TB* zm*T&S;v4uZgoWZ^V`BX|7moL=<=mMV-DRSVI$lJ>&fg_^%^VPy7`t6Mao=6NI5HVc zL6-XYZ!hI;5XvFze#j0p(%ge;uko}>R=oPty}zln%jJXre01j539G`Zjna8%maFzO zfo6=VqknfXNSp&@P95oXmnO-ZL|sp3CvO1!$#vuj?Kp2FL7%*O?0bmSlr_)W+_z$$ zfCzL5kNHgudjzOZJy0-$TV7$?#TZjjYn(Kn z(2P)YaFW~|ndfwEY9f{XCv)1idHx4)VGW4u-T_jCw@=0&T;#Ez4!d%4tpS|Os;2!5=6Q-+(>Y=(F;a} z*-F0DY=nB~_xt21qpHv!ntSC$j?*9w9;i9ie4-M2a=|j*Joq|nKa?CV$Ngu;^7sbm zd;cjJ)PZxFG!E-&DY)iYBa{_tg`Yt_Ixww8RHGx>GWY-w|7wjd)O#Iv74lnChs@<% z_Afs~pcSJHYt4G8(f|I5ls1%<7=x62%M+H)I{(|_ccv0Wp~}n*5}j(2i=Z9~s^2Xj z`*~XS4^##!f<-hXpHeamZP=4r8o20M^J!BwC@%?y6dJCbF)su8~gcEXuZ z?C=$VVh$pqi%(j_?b6QA@(Bv&k_i|Sf2`5EYDCf^wIkhR9`(D$k@Sser4Fct-`g}2 zM+uy8M42|L9HISVe6O;G_;Y5*lf3;@V&TOzj^LfUKc>emM#lmkJhD?FDD}on)~&-x z*7A!G_rk0U)#x~*Bi}7J))?|^wpmel)vR*~Lw4HNhLp?GGfURekPI^M znpYr#KTodkQ&%gUZc~`+Ae6&%b56Su+&t=V!*yP-S#Y+CP9hj5Kwy**GN2TDy++1d z4d80P5Xi;GA48&*>W2!I!gS`jyXSVJs7`&1oCbbtYY4V;x!2=RS@ot$#k4y?2)QSX zfj6bka5p`|iSy3?iGG_a_T{(4#SbqC>Z!P{>UQic2`ckPspKt5{1ZZSplcker;|u9 zC%+}g6gep$SIW+GS6kx|Iijg<>t8Nr!FdiCX%wAkT{yz%;vBe&HLZ%+|7y=ezTpg8 z|7ARK?OU*5134AB!v|9KsWJ?6h7r{xLgQYhGV?<)84!KY*1CS7$)PAoElHEs#bGlg zW~1HK-Fe@9gi;uN z_lb>C5}=16Drj#8XHU1`^b}Z?*pLY`($6Z_kN~lij!3Q}LSv+)I&UxM_Y|9hC*0yy zc9n%|<(!U%&9van-5H%4NE<%+8hzDL(1EJq9n?-S-*a#^4c}@P8dCVGD3w2*?($@d zxQvs`t(l7!(=*>Uz@9G3z5?upcChe4hAs=T?VNgsTi8j|xj-0Nmr^ z(T%AheuuY&DXS57i+jg1YrM!ytEZKaG5%=2h4Oy#QqzPhrftYKr~Lxq3fag572(VK znW-t!>UenRz(BF9t1HEBoqwE8VL~jU5bW9Urt!D6{7a$V66rC-Mk`Uzm6$oK_6-)Q zti9_6oPVq@9ex%Ga9a#0kdGn>va+{1C=8C{6QQbD?raq%>{L4nhLA()ic>~(;&%rU z4P3dt*?7d&SA$Fpcq$o-c~1Mtsx)1MdeojcR`Z>XPlt;>dx-Lt;lD$~L%A zusVa}f{z(hlH`6ymm zno6X~hxuzyV!e~Kd9|kpu!I(}}utJ4+_yLr7GAMn z2doxRX7EZ)wQAMG8&bTola!PsR&cVivXGdVC^i#wT2xe&kiEQ6wKwo81361F5l*C$ zgO4Br6TH9TA03=0lhN^&z4+sV4G~0mZhUJq-q>x2rMeD3{(Kl8>?g8lq&8$CBE9E0 zo>`Ge_dT>3>#=9YDSWaa8zz$lr}iC3gQ>f*F4>O6gfx7xH3x2=3nrTzekxOMw?Usv z$3#4WHZ~K<*uU`@?)-$>Xf|<{^65 zoY45Fw|QJt9~;b89TJxALe+Op5Jz-i^X4SX+Cv?V$}A3E(HSsc06KN*B-%zsMuuoB z{P)C(6X@N$w+Ql+3lb6%|3+Li(P0n8Z@GArb8sCw=h4%5V&pfc(S1N&+|+~|nU^=5 zYGI*J2pVkpF^)bkyW|voLn22d;W=Cx-o!f=4GbMc0a|@@50S zokNZ-pd!Di#%~4*vyh{X(ED)I5RJKywa5E+b;7EvV=-qXkrST|qFNy~I3I%hZk$dh z>eQ)&2OoS;5E}meO^^Uho;+E^@rq9Hn#%_wcSJ%DoOWPqVm^Leb`)b~r{mG9YEzm= zt(qv_4{b~=R=&~&%kF80hetQUC*7m)(UN3Ji^cnW!!Tn-DqNhO&Wm}=v(UM793m;z z!>lC$-lM|%rr5N**C)f&uo`~5y$ybRyfbEAQ4yx9HSqG-c*L0vc>MZScw$&JIBldy zzy|#Bsir*|VBzCU&_0IFnFj{%8~xS#Josi~Hm)DY`U6+=sDZG|EG$X!QaiseI~HA~ zh1+Sz)VWD`{_YO={f;*H`qA!~-q4RHmS+GNc6_wQi8+(o;^hhLko;Z;RHF9NvwuSj ztgJ=nHZ}14bc6_ru7h6tc;i?aIVC3`zn49XxT$*|-8k&0Z zGm`%S{5}O0qAVEPsuHTX9XRSS;-N0F@Cz?VIH&(pkmK;<<}Ot!BRf2b2Q{liLh*Z$ zVe^B`BV^dmu(MIana9NuBrbNl9kpuJ!o-Oa#UrXpl`7%RJMV@!L2VW*@aA&7jzOaOr#w#>_wCz?M=A)<4?#0cRcZe=D8L7c}k)P** zi|$!AkwLykOmbKcwuRs4heGxl*d!7flHumfX>4oW^JUMnVettE)^0n65$_SX|2h$; z^WAuBEfEoex@YLZp+kOd4)$d#n7RB2hP}TH!#>)Hua3EKI)yq!r3gIU-io2mZovJ& zAHnGY4Wdn4dp8j>1vYMPei!L#zzu`quww2$bfgK$u4E^);RfhR*!Lys?Dq>|eAQJ~ zp?ml4V&$)Y|Na;{bf}2u^uME>NJvOXTxwi2(P8)CBWIwGFypqK)$r`S9q@2fJFfrc zFwMLvdm0Qg7U`2x*SLo9K;XpWEtcIWr4aaT0YvO}REioK9=<;PEv=(x# z1TWc$zoo(z(okiMK$19(UOzmM|ZqB#&#?^E}iVKZP`&Z zY}gR@+;b0ZyX`hqty)#Y{e4i7@7G}RsAf3%Mi(r9xE1c|5CbjUWT7|PLD<5F&;K}p z_mBH9?}?6B^JFLd&?^eb4j;+Uy{%jcgX4Tyx<3a8wj{$Q!pV#k2T*I2! zF|{=wX%~h&-`R?BKb{t3CFryHJ4@oY1p6ssl_($>fZ1fimK~>%VF|~uhGA$HXF#JG zk+{2iES9f1g>-%tc~Ria{XQ5h1`KT)f$>cvF_y}iG`tR`_lboUCQP}j9afF2hEw~K zQRA`AIObN#6*nE;n9SYINj7WUyD|1Y(FE7VE9g6Q1D;)*O*~Jnd-3XWTj3QPkH>>+ zuDJ&H-FF{Gj2I!#IbM<+2?>dRD=v0aE(DXA0*6PeY)rYnA*Td=6hw=3xl~B~FY(T>4eE5m+ zX>|%V9!$karxwANaahOVWQCLXZ6i;%4Syc6L1WM(J2e*zjyqs5Xpo(rhs8&1V)LvZ zJL+X;AV_xjEvx$V>mx2MPORhv)BYZi4rCjHfm|`^;`Wd}Za;i<${L6ubn#*9DHmEc zsf@}*5OwZ6ytgwS(fkPmVH^W)?ot_Bx1GjQEAsI8)iuTH41)=GXl?kI$#q700sIxB zFm6awEWe=&R&GtjaR=$bj}iT>1N|kg6tq8=!<%mX1vdPVP{2=K18-ijeK}V*KAM+~ zzP)SX)sYSH@-@`{uC9+)ZmEw3&U}2blb4(Legu>VAmp%AsJFw1i0CNPH2V=&DHhlE zt&bb})x|aKE23UCE4)NdGxL0C*rqmqeWDfmnQVA_djVaigPH!dk!{7X#*fpfPE;f^ z_|P?N@J$aBzFd}#Z!aEmN|GZXA@Og=B_TRqmlysVH^_Iv@9_bZ zD&pmV(RlTEs~5Lm?DXw;W{Vvh*Y$ zoaGYv1w90>hU6z^;^}1>nA9(x3UZ*JAn?|T-+&37qcQiF1F(Cw$SZIm!=Ya6w7YRS zp9q+6l$Q@Sn+vD&JmT2p^1)am4&M)r#7%GS#I`Iat{hYwx_yag@zQpTe}6Z=*y(_i zoHU6tOGH|Z6S;2Ek?PA;_K;0alTH05-c-5|Bi>9viq?erKW@X&50AiR(BhBTyD@m$ zLF7VD6rgmlqvGIlxx@@Tc>cG6>X(t@LV=Tsj!GJeN>|`;dXbXrqGP^~vDmoyF#5f{ z1tUK`j8jCOQ*)_((G_m8N&B`{5T2TiIj%6=*3bku=Sj%QB?2IhHL%<0ntU%gbUjx5 zwHJ-1Zov&7ZpOHIc^J{H3gYxW#Kc9TTbLWeU*Cq?e?BEXRv3KLYBn2iZ2du8{oHQs zwb6Ni8R&Ue@}Z-cb=rtg%_4~Nxahu98>IFIZ5SSHq{qASPLZw(a;UyJLLVlXZe$ct z9ZEGh$x|Q5v9r7nW@{v-46caRzu1mGZ*Iah?`}r>S9f4dnj4<9JdA#03kJTs71zAE z2MLxaOlo1F>kLGOqA+{GK@6C_7YDLz_~7fE==91~T=(8)JiQ;7)U6W2s4UfDC4<{V z@G+KrTqPkP@n3*$^5iF`29CwDH^17-v+tPb@G=c_?6kDu7PM_#0nI8J#1g+4Oxsw*gd5Pfb~NrCP!$8~MWJPN3n~~DRH+(?&UGSC#iD_i9KX(N zLYGF-XckAaddi=j9BbhwPtmw>WsGhb0mbd3A)DiA7D{Et$3>!Dy)aaXHlbOqC@MP~ z)xs2*BCY7rFcP(+jN)++qqG|F?>3!2eHu%aEJ0*sq}Z##ZzrA44s3(i7%O@=ib9QunJ{i|be!*DdLWFkkZMWdQgXkWvM zC_UMLt~XkZ=tkE!jWwcDm2h-zT@fu}^{7!J3WM6jq5;*XW_%O|x2=cG2Z@R!}=W z5}oQspt2Q+rhCz`UL>l~HC3yIqftc*s*?@JcCCur+Q&f4dvFX!^llc7Ms$Cgk!}s6 z4dU@4!>9NWRWTCX+Ehf_coQ_FFSkK{D&%l!(7Hn$`qeOt$E%_ZQls|~O=?JGHj58K z?Mg;8s2Pb4b;42EtU*ky6`krwAue1m+KOtG0O(Lh?YbuE-?<+30kak^>OYO@#fo+w z9c4ko8j-lMdvy$`ZGqOPr+yQL_)1o^suzQ&hSos6FfHsZKWf#D!GKy}s6qX$X^jX` zeq2l#>X1&i^sR}}O~S=$8WWum4bDQaos@P@B_t#y{+Hm@dau`y^o)G+{n6sM_;|&8 zEpzkjh$If8$;!$TqdSkkdUCQUX*pt#K)t$gH2e3Scd!#gN5^|b$O*Xp!ih2X(UaAv zBL#dkaMNI}*TT%NP?5ZwoRg8xJtWVoHoR|u35}iNc?jm$k9qHj)8!+l!vn6WpNOYf zwbS7(jAy7i@S9y4xF|#Z+AcdYJ2?y;zkx$?c2AHPl?={<9eHwcGL|h{hM1Tb^y<}1 z5S{Za-?MJ~D2b{;4o4Bcfy9x#7l(ff$xHR%l^gL9Iq|HDh!EA4Uq^S5gW`uT{L=+K ziW4h5lwMdLittm#g?*hqQ6DbHLGi(3I~@l%(_StF?ZZT8#flX$8i^?M?tNaO!**cZ z_!~-Ix(B=gI8>Hx$M?&mRbV4qFq<&bx!BLd_MlpEn%zS-vKZkxbqYN{I)&FJwMEYg zbd7j&rNCk)5Ui5KLJxp{E)Q8^!*eoK8pe_^68~It(7p?REr90H1Dd4`&#rWdb6(RF9)Tv|LMG)>L-OdZZ; zr;=of@?!+bqo^YLFhcY=BP}3Y2s&5)mynQ<_}7Am#qtszF)zGWZ~IA^GFCFl}}6MxmD z!nhzp(+jUD<@oOcm&L>;XrHo@9EPfE;G`JNNTa{%xf&;;`PlEqD?cAYdVCyyxUMF( zV)f@83NH)DmwX%&)Mx>g3C0&k(KUgH07{Ezgrd^KoT8^e+7aoNNNZ~N=QgZNJyLqlITcCNJvOX zNc?9ZiH?MXgoK2I#D5l&=txLNNJvOX{AW=vqQl?yxR@XzAt50lAtCX1qRd2xi3)#6 zkG~XrA;Ds?NU|d#At50lA@R4OOkYM0lAM&36md~`!Fky2cGRm^Pke2d&m|-zBqSsx zB+3KkDwpLaAeiWcg@vI@mo7MQ;)M7afbu}A)r#vlA0|8!5)u*;5)u;S#bqZtW5$d@ zYHI2Q5uH7I_J|dsiy=CtJ^B*W3sjP2F3*Y)?=uP<7DM^UyHxp<1U2un3k$wGE{gYITuiNk~W(fxF&i{jDqR+h?>gV6-5)rv3*W|NVBu$h>Y9u|ugR+C-~D5VX27Y^0A@Gn=J%oZv?Oz2=T z>ZyE{2$l_MJ{qkKMw40O!9lG@dGaXdiKxbiIMvyP4VypQ~kYn=(`RCEibQEoH5ve!}g|NTY;^E?Gy8*XfO-3>|f_3#!XS zg3HwE3^1A4o*Hp%<~~mPTg;}y{=z}jozi$r;Jz6aW)(IoNpFtg{6zZ-#FZDKOwJ>q z!&#s>ZV!5cNsJNdxrBto{|e<=(dpHzHzrQJ4MT@sf&BbDzML;TC-|4H6BAEj#E20{ zN=mw*6`kNiUYegt;6A@9B2#{G-}xqO>0+#%VCGtuMU2tBan}o^3k}lf9FOVJeCfRMu!^p zo1;mC>d^arEJd>A*PXA@ks~wewL~gC;s-BFLeQ3ap98B_uR-){631h~$`cer#X87_J&U(W$N# zF88IZE8kZQEMX=bSh)l_u?^9#QFVAdOzg{92I;G(ewO(A6pWk+to`X_B>eRkqT2L8 z-HK+qM_%X*26(d)v2Ir~dJO0e4YfT#wIQ>{jy3DHpjxx8s98Y=x7S}(N4A5`h%n!A zTsiV~On7q+Mm06U<~;jHS^1vm3{+P35v<*vj`p28B3$o*@4W5%(jlk=9H+5mZzfuI zXa&736&p5eL6*&p$f`}yziU&`?|d{@)B6grecL7^Ww?mU0WP~1Eqe7pqgX4PA?;eU zH|`@ucs(vR{1?#I)c!-nnI>F*uNz(;^;x?AMW#{PgPzJr-M<;fwe`@mSw$N6+!xoD zB_t#Ss0&`+6&;_?i>RnbL`TP41F#fJb@!A`2;*}Sk#MrBbwY#Fo=F&G-Bh- z7cpqiU~IN&U^Zx=GnwH%vI5r*yBb@v4KPrDU=-y`plhM^A}RSa96ml4B1JMni2tEH zjXErxHVH!p49CygQeZY4Igvo=h4N(UsCB6{ioQNCg@ZNo+@cHtS2se1~ z*$a1J%IhCu=J#LWp$S*wfe#nKXS9kHUiazExO?;%Jn`C_c=NSa@a$8sW9iW}=y)|H z04_(XH$%xeg7@Bf1&0dEFc4uWu1ir67Zr=6NV>*k&|<+SlkwA*d{`|877URQ#X+Yx z!I!=TcTBhoCtL=)hVDr)Q9?rEZ$)6ZD;r!c7i=~g{C*!DyTv)bMWxW(NN?28jMF2| zIdEDqc*N}X{GFT!3N0@~i{)oEuoKqmOejd&P2}Pi+&b-7Y*@bzo3`%6l3CMHUGJwW zX$D1(z@TS`tqojDgCGq`Vi4k3v20(Iuf@WSBQW+*nl;PdEyok+TctZ>9XX z9y*f|j?@Hv^xZsSW@eb_I<^Zxf+)<30zcaD`)Gz9UI+76Z^roUHDM<<%w_T;G_%zj zkhK!gP*?M~Y$ivRV)>}s)ASzUMmCRxF{>8HD}ah{mh4cjBX4 z8qmzzCDPa~Mb~kCSSR(7O<}xMeH6qQ@@#=0uLb4V?txNZrNa}ye}%LLW6>&nH&*UE zP4*xM7^pB4VKcQ){;OWkZ8KgTcvU(zmYIXSWmzC_oZ(#Lb88?QZiB~9I&=zH^vShQ#!e*W!GtX(k`-#`2~HYeM} z{r0#D5ZQ1P{^CBhc0G3QUx_<9)PmiiJ}wXDZ!l5W**oygm%qUqt|il{MChzGCdLug zrFj3LF+pdfI1Ofh{w{Xr&;*DGIh&6ktrg{Ah2P^soqiACfp%$_`sp(9IFkEmu%;3c z5`Q0blP5nhHE=8(YJrW2i(f%ZbT|>3qUCQMxHfIxgqv=fAP9lSL!&7nqCyxlk_&Kj zTN2_M#?e5aBS-322Q|8u2UXtJ^YzzX>M=^TOfwz)N1ZO8xej(A>q{A-#(5=oexfr7e2}-Jh}=ZtvdKXPQ>WP z)@6U-=RX$`nc9kEhZzkUREL%yk9bbwvsnvKH7*9rf1gQYX%+I#acESV?4G&{FT67Y z+Ycup*5Jb7TrFBOsEz#OefV|Ok65;94c6~GiKeYv!Aj0S@6E^WzyA(YsEz6sBd~ei zw>agEMaoXH->-jR@5y{LZ_$WIo|hVi309LAD}VnEzy7rZ>vtSSqqc1jLC#p~$;0n| z%!V~0ik#wS*q#)Q4lQfqz^Xs+)o=5#dc`XEt29Hy%4Q;RA&*lC25M7>*8GBbd;GZT zfpG{U!t8XDT`O0CMj1NQ&%1$G-6qDdukZsc_QxrzAe*Pk(e z=?ZM#c?59{o1h7{0;tCupE0+G>G*b#E(0DxMTbfRI%#u$yZ;X)1dLFSJ{G`-E%QzP99zz zTM;w2*)i_Qt}wubAKrKho_@FDmL5&1FFCP&$!z@i$3kr1cN`Jb>!4~BIa+TfzW8P~ zdJew^`P*k>)^GE%^GFsNwQL3p>B5hvm>?hi;R(F3uQldQAB}fkeH&fIPDBl>4?c40 z&dg(&zibnt!}XZ=>nto-u@*^AE1K4?CLTjNkFUay%TA$sv=_h4`T+}9tVe;N3L28F z6dF(T)b97JnU9}m&%^RnTcN8|12ro}h%rNe_uColczpa_X!7#+7*)@T0%{X+)vCeF zY>VJb-;b}p+k+eKpMa`l-_$+JFmr~_UO!Ic8_=<7Z5q#fSo8b0_=(!~_Wh?3SGNHwh7n<>`XE0MUw--pR;*r4V~QQE znpDQJpFYQL3zx&Lgu|VijH7U3hca>onV} zKr=F4uGI*Vlbhqh#}j|Rv~geHog2S`Ez?CZMN7tI1CbGOCr@5}OZ=L=C(=p3&vj3gOr=<0*VGZx7An@-S`k z^?2yrc~DFim}%gA>)r`?=#3wcoSlp0gKKfu$Sd&q@^o^T2Iw4nG3C~~Fy*<|u>N2Q za#N1s`8&sA>Nl%}c3U^>MDObd2xHk?!jo8e#76pPu<)Zv7=O!y zn7Mp6Tp363>I2u{(HYxewD64Fi!biI1`oV97dbW?4z2nWqpo`%X?`6Mp*(!>;_bM9 z@++7%Z!JzG8(FHOQnL<}@~3yex4uI)b%@BhA*NO&&RE%^=0 zwxx(wiyMay!nB{)p}=XwFK^wCd*ApT)JTwXXc2C?{Sj(c%-jg zOGKC=9Z6WV(}SUH8VZ@&Z`_01r+$X?0vmQL`~p{xd<0Hzyfh;SC!2oz)^qrI*-jJ` zpP)d?s}*``<9>Yf)oS#(Vh}3VX^%GMG<>)20569S+0(<3vJWp(o18Rt zI`*7MLq_6GJah9^c=Wdf7>wS2B+Gp5*G6U&HHshfiN8+QEN5qFi*Ufwz z4?Oz`((>|gc=IZ(+jUZ`wlcU?@Ub`j5Z0fJ#&sQ|iPgA?`xu~P9Kf_UU&ZUMzl2vm z*oaqWe~y;1dKv+E!N-Br(_8S~8`JRRkMoc#R;&2IUlBAkiSybEkdc#56F3jD(^HX= z$16TQeEaZtJp9po*9^5&4JeD2JK~DN=KO7ALqW%ADlI17O{ zC-hW?PyUXMQk7vndMIBkJIWO)$|q2N7u7#`*DR%3?Iy~+{WkStLh71Nl**>6im-rV zwPLo$D<3Tl>giKnzoEG@?CF`}EOXNjN_5++lq@Hm_&ti#;Zz(BwvnQ^-F~Iu*es=b zY&T_nIz>27DMNa-Q)aA566r5r6R&i?=Oaaxruxr#K&jertipHxUJ z-`1+Uz2KO*N1ba}lzU$PE0AJSp1ZoOGVtlyfpbN%=hOXlI20e>;}AIQcEv?{Db5t- z)rkWYlisQfy8RU;o$eXq=)!4AM3q76NdRNI)K{MWbw3?>lsyt$-jfQ;^12*~&90t(`}7S;j|tPov7)3X*R=>!o?gW_ zf!ZeF@gXgg{x`j;a13M1caJG(ah*6mHunuBzG`3PNQiCzc(RXDYuF=7hPc3^OrO|E z={4m?k@n90!<6e^T|h=XsSIgbUHNr)o?<)jm(sFrCuRLB zA5|xP&pf40wTfyx4j|#jr^HF~&7h790**m+JG*JxYsi_X>MIH@1^9 z`q^L91cJj690#~RQ9tnbl*}E!D)qaJQ_^i-Y9o~9@+#g_Ta-s9-KmTj-dm|%t(x-U z?`j|Ol2V73eXHDb!>!6a6R%TRHK?k@)a|OwKbTDlyF{MB!1vXYFiUCJri-#Ga3c>c z`bcTe{c7cKVdJ(dw{)zmJio%OV|P%E-KUkiuD(L~Xc3Q@XZCv;WRRi!p`gGf#*M739A)*|y^7stC%%y@ zcuZ(WP03O=Z9SkQC8sE5UeRGJdTRkqZjG2e=5wr`w-ZzQPebay6ufq1DsoeDVWR)E zVh3sY*Jdqr$==1wzv<4G0}7VUC5k01tV{|4`2PY8J6%c zSoCiEFzqRf9XB2~-Y_0_Jn}kD7LX!72ONmSXA2#;=YhM#iXe3yINTcOQGh=eo}fCPz+?B{iCb>D4fntNK9X!H zNIad6rdQsN9*)K6*=-=+|7{&?bhXK72An6cVBumM+dBsn#*f2|H$I4jbRYhB|80`t z`>eoYw4hPf9@IMkFI73dWQ+OQE-ue%L(>Hd?m7q)NKu>;%=zP}7TdJY_n zBXgINtunA}YbplzYfT-dGFsNJhmAW=;^@{z2&>i~ZQ`j9ZCej}_DTHk`op;ORtRdy2EQCvn=S9Rt6i@(I=8I@pW6XyqG-~qKdKp*V;9v;q5E0ARu}ZBXN1>bgNM@F zweJ95_S`+o#9S~%?vRH<4??78D;#Y26vQfs_E z?IZj&XE}}~F2}4p+Tgv#hrkbfYxf?HFTeR5?|=F|b{tH?EB*W!bKeJ~Ft7Y^o>TyV zSAU#NH@qGX*;hp2$blWOWS_>{Q|_gEek<;|>p|?z_F(`1{fOu|22b8#LF-N<@W?A4 z<7loCRwLy_ea}PVg4@Y&kn)?7z^xD7ji0BC#x=K1#=3(U;>80fWDspQszzIoC1h1S zBqSvMUYzZ5&jFgt;OggwqRD{9`1sl{kb5c{kFA=7_{d1u#n#Cnf}@rS_1W2(am680 zDgUsFwJ~7$APgBY1ikwW#FSS*#KXf|)8Ir7mBuYQIRlru4j!Aa09R=bVfrsy=|ZuE z6MhrZn)?gua{TswQy?+L_BYqw!S^SK8q#gm z#Wcjg!9y_gioxjBb0D7k@MGLMq9tiXY=-Wm#zf_kLHthgqE-6gww7+pnsX2<7HvR- z5u;H})WENrDDaP>@raG{LBsI}Ed>c8!W-Y9Gp?lah7dXIH)ssr{P+{}t7Cz#LJNGm zZ~a1d_byy_?_01@yE?J!yPw_MTbsZ$f@_hqi;QqqAwp5No_klx*;0{L5J_9iMgCFtI5GKc7XxR4(ok)<&p!58kOhks$ zEP(pN53{%7s++Ds|IS^|wR30m8+9jc=pKU~KL3?-CsM+jirMCB7If?3$~Td&{kn7iN?3~N^fAKZ5p9{+3!j226Ju^8JSnLcyU!;(_jQCdAB+x_SQ!{zg6UT6$ffr*K#*lmwKjhtVf!!2+A z$*;wbZPX8-IWmvoRE8T3dyIf@*Eg8EIf>MuG;;I@{`?HP^EzNmeae8Q&kE%qT1|z$ zW6)vqn?AWjJj4JD9N)DTwn~lBw|RB&mW3@JeuVuMB4G^Z$GQcf>KUTA0NIcJZPUFu zk`5h4!+t}=*RjW3a}9d8tb+(5f^1`U9!!E+4Zq)w?A!uaV(a4eDQ{rf&3*CXwBLo! z?Ya%Xb>ptZHDj;E$SZmxCd`1e)5nlw^NF`rxE9{bQ*>v|s7S=FVYAlA+O`R;1`bur z9Wx63+tfphV0}bPnb@(;!b^I^jQ#$p6S3gUr}5R=W4QK)5kig?quP-?*QN^Y92A2$ zpMM8=)cmv{9(qh@(y&J0Nk^ z2iQqG%^Ds~+|7fxKb(b#s7N-gczXxcx}bl&4$nRH7OFJwf(F#&dE;=~uDy|w@Ev9? z00#B#Ao8o*x-)!P1*p-XAFduveQ5M3^l97@@ioKfA}x&eO#JZE9FjDOx1};Re~l#v zqR^*HbL8$`fK`V*xMRu-xc#oXG3owExc#Q_c;(eQu=wj4I7%FYo%gYXl~}#=5Omar z4P^D7K6nrLEpJ6r%2m-@k$7++mhLTp-V(-K6u*D-EyCLjMGfBTot=%axJJ0+;TQ1q z-Cgm+yd^|g`TH_z8|F3`Ub!MnDVea*BtcIE!RyXIQkqBHt8nUjDAqg?5 zth5xkbykFjQyr0yAHJW1W`lc*G`6yuvuLWY(4@ja6Ch6@vR>1cNIiKHorVs@D6-cW zvR9AR%~3Vhh}^79GMOH|M%;wgXMKx;jkB>hfytDf_?3bzC$~7>Jnce8wj0%&_rL>F zr{j)RKFnXdidr5OV$a1Xn*%jtqPcU3G9@G={$7-e=!BUq_~Q1N*!<>t96rOyLGR z+3Gdq|MC3VNEn?*8$zScSEbjy^z!69y~d+9%X759{}Tz z-UY!cDNZ6nE~kR(10KiA*EhkK_DwNr!mSuRs0*&1mWKKB-c=vfc-)An+6KqwKZPsD zj>qVMoiJriKE8f)3MuA>*U|v97tKTTmbcNOQ44hH(hZ&3G)J$S-@)+L=Hk&Fm3d)< z25Ej|ngCn`99mzy0p5Z$;VCe%5NPW=Yq$<*{+rp@6sGtjeX4YcUg1>L)LM(h3$qupa~fw%~&^tcVbOlpGK z)f-{t_}egccz5)>_BkBS7aGFDk0DrpVQvlGYac50c^K7>{Dk$crWn(qI-FbqDw}om z1PnLf`&HDn4F8 zDr%ejJt~)zY)i*=hfl)PF_kc=Q4?Hq;{=QtG9F6Z_Ha2wCCR+3vjyWv)W)uD+t8@T zQ0i%9bILEiWf!zaUxkeoTA)YEX!u+X#I(K+Z%u5E@oj5k=(wA4!!`ZUwA<~-;=H*2 zGy%~bnvapgufh#uhok+NS8>n#-=lLJ@ckQ4z}jU3+EmrR=?LB@7h>DrgAU3ve6x5z z`1R_h_3L86w5KrYTGF>~Cp@}PgE>D@Umzb>SZ{P1{Wvm+u%&MP2_2g? z$91>ei>vyLLfyf)V^ljPQ)Y}L!aM8sRv0(wMIz=3?(H0pz9T2#ma)U|MPe1)eC<#% zxTc>xj9jM)jqAn3C*A}LFf0iPiN6iy`ZDsj&-{VkUzv|PKfe(JCv?TpgwuGj|GS8c zk3xP@E|QW{F@3`ea75(c(EdZ>m2?I_8sIM?j~X>f{8b-i6$6!_X!HoPns9K_VyxSJ z9QyF8=-$5{YDe?y>~3r-xnF*b>0=o7chB_4uaM*1^cfBSLtLAP- z<3asUS?`CRW`juyn`kB+fgT+i!z*4lwnF2}$EwAPa6BasT1zB4^%#V@Rm?;@DBWU4 z(%ubNx@k8QYi0BrFc`IBjIi0=2vf2!Yw>pU8!!-&TAJzWjYv$`h{N_6^lw+6Zy>zs z2l4Ztt5KN-^nslk!IgFpzt3F>ZCq6U@-HG}$uO8J5)r!!6^%al90gdtW+m#h z8;EM*_0Aw~Fl+O%X2Aj^oXSD%7TwXiQ$yku z{INV2HY}WrJ&D1`k24 z3jBCjkGzGCpxa9tY+m&YmVWya@=b9VG<+zkm_1^@T=wx@Si5Bpa$N?r?ll1I>Q0}gFJi8rtO7}?}7qH0vYiz^;MeBFwa&HAKnwg0$hJn;3IBo87{6rgYsv`@1p$q zCnpN?*YIiy=dU5|V-z1@W9Pt5US~7~J{ad0=lnW7Z*=vNEWgU_b*mdI`Bi7OU$8#v zPc!I=aM;C%``E_(+gL&Sdt6jU-dW2ZTO)nlOgMRUg>^ER3ct22^l+-6Sqy?Gp620H7`9JHr4TQ+h&5sW%ADoxc$6`OA&2GJQ5_R_k*Z5*6EeP`l^VGAHTj=MG9WF5ZU<+YpySb@O@L&{De)n}EqqqHU5Kf2dQ{({3O<4;_7-*im-a}iqbQ)7|8Q}jEY4CF3+6dj*-VE3l?!D}Ckpw65jf5}+= zAfH-SUX4_nvZ|}-16mWcb0@BBSQkUT-j6%FL{VF#YXke*xQ+1rQZ2)_p?gVfNaR56 zoL3_Go)vFzY#YvAPkn~_1lQe8`4n&4!TRvW5&1)psu`7{en;TGEd1I_S|@e>-< zosKz~tI<;DfIZ+0=}J*_5T)f&TA87G73HN4wk4r-JpXor(~&QE{BlrX_U!Wmp@}`~DBNxCVE3D^5#rcXugn#fnRCCpZKt zP}~Z|wYa+!DNx+q9fJSq`}6%B_oF)xH`&b`GrO}h*Lhv%Ygfi5zcMJ4`-&|}X9tPO z3(iu3Idysjha!sGolz)2+LSoUb*%Z4O>V8HmXVG2TOAG~rwH2-+P&&|1C44K)%y|3bh@$d7n_C(s&ND4)IL;tWroE7MM@g#hf% zj&MEZM1UV0h6o>)q&o@)av9Lm@69+Ybke)jrD)*@t@~Z@{Wp*jRYd4#H{F-}=y}x* zeL*j!={jwmf3pMH^38~X+YFOBQI{7-v$NW6e(U8c?r<58maR0_@PRn|l@U=2X$tO0 zaAM^ai$Y8>X4C$dtGILetZgvl#Suj< zu{n-L-4F_TFqV=vxNyaCAMjd$eb#WR+%<4B($$PmR? z5j{R3>C7j7E-3j+^@py$*QSJobEd)%j!LK(GF3$4<~}X0Fs2Mr3M-mz&%y(!pOYeeh#1MXUgwPF5$}%)7nx-s5`^pWt$B{eO4#o?36jE{m#5y z4D{UJszxR1GTz2UsR-mYLND5~Z=SsBQI+?_q$|QhfZD9ze{Bk0Z&wSMGybMW)O`qPbB^`0{%ZG~e z7_QJuaRUM%8*fyKp?YpWRNUJG@zyCRO^o^GpE52+**i^+=W8a9Za9czsXIQziOEii z(36>5G3zF7OMjn64ABnppJi<-at0ns9rjmIP>fueT1Lq{g#(-^Zbj&VM`x|;3!_^` z3K4|rlNpRP9X$KztQ$577ArJ)wf1Uvdt8Dh<_KEDRqlC1qTDoLU&B=oIywBDF)b6> zO8GSr$f~p4`pDT8(z^xSrA2A&F&a8#xf84`!BU> zZZrPT*PMUaC)GRN6A80{9scXYS5kxPC}j``s9m8SM&j6}*2j6zM=@_%9kMy7bx#f- zkmW{|DjNq$wdX;hM&nN#({~AsnmkG}*rN6V(EgpPpVapnemaX|a|8lEsX~8}kdMQSxwI%p4b&t(Q)RP&HDa z((qm|U|rK&xc>NhwCD?w=zY!C>+LQ*vW@xSai++@gl|WbLRz)1!+E?^V;+PmLRZvr zJ0u$;Z)s!XJyYg`Z}ue-Ti2;)Q+YUY>lCqH$VTD*YR!Nnh}W)M)XBbm!mME$l9%$% zHcY5qt}o2@adr|>{<3JoWt)(m7-~-fv9}dTJpQjv=dsJ-EI;8b*5tYBh4{JAp})y_ z>#f!nZUL(dp@jzCf`tqf z_-i1;D^S?)%BxLe3vuk}RKQp8*}d&*fnD|vdm%46RQdgic*xL33^0xgCU=@rgazl` zBc76xluS`XLzw5CbRBu|U3q`v&Eq-)c;ew_QNk-j55(6A&&d0hZw$KYyyJ{S8{UTq^SW8T**5?$VycsfVMVPW&2J36LjACk zjudM|=hROX}-3H5tgQgDSdVR0jNgZx(px zb56tGdptc|l%?Hn>_Jak9XYqI;x7gl3*2%(0BgQd{g{9z&HvI%DE)Jp@^3nUe%Z{A zjGNe#kd%beF4qle_qp5L&2S7?E@m-UU^*p)CR2#)ct7c;Y)XHN)^UM}2aUg1=2ZtK z9`z$o3qUC%MX(Auu74f1u8A5ahq{A)MPa z$Rf8~gi1j?II|({n}ftpx{;RqiVCzrfBH$xGDpgUx8eFf(i?GZ*fCOMVS#x+^nIgg zt|q(*p2uSvy_u!@p)4bKz0IA*pW^0s;J*B^mgWiI(ng;|>1se}oKKZ+K`o?(c~Ia| zUzo(CiWm}vM6@J6bS0lCwqJ5+5h&&uI^{UH8FmHPK?lcOy4dw_Y+MjH8&1%lx2|le zDO+b-ai?^%2#Ldn*^7D+4g+X4(v;oz+|=kHu|0Of9h=U1s;Q?LK}aPy`@m}i!Pmo4 z&?%&Kvfe={=DX9IkZ^$4_H-Uwtxh&SZo6t>>|faDrEy`9li!A(T!iH<|Cu*HIBpNq zxxiW=!nuNKqx^UUP)q}g+RXYSWYc)tvtu%(0WHEi&aV*uQQ2rnLc+Y`bm z;UcMWBS99TaqNiR=jv_I_d7&wi2s{S@c$WRBzBeYr!Z^v#E}U&ZT2C*351gNs=Lns zx^6{UQ<)zaa-Y~0j};dbQr~|VoI4%4pjWgP{F8M1)C%CZs~p_$j;o-{pE(2NXlO`+=997=Cvblnpy#s zLRKVwIu*2EYr{JDM6Iy>(_Na|1>4h9L7Y05SHhXVWN*BEXjH!U7rI@w*(@=s(m0)2 z|5&svJcKr02yf|c#gB)IuEpPv31>rtx2zfKfApMe@8ru@t4X4iyK6$TWEDs0Tx2cP zRs`>D=HF`30Tb%{L#<)Fe!H}x$rJhIPQ(2+mlJvmAgYYByaSS!12AHxvlWt6B!G)LQ1W+FA-WdUIwZkv^aK0Jkmt2bebaD@EKJ8 zH|X~N1|2RErPHh5$NddU6BvSsf$yNqhWvz|(h&p4fNNIADInWXpFEnrO-fl??LJNX z^mOx~&y6gEWpQ$Br6Odm9d^z4MF2aFb`zR+0==!9s6NpIe6YgtsDz>$zqTRC#8V9Z zh&^&X2XXEEU|Yf5$qn$+g+3QU9ZszRGaHn*x<)8OdgcNuWj2SC=G(0Cg`aHSA4|J* z72`mpB*(LI;@$u`G=n&kd~p0BM4YCI%H`Gi71g?E=R3tFyQw**#>7>js)lI%nYwq} z9WUlWzLJcBUN+E|E#C7T_A7`J6zWcC$b&u?WK_}uH&ZRF( zWY^SFneC5qR_Icdl=L60W07y-@D$jPlCI5cj^$m&d%mTx{rO5>J`nJ7JHOhKutcDx-3V-GQ z_H_kpE`womQmQ0-g-dzhL>=*kiv5NMKuZeFdHF2xi1<_=c-GHpuh)qEh@Hg|Ra8TL zPF~VxPO=eY8>(O94f1VcJ_r>OA!u!^82s^jDIs$&@3A|cWLAZ|Z_W{3!UINm`>KO$ zT!oA5KbKcjw(t8T@vxe{&o^_Rr;EWF(1qC>Z37+vrb%%5Bwoc5NBPPWHi#smaX6c7 z0^l}V>Jd3Va&)b>o%SGov%u9O_ctGf&1xnh_rI`N_PT;w_FY=pH(CPUEGbWg3ELZX zBD;GV#ea6_fL9UZM>fou4UX3#kJy%!)UQ6+v(feEB2^K5Wc=O_-h%FGLA{C*RYa}` z9XbxI1TT-1I7oBi@qF6$C%@n>&H-c;+sB)pSC^(}M-U14W+~ky$(M&eUtDhwUd)>( zIZvG6obR!TP=An?l$OToR-;I97K;5QD=DQPW_Z0_g4h1Of*+$#3CE$YP=-Fw9mM?2 zo3XJG3olHk>Rdz#bq326I5V3NO*7{O2oo6{R((a@QjK8{4zLM@1n8e2O_ zURvkr1s$dIwyz+5IUadVrAtDkJy?2G3F`IYAwSz=0gwS=hJsItqnB4m zob$WjJK4}+tJ=wuDB1{km79}K_mX#Q;8u~5E%_xF(sDOMtLIWpOl+@ov}(e=PMMrv9sc?(0NM4c(t9QG*qEIuDu8xf-Mh$bIu( zGSjGCJ7YIEL5A-%#c`O7?Cg#m6tl)fH#qk76})1n77_zVWp6(X%Q0Q$<0i%B*1Bbyd^ApDB{-k}|tg(?$1xx}R=@Zbq|T zJoDC>UOgnZajBJT-rTPjxMCa}6!8B%A_xj#QX)`8hn0!xDS^;%SRI3SqNkI}zx(6E zK!iInOw~TBH99CkmzDFsaF!Se!K4o>cX`41#4!>&f937k3G6+9dCR#UPKa89Wq-bD zUa@eacZ9pZm=l73#PFV~aU`fMlfl$v?>G9GixYReCS{qxXoy3!2Io%AXje?~qZCg~ z?}9S@a`rGNgam&*HZ^+?N8^XdBCkTf5ZYx6_L0PTyU>&4<`k^tr=A*{DMjD=egfz& zSnthAC?QF9yTaBHtui^<)5sr-d#^HF;!BvGAXd=>^y&P*?VL&28hw_-MAh{JXiv*m z*cAXMT*Sn$^j~7Ck3G+u-j%fIXU_ln;73kKbGRP##i$4NP9&6f&4=PH-a61&I4cM( z78#*3j14BGr(vjJA(yG+1H(U??2Gt;x2>Lkd*<+O2@IjovyMlA-@|oKEUCB+Em#P> z%AP0oZ-Fzs5LprqAdyVooVW9#9!G@yLsyMp6$oAki5}IV6G3PbErQD?l$#BixP_iQ z7GMA`{zC%nalTg+XdtNVD+2r2-oUYO`o?EKWjD9p^X^&Te70SDBo_2vi!CvAUN5^_ z?a5h+i;SJ!-crlcR|=)UK}OUVvOP3Hzg>T*mhBsyqpZb>pKmJN7qNwT_!M6tDZgtA zL5E^c97S5E_gU#vyGZKte2cPPD}v>BKaE;_M#$AJ$6$+>ck8?Rx*rj}VXl_;Ztx)z z1cJGL2&))g4B~NFHG)tdkK6^i(@jTy2rc*lHF01D<={dPs2#hH2py=)p62C~$LIDn z6GztlR7nTd(uY?Xu|-%{!jyHCyQU|E!Govd$Sn>1BS2m^1k_TUGG&kQxHs(5q}LG8 zV5$g!MK9!#afv&Ceh_mk6n#FhWK7Lu{1w-Lp_1ZgL+g5<=U7|N<)nf0Alyk8g9j_Q_*3AfzBvTQgov(Oyq%gj>k zoOUc~(eH58yHk(svR^n7uJ?fh(@Rcnf_5uh?fJ4shzgH>wSpwjwlx3y6%!75+Ljvc zcwCsP=eaap=oR=uP}$<@5R1>V=3dW{R=ay!s@=!{JYsDi1HKvkgoVsO9W%tT^!4=8 zuw<#e*?XdCGQp=W_cP^cu7Zd^+Gz>@{%roYlD(gP$V2r$(Kfnh)KRZfx%$5D^Ow_V ztx6bZCISHRm{qcjd>4D#wgsX|Nlmeg%4g@h?c#Nz8q(G{t0{MBTXW$EM?9OGNp&GI zBUamwM}Zfff}x)-P`)|NOQDqdd<|Y-9MFuE7PDg30!L7;puXu$%Kfym0-d_5m~q|} zU-)MVoHoJI$i(4}>jUFm4SLr#JqV6ZNhA*v_Wn}NZs0sJKo@UQ#v%aRl>NIBT=4Gb z5+SQvvDQ6hqHdgz%bWey4cqmkMDxGAxPRF%#%b6=mX zQZ&Rwg3g}xA{_n@pDg_fWOJtZ;djLlM=B7EuJGF9$Z}htH+LIB52lDF9eeU)^Ke{= zJ^yA1IiJ3QTFWt463!rdG2EFvSE9KcO`~t<=TJIWI1$pAo7Cs@Rf)U?hcLvMo{She zd8@B;%!u>4ymYkTmK(Ib!P@V{%JmGBfYmlw%DJ2f^;IE%m2Azs$5g7FdW}dG=VR6a z^y5ZWS_`CO@ZMH}7lXck_CnFKmS%cyQ%3X3R$*8VwZ(q7pjSH%-$9)(@JU6!1$O#B z;p?S%Z)9gY_Lg64UU#_9r;rA92xVX$UH6;~_l@q9ID=a^xbZH0H9`XSfy^X44T{gNZ)j-l;>jKfV-Kr)^6-0CF%p}c?m2CP=4 zLiY4@II7#WgX!_rAPV+pSJwuOs=#+%Qt&Tx*!=uJDc89IwYk$0i;vWMQ0BJlC&c;G zw20X&|NhMt_@Fm7PtwQGVW|kDgA(51lQaoO9U~Ke5MQ#-9QT}i?He^tu?(!;TpNNR)jV{GJ ze7Ti#8H9>&M?wtGk|YHDeuh^SGZ)X3NHe_-$|hj)pyn@>Xav%HmpQWjOKyM>iS z`IsX>Ap;;4x9UhDO{CD*pw<6n7at`}Vb4Y}X6jA4T>E}-8dbGbk3sT25po(Q9qnBM z^s*3%qy5oU#+h%Fq+NnX0G~4$N8@uV_PGIYs97p%F%~WHd5&gE2idRn*ZK|l@nZFR zre?stB9`?`E#78NWQ>Jlu^C-P0~K?w8ol&L-5EF<`tA2&x8p?Ds-KKnm7ZNFNy#6JjA`&M z8Vwzi6Ow_hvX5d(p2VL$PJ3T#Jn`OX*?vd?Lqg_`xU8G$OqB+* z)BFZq^ABU8kmv)enR0E?#8C+gAnM>OCNkE()wfip)0PS8FtYjM;(+nr!w`zy={ zZ&m!zn4~?QFF9W6tazFcd5Xs4GSKT1H$VEDgng)50!8$21gebZmbf?qZ38(S%Z%u7 zu<1G9A7_&ZF$b_+qka99p*B_qL3k8gM%DAXV0R&vs5gkrpRhUAR%y9;veVCtmb^@n3Ui5S zg{sgT2L2!jiSSkwFZxsaRE|Ip&6nCl0K}&dAK_+Y}Ln&u(Fsggn+i={v&6cZq?}=a0GHyH;3q8uRL7UAUwfNj(Dh% zBPA>^lMcP%@tUZA8?8aAEUhD334UbadLDUa#&ofRL zJCHXf9a1bn0=`vo&}}l0{Go``w_hEacEY~kWQf!eE|5Nfec z{^z#peBqltT7W4MwJ%$VUifhWX|*w%T~>F@nCs^^!**{$UO$v5+Y={{!?zTef1?NW z>HZ2`lXfF4PlkmW69)joh5-Reb+@G?pVX6sBNAX(De|PkIMD42uYfIU(eyy2W>NBm zBeD}m)LR_gTIM~@)BxqNlb*+wrqBvsg&~&K)=L=&So$C*hZ}a4hGiy$g&akg%T0U% zZ+v>OI7@=Y_pNlEyzRB4g8q)?-(Y{W#@;(VAS1k$$+shqN2B1^0havrqmoOA_h)j^ zjwRQFyZaPS89r4#A*(O!T5Aa5YcEx>C;hMOk6piC*5utz@jHvtfNZO4VF7&F9>0&m zKzc`K%pc)VP7x$6#;kBOjR?xG6PNL~2P7RprN3?W9BeTx*@nT55vX(T z)aY4j%PSw__jNzemt?QTMm#m&eN@X8{qGWtP$7#&K|)mll$=|(xEW0n<;<3|h&cGt zpwEHgR(!QfL9zXK784h)*pgh(P64Ra|DE?F0)G%tMj~`HxW4qBE^=S@Oe3EgRF<<3 zWhEr70gF6q(-;&>n?{pM$087qB#-V%&=*lH9Eg27`#q6kWpgj`{~8&9BI)Km7d?>J z;VI*`tz`b9yiLvL#@EJ(YuZ(Q+h4u$69sA-0mwlg>*@&_hT2xcmgU6s98&E}RXKcc zr5egOKwA6vkpI`N&PX3+H_-JiM##M0fq34$P(8o5j$GgOCOyK2Q$E3)QES1MD@MUq zTb>_Z$znB_P;07PaXSw6(23i_ONbpyw=g9B*DI>I>wugzP(MR(AIGv^62m*GO6rJ!tWv6)Jbsp7mKj=OMWw0zBylexH-wO5%b zy}XCL&M?vi7vmP-;;Cg}+~|)Ru>h&_jhDvr-P5ok$MJY;bKDqT zv=C{;*zfT|s=ejhc@`GPg!TAnP-h-CD~CRvcIIIk{>_jFfxxZ30vM3bPS=hI|9W=! zA&f)QPW`fi(_+XpD;rnq+{H37>4Y&=)e_ahd*GAvg?>fby;WVS@_>+RV~Kzp{G7QO zn;Z?WXE&GLUK2r)6d{M zPS4G>ml9>`9lA+cMMTr6aQQ37UoBJ6gat-Vf0>&lMd~gEu;L50y-Vd{%UkoD$oqoM zy{HpME#(4MBZ~~pk)sXW#45IQ$$WY*Ty?e~QSXoHLCv<1ZD7;PYGA};qYg*FfEPUO zg;D$m=oJ)&BkMzXyr%G&gAkUXbpPwIcdx0R-8euiGn9wGW1=*2D&+=K=1<)ipDh~; zn|{Y$UDYWw`gUa25~GN(!%)uq6jlT5*N#y@+*preaid z)Yt?*+2vii8<)`jQUOfu-e2&wzG0Kq-=J%6A$wv~S#qH!G9bIAs+KKo-x#<+im($| zeZUmUJDJfe0q?3kxHmFEpN?teX1^46uDm6|YOcRuZAX(L5^UaD=&=jR0nIEXvTpLit6U?nPk2C$7$exk@f<5ln_lgm<=?pcA z$UZ1q4aM>Mee>Ozzo9>v(`$IMKEL&r#?zcsTRP~NdpKBKSHU5Bqwet$BxRx!u;spC zm#UXeHt%^iF7pC*e4D;IWA9CGV&=Ebw#N^}PapLqHDu#XJXW0zLi%VpY?LCnq)oSq z$QX$ru_zlqmLaT)B{H%gA6;dWJDecq)I8)_RBg-cSsq{#H>2%hfR4xH|SL7qp%;fmu< zAnyQvAV1HImWNwZ6;kgI41>|s4o}6{SW;vMoaA5nn~IppAygG(zfTJ88Bcj#e@Y;U zOGUDK+?ASajUkfVSw$L@(Q$fklp)kpwwP^Ha!wv^3bHb0fF%|p4`{-TQz{QV)nrW& z2LMmdO4-p%33?#TS{G7RNKJJHvKHc2lj~14Ai)kk)T>s4pztkpHrRjDcvFs8%TKSB zV4&F7B_DT*1gVGf@JaB@s_jkMT=9pIK0}EPP9Kvre;5&<#JS;w_~n?W5!_LniQnkg z{G(61XjAxz4fo|NuZT}f`8b5boEg98I|Di?`2gUpJ2^l|a=;q`dEUoe=SYhD&6dRm z)&S%b1#q5uEaMDQp^QZg5k@W7`1IBujglVQ!YAHkw<2}1VpOw2u{v8dM#o*~5Jo={ zj;&ZmE!E_oI{6}rx{-}ZD<8F=>bU&c@!}1P%$r>$2*p!udA>{|J~y)UtOUWTX2)7~ zl9W;9J=78xs_oX>)81H8HY^ksDJ(xTSTZnXM<8fJ#*emG)g>k3SDFNns7YV^8CGSB z&`n1T8e+22aGEg*|M@CPV^P+`uRfPcmGVGwgY8tQeXzci4J}NnEPG`9hkoN+Q#8JuxPF46sj5Su?-V7!9l#E`mp zrcT!*N%Cyc?4|MlR2L`Z%;i&@xC(#=jgUnPf_bwa>fdahjQEd0u)v88+0nCxR zQtm@4@X0(7?_A~fLY)O#T-SHP^qAyit6o3o*#tiW&OBM;FesQ}lh|jw zCl@tE+ja-b`oT1%Tl3sI7yf&jxVsO{-x*Nf{bbW~MhL0h+BFrmnkr97=U7JS z{xLYRdE!EgO08snXOg!Gbr*F`cJszms{Q<64R7yPLw|ddcYVtk*1KhAs>n3bn!QJ)iP(SVSp5Qt0DCC*9c~~)rkp}7(8G7gp!gT8M^7Zncf(0c6w^R-~XLV1UO}C z`$5kO5Fg--&={=ER$iOb`ZDJ-0XgzL7;Vn2aa|d>rw7M7i(0XzcG-~Y*?Ei@+26rwf!|MEZ zu*Z5m3-;4sp+LQ!z+YiQNrnCMYWvUqtQ2s&?dtb;EO13%pV^50a03UDVpfQ$hYx`D=KC_ zerK4t?Qi?LzmC8VGl^eRR@>xgz;txH_<6YAJ*oZ#4(rM#NIz|aW%&YZC{z8-KVB%1qq3369c_ZcZ`8c{%(-jBmH#%H%e+Vh9xR#+1ITc?8#Xhtazj0p zcEWAkB|v$sB_>r`lUlK(e4AZ|q?YZIyCNQK- zo`NNYWKO)dryr{qOuLUNsAXkHs_jLoj#o**;uELTLca(a2r^|#!~P@{r#}}op_4$r zat!nNKLNu5WKnO<%WuBQkv|za(n6ouHu6p%fO;uOeg0Aos#EH0BZDr3rIC;Rxt_r!~&=G$`!KclN>K%|&Pq>$h1j8tFbSS6v$6Vqrhs4sI5~wwJ=o^;Z+hRS9@ z8o;2zm>hm=k2rpjf8->D0}4G4C~tbcC;=TtGTZ+CgYVnQP5z}K8B5tG4Wo{CfF{5T zCtuE}d^=0;K-XnT*^5`acG3BJ6cs%Mqz(-cpdfvmrb_Uq6@3HreV#n*2y4&l37-*O za7UXVT#_kIH$``hLJ!_i$OwB@LaT(pL0bB|488S)X8#a5d_tCeSZp>Q2EI3y1PC{N zj&LCpx*vg4q5o|l9)~$UbU3U@0U+x&jNEUoZI_ThKLOl*Lx`2~EUk=Z|K<@Um51bR zwDg6_{o822ur?XC4xFToM&=o3OIU5_X6C4q%nhbWIBU_D3*+&6@%{b*z2sR6bN|_O z)IPegg=LAgQ%&;{j29kWvn?uq^Bw-;^h%5KZYrPgi)Nl$A##`!gb`6d`Y9O>mtF|J zpf{*4y=j1gV&`k^E9HyR5sS2Xj5Md=Y^|k2Ccit%8_(6@@ZLv|9Ms;o3o;xy3raqS zInhyVchX3XV+4RFsAPXP4tDlm6mB6+fpg_wn0pSkm6A4YTU>>8_G~H@W$5)&t%JFL z-q$cNMSG9DWJXg^{3^DDNr|S>SF+iFU?41AWadtXS-aw5OQ%TR292r;wGfpu$v8)q zyZa-Lw8YD&(Ir_7E)%(P7L*fcF`UrfeLf!ofPqOY?4X61j~P!F`8t3Qq%8UJ_mDnD zMfm9WjH*9{geXjmg0{?MO>*S zMMgfemZ6CDCb^F9qEebaH!M8`|7f%#RRUOpwpzzUZ=hDz#)5GqlJq6Yufjlo)YNtq zE9yM>h=i1};=#y1%{C8UNWN#@)K%-nd6iz;YO!G9om~N)s~NpDZU-jLXwQD{p5ux1 z2K+??69j|c3vc(#H^FBa$*2{$Ac}N~XN1=_mNc))i2Q$ns^9=2N!Xua((248=u616 zb#6CnabNC0lxl;nbMSwV+f);~?Jy(muPHiVf2Xd9wl9V`ZMD;b@>_ytP>wK=O=l_x z)d%a{>d6P$Xtz>Ah$48-T`;PkY|?*I+=ip>RYGQ`C=lWo_ucq?FNYbRJE_Li7Q@*8 za%eU;A9qGmQCrvGAfek9BymR5xdAuiGYh|>CPull(sg}7HEUQ-lrQgY2hSM9mPvm* zKQ0#vd?nQW0_@;RM$)Nt=E5&UIRgAJkJpHmP)U)*60%8?6mVLRzSU2js0tAlq_{b+ zAnf1@;wqF*a^WlyHCwOB1V$*fvpz^nHu&*Qo(n6A;ZHtifmV=ei5^KS?RGRr zft?=ei~~kIdt?tfG8HS4bi*4nq{QW-bX74V^r?UNL&_$lp>d5`L>df=GAc#Hci0Zg z{;d73I9v+ypX8`@k`{X{SqB)GpBX0SaSqZb#IRTX$`G?9$ z&TR5I3Zs>3VA_1ik}arr6>1~P#8uuR#E&4^(lMmbdnfhA{rIkabj<){SP>(_Ydn+!+D<=VR?|M+ve5mmbow(7cu(jFvV-mi^nH8^u>L?Ha`A2XfW9Ry5 z)%||$MCdM&r zFK4{bsSDia+n#7kub09pNNv#^iC~wI)e&$v2Su_9Jf7b*93f8GIg{e&j7df@!^S0G zqLnF)@Wx#`w84g%DMjpdM`cPblf7_EZ8Y$)rJ~N3>Bv0Zo=lbN)qSqSXVuTOnf~#X z7T5FqwR=EPR=TnyCVS^0*DF$5wq{i{f(ouP`xVcy^E66Xf&WdpDZq3FmrP4i;!hv_OIoce5lQBVkUK@?SI4yLHGc6w89VPEfX_pYWDB zK0Ep9e?9hX_|$QrrwX$4o4|?jQE9@$$BR}to0ZxdKtSU==+2Exsd2Ot%1k#Pi%(en z#Cbp&lyQ^%jvAJ@9YrCaJ*whBIy2LV0MWQIsF(ZDOyUSrQO_BW8evoZ`Vm0TBjN0! zuXMb*(GiKKnlsnSrI%C>Ds^S@y|aKnzofuu-a9li&BtQYjojqYyO?(%SZrhi_iET} z4V8W5EW>V|vFRIptKvW~P3C#YmAx$pma3wwER;$f58GQ4iiO!RgFM-i9TOUp=~ZdV z#Jfl)FMsj{{f_qkI=VGx=YC<*6ar=B{7SAg<;`)jH`+u_6m*^LUgM*#l<8jp2v1Es zpD(r8w00q-+Wu4=rO{$OWEZ6R@mJ1p{zGLi#74UaTv;n@dNQYtB+drs+bo26&MGWl$GHL2hL4P2BL-p@+-uH$htG>N z!w`ROOG}bndDn`ew^w1k+5`kBR|R=|q^YsCw#>}>Owqdf6P&6*d@=gXt#pDE(eS;s z7BI<7LLWq^>H9-p^cKy9K>5CHS~VF`ED+h3aUc^YXC49nyGK#iD`@DK?&Myh#(z^J zYzaC~ZAXD}ak-8pO>DOx%f_agUaF-^MNF-Z1_$V)ySxM}I%QBq!AoNNDq*SL z+XAT?Wb*p#zzO|1ITxf796%$KrHt&zpDZ}elXO%crz3HO0Z(p>SU3Ug%KVeD@QAhR zxt9?tLp}R=&cMXOzHtQ)+7_)Q&;df6#p8NSYxPYFI?J3KSrSe!+} zqb7BWZw3N*BJM`#q#DA_FdU#^K<`jZ@vui3=EEm|nvt|p-AbC)a)ZEW#r!3MM1(@N zua<^rh?>sN%^0N;J6(RX{w>&_-n6N{F&U;vI(FS{*srvG^-cVle zLLVW4U^8g#m(AJFzoFTCFR-^%=xS@W#6OMq6`2j_F;LH9&z>j>)*f>yTQt?Ys((sc z#^yrzE*D4wV0Vh-VE{6 zM#avpn6dutSLDU7i0_5EAM_cNupwBC z=6?QMimJte-}lZCUs%`*hrQ`tyU7CWRkTiB4PVfq(fKvqy{ngR^#Yl$dv_F?>W&LY ztz6%K%)z2Np^BXn@*Bjc^S_1T`mb0wS=%45c3bvCi6vwO9tntUwDANw+?j8=5X|0w ze&|Lu9o(Kiht5zZdWGQFYbApgoVoyhFuYG)kS~AviU(e2qLEpL^L;p(V|jb%Jvh^h zY-p-IQrCAOh_M1=Pkq?oH=ey>0f$_pCX<6fSUe8~(x>3!iWeS#tuFly z-84_SL|ua$US@NOk@dzJC-Kil5n3{vR-kP39{xlCLR$w|L`DaF6$N*@lE0fpOlh~^ zJAQW`Voc#Wf%#5zY*T_i@~1|0@?iz3ddCS5xgzZGIom40~Imd^QE~EGdfy3;5eQLPYxMX==n%SCT}ffaS|T z`EP`S?BQqo!l6ATuG!h^zhmcFMKXYjEv6fn{TWQoZJD1GkiNAUpjN2lNOx4p9@Odr zKcI$U6B zdmOF}!9PNSMDu?#p05y8+B(842R5o>=Cd87R_B#Oo$Ef|GLMA%>j4D2nWaS;(S8wJ z(kqa|Z-q%oE`|!;mjLL??Z=U}<7FMj_mRPaHh|-n;R4pKG%K2-{Bh$_G%zH}rPh%mW6VUmP*mjN)S)k#!S98?T zPIr;rFrzx-69p|lno*8;x{V$kg;gV4MC}ydxT6DSuC`MBg)D+cvOwI8FFCR_qDaOs zt?3lIvY201m$t+wp|TTQlW8Os&>Q^sp7ZN(cY|V=vzcl*t6AQ>lQ9XiP-#tk_*X$_ ze<5HnIS)_u@WCC;KxPHW2rYoOUqZ4){5}|3u7s4W?*>3j|G-qh_fK~`@7yq!b0btl zNheEW`>8t_d`H0+n>Zz15&>Ic|RVi;(WvS8G+bC zH&Tm|PNa?Y`arF1=)7W4gK~;9Ihr80(_;*|7@ElOLhQ@))NGdc*|BRcnfITZ{KE5s zC%NZL%^w!AA3=B(=<`Rgs5=$PHjhDmU?SD6A$mv2`ii96l*y2th&AyZeUR<0KnesDZ z;6=Tf(=&XM*#Dmlz4lIhsr=7<$ogaAKF14NBF(+8WGN4at(V%>?`s8eWI(*c@mvAs z|7q*%YlttHw;go+0d%0gh;9L<3^aP@!Z*O#7bp6gn5K9h>3l^Hk>-%`d;E5IkKz>- z5GYrMO6Y$|aQ8Dn`{uPOLOHPQ3Bq&EHtrouZW~K%$6nbl;Iq~}TV7V}Wq%G5+FVy% z4Xl;~AqyJr*$C=Bi8*8b{Op42Qux2VVr=TX_!2Sh_j4nC{k-4U_F{PFeUB?cwGahC z9`8PdF_3il+xvv)Y%>X$okXr$57)}zjxgm zEA$3f6nl*EDfX5B+7y8E^fhJqblKi7l*sV?wqM7Z(;5~TK7JAjJs*WXl54 z2S1E&BsG7RO&+!nTCnf%BDzQAVl!AUG^!TC>;G+|^V5GYOCPpkBxv*^Qq{&Sc~_vd zlLYQh0?W!KS7P(pln_F31~OP1CxHnI7=lb+U{oH}LU2EV3Q(80C}LpfI=t=43c8%K3CM9;gK=SpE^ma~puRpyDp_H^XAc`w5k*_=EaNZ+ZK0s2-KWN;D|w@)WwtR#5eim?hQ0-o zFH^6NFS51t8!Nxg^8F5OtNAMmCtV)5sz36p%kmT4R_aCWbUH}3{6@^;!>)J`jAV01 z?Y3=KYSB%z7?`&Hb^KvpiAu5P>02|^W-f}k;LH2^iq(OiWeln#U&2--W)B0fgo?!~ zz-sbcPefNvpF#*slWLZbbs!I*tuUE9@ZKtml5+hZ-K{hl6;}ywy7PHPYW21HM@7N~ zc<(9&(wiHR9ai?VF`L>8P?A0)@asqVH_M_=@+D5MZRIQ=Hmh9#;4>Pho+B%TUf z*6@!3>{yp}mEp=e-Ldu<`8|qG)2$aWYshS$X|QhVGCBu-h5GISLk&p z`W3VIqqEk1v+!bju+!x*3VsyXGO^Bnfh&eWgd7VC%S>{+v8#YnQ2%Q7qN?wD<^=a0 z1-3q?u~hws1$9C8K_=WV`zatSALa85K2=)3%QdANarXc)vSi zU1Q&b+&7@$Q}d0p_*{U%{~t?N8PrzWv~hQLcXxNExD+VvP~3~8xFonsv0?>Ead(2d zTan@}#a+JidB2(bJDE(9`^=u*y=?GM(iR%WiA9StmfNO43$ zv=b)j*%;A0hYQEkz944K@P4)K+F1J~jI8lVBb0Yw?xUE;H6)?^yX!_*=;q-qpk*N! z3^!CJxXpDNpHM;;2EtWYtRf~@90naevj8rfA;Fl z-M~f8!b?z&5e(4l(-&OXzSx@ZwHoA8%@x6~W`9Dqlca>so=|w{hpV5VLXlPbEI_Q> zs^x6nm`C1>D?0TfI;{KCJV{FYYT!S|`KRBb3$grIEh&No#epx>`_z6>!+WFC~``Kz**q66Q>9M+{TSbxOmu z4BAv=idT>M?L4ucOll66GGyt0?5T+z`aTfcLa0pX0B~K??$Q5Suqtt_OTi*SecPwI#?MIf7BuQmvdg{G- zGE=nzwUv7Ix6!G?1heAoz^@#FX!N8zX`iYsMjvK~p4{-~o#xPWO!H!i=NP^RJ`xe# zh+yY^yXtp$lwW4k;oVDXL&3wqTsrn^1BFWX*<(Ur%|Ik4#mlR)Noy_Hqq)mRM;dhK z^098)A_PY>KQzc)&_9eg2D-kVq$#fpwU2bN8r%t5Cu~} zB26&wAl~tLi0dT_KC|;!UzO}m$Ta5`J6*#Cr1f>E54F>NZg>CaM->mr?wzU1S?6NV zUH;%kJj$!|zDN6{Gk5cu2#ukwL$)&Kw2k>I!|9uGJLAv;W+?7t@t{`pp$iTZt*7dQe8pVkgm+dCJynP6 zrJN!X^W=Z4Mb)E!hgYg>3|>>7h2S;A%C?IGstKoILf}0SZ z2~yjb>PyU!kP>L|c<8&5z4ABrtSP+fJ@V>x`GO^Vv6Z4+bTM-rc2(#^gGOAcU*NjL z?S_Q2*ZT`RwcYN#dbzS|H`6I=BzD)ks^miqw`DnS3Y3iHPLK?(5~q-UuKId0mIe1B zZL8u?}Eq=&0kXE5ml>qgWu-S5c=j(L4tK`l34DQZ`kun`f zDIbisRK7sOvm>6fc7dMf|4YzNd>ZHPi${27FbKj(5S(=CkI}f3tqy#hsr1wb+>9xg zm7gOOCcz5U)z=T0{8)gFnot%-JjEbPYejUF$O@^-6)jL~HubgmqrsIqp2|TZR(`oJt{{Lg$A$14+B4D;MqmOsZj5T|+;RzqgC#@8yUl!OL=K=( z%q7ZhqH5>RC^{$@dz>1jy zW5imF1JH^FQYmAyhWT^a83cd<+U4EV1)RG1=i;f>6vEx^hoG_s${Ca(YVoJ*mQJYs z5WAu_6ML|lZUdVClFz!EGJmS5zgStmdw4i1SWZ2ZUq_?_f4@sJXVQkBQqPGOz^6_8 zdPfvrLVCH@uYd7$TFylFj-Tgem)niS)SYT4(MaABqGe*V`8>~)DRxV*`b`MqsKQh_ zzZO-gJo~$+@gVPO!1nh7Zd1Qoe6jT=svl~8`0eqzVNrG9B69Gi7Ir0wPy<(s2Bw_0 zX}ndk){0dv?bPT$qBbO_$=Y=fqqcU1enbJWHng932w6>QJ6B5_Fq&= z`$8zvbRK=`VZ!}&RK>SLk+<0NgIr9Y#&`KvgH)$wc+OaoP?iCVOkBm z(QUmCSCKOr{IyWc=SQ?clnfuJkF%8sf=aUL^y8zW;@g>FjnibwL1GybDz z5)du~j6dbUBg#W7sk4#^*AO=WUeYxWveC(#l6sv(uU^Y z&iyKk+a>@B?kp(E6-hm5IjK>-s^!X^`_P*J!xoO{gX)52P=0#PgQofqEi`r%zyRpJMDh#86@R2o7UJQPD4gcj#;-#3xYX{g&5My zV0|hRV=fiG@bg$09$&pdOS#LRdN``Ssh-w-L3G4<9#`IwQS2dgpALb(R04OCp-Tp140M zx`%qzPMw5O2eBU;eCY-HV49ESv}QhD!Nq>NhmF;uF8qzspwgSa6qb4d;!+$cG`?*+ zoT;0CvC8DEEM^Jj1G7Au(NBV&h!=#G z9Xs4X+LP81g6KJQe$h1*6h`FNl;1edznJ`vsLW`BOheE>?C*)8Ox7H5)fyB-NWu6j zTgmY5{O+W;x6r0l*i16&-5=!X)DC(^1@q)iq&cnj+Rj>1Q;~D2;SkdT)b8 zuH27yW6xVItxlJ-hSe?B&7!Thx@W+P3N;2%l+}F z7+qVNRSBX7g5rt;Fby|ILlh+5=HN%feyOx&c*-DSz(=6vby7EWV%aN$(kCq!db#kc;856? zugj<%U*E+#xYfABYPWP%tJ6zpkC}in=oQ_k zbA`nFTf@K&JZm|Z@6!lk!V)TIci63k-izoKqit6dbccStScp>mas3Na8I|hS<@DRK6@FDW__t+ps|KI&I%8md6TcMD>*B{M^>LEU zX~!Cjql_l{D&3!1UU@C}v}XI%pp_{RKv4CoAG>oc7#r1SKfM zkrcS^43_DXs!x8bHWhd0K9}>!aZD8 zWY)9giR6JF+;<{10mH9FR}6f(V##c6%aM>1=Yva6k=&VUTCqm}Ld%KF$|6aaCZ1%Mds=idM zZ!^kKioQV)ilqR{il)!)e3sv$_qp2sDB1XT%PxNb(m?gB16B~d8eU#}U#XeCVbgMV zWGiYZe}8Xy4BK$oL1BxuAH1+N8SXb>mY>OcCWS+I|69 zOi6hO-hgI7j|4xRUAI8o*NNo4HkZY{=*SCu&Ak)KSe15I^TyW2 zf3#aycz!umb24@02?}CRwQ>-rueZ>z_Mnhzf5Kx9ZL_qGk<%qOWEg}$oBZ&`0u4d* ze-nD^+`n>L9l2Anz&wREUW^8))I7{3T+T$rT=Z2tUMvFjYIO2>Sf6=(-HfX3ax22J z1Tps?-s#@B3wPXvrW-!%IQ_1Jha?mCS9iZf^E)o?8apmk4gCCA0Y|;fT)7$oLQd$v zNL>K>(}vf1;IuN4XyJK&nMflfF-mbee4_p(+^nGL4!?QT(tofgTY(v&SArjK1_z9P z*yz(i+pFE)fsB>1{Mj;qK_Vd-V|kg2_g^3 zX=DqJO&900dxqQoEV}!z4!sj_oGvL24_S+cFT1JVj?OZm&d8RQqnT6;LmR^K#1nnO z&I8z?*PW_c)0=_YQ%pmv`~p%@XA1P56*mp;Ic%%MP}=)I{V9%@<2jUCR3fR}K*hl< z{KJjE!Z{<~dw^msChEzk3lx;EA|`GzNtC?De9_?O{Gh>+2R3U4vZ1JJNja7hDlUO7 zYGS`VbW=D0o#WkDY=`H&Vy(>^+)KkwCeaK?v=;WnCy$Cal14-?Dy38%2e&!;R)Qrz z>ScshtTRd?CKey};(TgIiGiZHpS;I&$F^`Xv7AZuPMwCIEy`T{oW9$*$(YB5C4*Ie zd$YlAYe}B>Vj@zA=s|@UCV>XNG-Ipi#$SxbgqN^7jG{z``!NRnW;>jUjSX$GUUDmA z$ES>^+VbFyR>|j3^QUr9L&5^iZ&d<|T~1A?JMrfv=Vlo@3~+%OtNXDb3PeaMou7wE zCBFAfK<3F|bK>QF@V-eNGgxWvtzu0p3cohGhG{<&RidRy=V z;sDMbRcQCXeB<&7*VR>d=t6%(amG{S(tJ$M*XIt058w;MvX6=HQovK783J*5k)=4< z9LkqeoSm(;|6PSEqP2W7gEzLH5EiW@rJHvC;PuAz@?a_0a6Ap4Fu5EH*6>kKFidCC zbbKLpS`R=1Wpz-Ph7oDccMv?}<# zSo&~2LM0*8E#M9P8tJ>ZjWL<-IO}`3loLXbT)`IU?&!0+!W~JCihya5p~MM0)QrjW z_jIJ;_TIvo*LXtVKW>z{ugaaa*=0l;qeSjxM2}$*i(aIg(u*VAd4biiTGY9fZ&9Q8 ziak*aXY=iLV9^sJ$M6+Fq`@Uh9ka1N{BIri*A+Ot=>VWL@&S!Yezvt)4f8j7Gl-+q zrRL>9T3zFCsR$hkyrpkj8rCqA>=kHW=Me=j+;l)E-@4rL+s?pK<&aj9JS&TppY_?D zYxsYQY*L_)0%de)ZAWHswjRDJ31t&!cFbgMTY=+{57G4_^Z2_D{IQ&prL@OnaL5Pr zdT%+rBRzl_XegZ+-K9;Al_Gq_7Z%i*!7*-V@^w75x}$tX~LEkjErl zWWb2nla;s8K(HmNDjG{RX;1nK(CVh8+h0OD_t6;;)g2Ye8cs z3S5pKa@#t;fN>K;vP4`4Gig~4af=5#^tVI< zJWl(;Jx^u`H<40gBrKH`#I-x6fuCJc5V@2U7psa%bFGNvcfGwozU$Z$NQ+vaRXa?n zY#n(V3oeV|r-xqR&0#WVK=O*$r4#l7qL+$k-E=61v9n_@;ph}#7WtyegC`t=04!zV z0#^qz;7lYSGb{TZuQ;;08j_{V#PrF$Qhax)Zaaz17=fa#HVmCCl1!XoF$1G4E(r)r zyd;fA+tJI-wxow83wW9-CwvmyF*y(&Ls$)}t;h@=z;aFkv! zw(z_;v_LN8n6!BuxQ4$oL`jQ*me71bY{p| zO<{6M*R3)o)%U))&NOH|izZCQ9eB)%7T~Lp? zm{|N+X5P?uuIHnu_YVz2bm@~b+N+_7Sh>oC;nwu?L$uUJnipW8W9VZ((){kmEtmPx zgOq87d&}sM=f6eV<*| zO9F8+pYiKY?jpBZnR$xqCk+=`zm2AM#nOxobYF7JgyoA!!0#p}vDPPL z`S$$@Nc}`**{uj}t=y-X$78umw+L!g@Vt^rB*$T+JfIS2EMj~!jM0#QI1`Go#&I1q zl8G5Bep5LIp$1*GYIJC32E23(MhWhuKyq0w^tG>QVel}-FYHs0GJ3=VB>F(;9oFZx zm>qt}Q%P}n6^H{dczBmG(X!PZjo6o`{%k~Aumag854fM{2+24!M3LWx_m~rA-JbfD zGIsGl+Xhi^tBz#ve;zgvu)FvX(lL{l^F=s_ggt0L;j!RCJe4tv%tL|V>BiDt zmuDumv$j)JidlUtJ_CFTA)OVBlp>n^os zs*r@s8f!9dd}~#{618_n=p)SE&?g=u0&y3ZHeE32OEAjmfuk?oARmpA#UVFOrL*PDKTm@yl3EQ!$Gp6Y_G>%w;hz z9^j#}MlJ&lj$5BMu{=R_n}LLQF5m4#sZn2j1nNvogUIIoM(tFyeF5rJ@1xt5Y#rI!H~r|HJLE#$wFcA&)X9_Ft3XCiXl$2r zH<%Xw_-szKcw*8u=2I%T1K#Co$w;Fxb5Wj-1tCW0X7(6!xFKSwp-O(k%?=-;_DRv1 z8Z9;Z4l!=u>?@33HPNh7|Jg~az5*|?8%a`* zJ>WTgs(n@3nD5d>Ps4U@2j6HvUQC6ZQ0MDbEnRe}sQY(`CilKQ$_3>8+?`_c!>-fr zf}G1kb?7&_h(ov?pZt<{R%CT7IMg3JTT{*6hAhqk*M0*>=ON5QkO(LCvCMG&auUEmFE=JAUogdLFbtz)U1ypXHB*km%>?APVNI?70E5ZH#nEHJFSU+w+F z5z9Yle0}?!f2MV5^ONkk$@PXL$b2B<M`;$@x`n6T&v2kGy2$Txp9%lthhY^!mAd;& zkOAWVb1T*o%s*BEyuC@eptm4-h8f7?fA>J^nKumXl3$;_eu*{Xe2(XZt$-Bo%|%?Y`YH9ToQVIx>wQC1cnLEGG={dgVX5%)pHx zCu<{Ptd2>}4@(jh@7~k2sPckUqY<7@t@g_reNR`+2qSk-`o768s%7A2z{| z{~2FXp&54dGBT|EPFJk^%?|)Lv~qWnE0fTT-Mz^A^a3&H>MtnR$az9YczwwvI@?;$ z2&!%o2GsHkl!T3BESn^w95&DPC%&$KNW2PNFXQ(&U?U*9o?0Kz6JxM1!`IUB5PLktshgA7dnD`JXND|`;s4@9I6*AK>hJyg(U4xPvZ4kxO`W^oF*gb43r8~-FEU^j;}91g|iMSwSsyP!pd;65VH1h&PR1i)1WU%yuls&A*_ha%a0SxyXKx8 zQ>YdDJ-=8Y@o3@^wzelPd9GIWY8i%YZE1uNGgM_xs)`a1c{NQeajfKe|4?eyn~FPu z^mR;AEJPGc>sX%;|YrzQz3myxgD!j}9Nh!t z<2Enp>yW}iKVwmF0kPf5@H?#?s`1$SusfA+7CX3xO!r~NwG>0>kK{!c(Fk^w$$rR$ zvuqy?`b@De?xk43vs10T@GKSx-%gKeE>C$}FGvM^SdL>bRVhDo2kX|ai7EM4H0XViCA4y7 zS_cvEY9KyMFw0P=ZIc(E(`m#R%7D@}c68TV=OQih_|NO%E1C;N<9uz5i=>(_F z%UB5pmLIQ*sx5eXbiB`pJ@IvuHEPNtEAm)gLocT=Gj^&Q=l(B?@ zPkf(~D^~=UQ&JEbUbHiq@*qJz&9W8<1j>Pv@wsX=IQtENPMS8swAcYnuHdFzM2n@- z-9FD99045e*#M{IdT)p-NR`gg5@&b6cjk4u;WMwg@n|?b9h^fIn%^<3Msp^g0NI~T z^6cin;6^sT;>fwdw78w=W!xIiF$O0|k1V8M6h)0Z>isJD*+*HSAYp_evr`a2D=BrK zNo@KH4#{3~ull%*VtBu`?#_6@`f`Ie;&zo0v$F^dH-dEfcKjLm2fJv}xed$^t+k<$ zcJ=0b8rs#tKs-8W&GVr=jhyX%W~h)`iH6u0qHICe{=A|Lc|&jAz;WD33Q3d-!-QDY zq1yWkZ+kQxo>}Lc-m`&~Ue5%T(xw%v~+OPGPQo_VzD>+QR(*n z8$8v|M?gt7YGy6Gu5PT_&7=?kvuVKZ56d%2-t$!PiAc;B%lj_3X63XPE7xuLY}>T5 zdGo1YYP!bPSxnTAL;?Lg@&`G>7T(c^RS@OnQ>o)-S0F*PdH}JC09lmj33xuFar)N@ z77uBH9{NwK$t#`dlgBZxpnkMCY{I6mVL#GF3x}p_Gez#0=Q(u9sw>4gk)SkYjMv++ z7FhKl2=vb7OOg2WV}ZK8n7vps)A{nKnpUSAS)Q+xK;612ciMrc@FvaV5S?OL9ihod zs%(3phUM(=&`i}TZ3_(~yqL7lFin2UR09$xDy!A$j?TQ zm&NGVp=LJ?1<7MX2Z7SbfSu0scfFXZ%**47!^Jv;yzF~cfND4zN37ouL{qY77)Y9U z#MaIq#nD#pGA%2t8#*r)q!G6v8C{l-#IKQY;CXJ1LcPY72e&C(~k3G#m{KlCAe7L;ez3C1mh-AlVOOxQlVbUznBbMxg@^c!^;g~5qtZEdqz&3 z1v4}W>~jK0)lM>^vXOkg|GZSf)5%lMUD+JZTTr6QdbGp&pPxho3WmdwA*Mh4T;#pH zG_SZ$*wh3`xv=lU19dft$Rgj{ZJ8E)wA7w()Ps}54qOFQGVO3IvLj(^FD$#L)o6n< zM1rpm=oI|qH*c5%5XSPSH+*~KVY zJ>Uogc_HG6m6wH!^%=O+KQ$Nu8Wi$6Ck$*4{-iY7@jY#rioM#k+>4cF3Htf=r~&Et zK032cBY`Zma@MYw;)g7=?~D zF4epj_J0Ydz27*4-eY1He=f%()${L397?cD&q~pGhBC z%m=@t7WVarcmLR)iR88#G(Vax5q9)gK2M0<=kkqa8OKY%-bA@PC1XlUA27LBtpe{96&8kzBEzSX(c;6_N(NU6IdW~z5q@PgVZ2H@?jVY z591!|GcBhNX#>3D))}SXP86oX&V#BDNczLPzh$M=6uEIs_F2Ibj4l ziv^-c@mIv+5eC+m-5*d!7wuto7H$t8Z&ZZx&Dj=BUWHS7>n=vjbHf98d~T_DhcykLVuVqWkTO^Ls8s zEjd4OWt+(43cS`_ZE}m9nnZoW}B% z^|4xv9|i(>l8ih`xg7>pGJ?@mQ;9%|-?sy0;@ZAy25zD`tu~QX1irx}W#As}ZCAkr z<+;lF>e8)i19GIO@msI#N>|NenOV*|@ml(c3;ZpRA(E$W2%Zt@LaLlvvJ2RJ?6`4( zI$gn|{rQ2YwNKPh1AE6itJwtau)A700XV7ux}_J{O@^7hnm+A)>0b=m9!J__9C>T8 zTFxlFRzDN!=DXTk5l6oZtnBMrJze!Zco-W2giA1^KYor0%d%GVN2az_QfK`2Td$bT z_Pa||pl_R_^O}-I$Rt(_mNp_q0Uh9?#g&}BoAl)bgb@Z(H#R2ozd59a5EdZ%c!LIe zt;vBY06wQFnG4SHSx=Fq>EbM1l0@3`X5?!ml^{kltQq+u%Mkiby=?wo>?T~|-l$9p zjhZH3N0|@?&1QN~2M1%U{7);T6m4I>Q@I@V2m?x5Guvel@X~8!7QJU#nX}N>iAmgS z;0HUS`Be~3bwThiQ*@c~3*p@}$!gi7yRex~)6ZCny#;BKw7+perK06Jbhj)k=EF{o z17AGGVJn&8sHyStJVnz@cnVzNUYK;-XmETg2QWUQfXQIUAH}<@=(Tx1n!9ZI*!1nC z5E6`8M15BU5*&Tj)pBfr!x7k7eZ{bsTPDbq^5Z5{7{H>c+mh)tEQdzl9-5vd8_^Y=A)K8(_QY1P&8^|upIqjYsh z!f`M?POUnG13g>6jLV1_y4{6uO`Id}llJ#fhTDLxlv9fqmfpX;*TWZT{V>!SYwaOE z7KU$L3NVAJhT)5SkuoZ0y!YO}`A?+sSLMHHM<9qRn2#lm`F31LtLAm4lAIu7$)5S# z*Y0qAWjFz5`FcO$c?Esv>n)7w@w7r+Bx|82V5-lX7p~vjY^(_scWXv+*m}=3x9}IE zz+={i3qwGc$>1Egq1yxN?Yf9U~(9v-&uYLYfsJKVLMEQ{-D_-^Tb|HPt=;HU* zRL#?=1Hk`6=d`6w7GnPjmGE}B;Q#2zHVeLDl83^}*ro3+2J^Z?#{GhTf00Tz#9T;I zV&Zt~qK$pDoa1sl9}2%1q34|~zOpCCS#-D+GQWt6$nyGA8T-qn?L|j{WafLf^3CJGxb(kgV;P+%Z zPV*yDW0;g(g^_b{xEsjaR}eGqX8tkd4_lN^0&EWILh!^(VqnK^@yzC~k=OA$7l+c2 zc*T1XU&F$U$L~4WanP3IzkH1CB6>H6htQVs#&hpz+V07LbLUv&Z(b5zXL*#lk@0=c zf4d?~*-3X=m%4FxBTLg}d7bGPCy6s6NIz$N9e#}csWK+-5V8^YlOutl){Z87d!8~=WeL~B z89&!=-wNE7x2RWQG+5lv2;^w`6 zV@e{1?Yc~Tzj;*LTFyw%wAuz0P2+Qf(>(HBz$xti*TtAYCCo)P#G>gr&+nI;&py@M z#Rzg+zNn683u9w0`aumvWA@+V*_1msqe`xs{%r6+%vC0uEyq?+%L;3)js=g7DTqx2 zy`p{+F!LOpBMb%OGLe-8B@F`LD!AoUZui4=SvtLsr+zK=z*lmU}+*D&(-OW331NTyL;$v7k?6kqal$DY|2Kgu#G>8M^-}p<5p-;4 zn4it3Aa!(cR=hY3)C{i6~@xM~Ah0Q%C_;35>E+k`dqbB;x(3hCNg@%29$A)bZ%`DQdA;zNewhbQ_Pc@lLq>T> zU@nRI`#!qcu4C|{=OD~dz2**B0a((p?4+(+v4liVgML-RfQ_3WKxx=qsYtgFAp)6X zw^&3@#odVXdHH-DR%Bw&R-q`G;dBg$>To!=r$;=QRz0}>_+HE7&5CT^z#YSz;mrGs z|4bY2ZxL+XoEcgHD}BZ@R+^Rh>$z3Ph(~V7Cx_H|VamYqR;Q;WKI|2sRci~IIzb7O zp-+Fu<{z|T5H3Iz;)4F6=cw&gmEb>mC1t^^!%_N#sP2s1*e?Gu|xY8uU%GtJhdPlD`Indah8|i3_i(?5?#Vi8wp5Xd_q4gOzX+-~4?UCh<#yaIJ3={1qSQ*s>Zc#rINk0( zT$Rbh3M1^0#LGtUkVD8yPJu>QNtD#~+K~)@s5I8bHu_v#LLAz={<$a|wcj(BUJjXz5hGN#%7&|jh14le_1eu3bM%THZG~bd zuJe0`7et(%w#bP(If&3&6DHh5&)hCyC?$QTAS~)tRMwI>FzEsO)Qj7SFP)q#jc0Ts zhyWJ}v`b?7Lr4t6S`@&g+4T^^8M(R_q0U*2TNj|a8*h*?1YfaS5qbP8WQv>?CN-B` z!frPsxD?iP+t%O9|4)nN8j3FyrJ!;=rLnpLIU55d0)Isq3Ma?Va@1II$6j8vhLsFZ zOD)iO_nu({dsnZBx>e^1IB!UfamY?xL-8p#J%N3QF*``^Bkdme_V1zCKcz2pvtvgb z(yhi;;oY}+G--HP*L&>w*xw`Z!WjH6h3&(Mb^`PB6grsvP{(|RkEkDE{z}^l5chY+ z23OH0PV!vrhxX=BB}pFddOVy4cb{vkbG}nz6D4gOF;mR^cKZz5WU?BmGg6wkH5&ZM zQK7cR(q6BD_#1&^be)#XKpR=@-^stDF@z&eu34Qwj)>=-LMB(>$he4!AnF zy}?bD2=Z`6-O}yqbN@lsG22CQES-zLX%?hhYv21 z6_AENP>;%sfEnC+Z$z~4Luh1HA@J1?g1|$h?$9out6k>?|1^xnv^ypUV+luRpE*GZ zzB0=lSu)gAF<%dkgMCMIr%BbO%R9H{d}@IYm}4PkF8&q^ zEQdD=hr07R*ouHPz^8xv76=j;wyG6zxF!q7tNw>m(fDS_A+fs+g$y11AULYbAnK5* zCM_EiDCCE7+O6aPL-qSYH*;7#K%QJY=eE~@g7b31=bu4 z&%wYCA#IHvgsvVC%;`eE7~vC@8eKh_H~uc0U4G3#7pS=HR`Vb-K7TXn>JE5Nj&Dgj zN&F8re0VOv%9TXY)Ag$ke(WZu;gn1At8D~4D)PMTJ^qu1LEc4#GV_=Xo|E53d3nr# z*Lnb{P3{T)`;Q^l-p(NC%&@&hY@!1W4c)6Nn1e~2XH7k7rqc)cMY;p|)^ z%k+t|Uk{uBPANoFOiR>9SGbac-i;@9YV0qq+rTC^>7Rho4UN|eh?X1P55y%0G|BKoi3xg?(#$oC z!X07ca+=@*`0wfvp(|*)H8b+?gp;?<*f&led2P>Xqi@c21odT8o+@;mi@zBx_olzi z5v$e!>xti#+WumAknnM3u}|YB9Uz^%<8{ME$Ca|lzkJ(B1BI^24y%|AA7N&PDAuT+X}XS!c0xt-+|r&rPb z_%<_8?&tgp_NfdDssAh?nk<{G2j2*d0)6y|W zauHWI2BO>0j#>8ZBQN7ME9W$OGrHMme}>q#_F*>TW@Tj!k4{D+8WP1-x;K9GkS`^aaSi`n_PSn!j=;|0^h`lnB?=!CF(uv_^?9r1kqMy^R}yeV;KO(X zG8nZ!_!~mjJ(v|S$Xf9X@c)idpRx9fSE zpNFo^+~s%ghQ}66D*#R1wf3I`2SP!;-zdvT>*gcFjVRh^fc0Y}`;X`l7kDFdSs%W- z;m;74&s8GM>gXh<%X<&m7h-r$KM!=zf3h;Mm{Jd$P-~0ZfM290Ky64yEoWw~X{DoC zVJHhK4SUm&q816lZu#!#?=W>MZt%sOoF*3AGMwR`LHgmxRzd__%HTHOB(%OPTj|!dh%(8YPILdsJ5`IUca5IR9?zKZsqQ8 z4}r#N^|FM<<*rd377y$D{3)F02FIJ~qH$+YINwY7Q2LBrc4Ov-I)iCh3CypOJMjwN zk(yUq(Pd2Ad%TUxm{oIO|7s9}KI#LZu8zFI%_YGWFL(4g8-vDOq14$k=s}+jRC^G0 z%zF1diKnA=)Pq)Cxvtt!TRI1fGyg;cyyM3jo&B|@Xt54ZFl~oAw+^)1^`X2dT0H#j z-M@4D+tcl(?IYRED3Xt-5nKdri!L6)ET`4$o2Q)5OYnWw?EIb~LZN2IF23< zSag7>^uAjl?ANauLS~g0wW35ybOP)iDaeINlsYL|LQb1xfkjp!!Vh``>AF+MmA?#YGx-z6O(SWdQRO zDoP)$%(tu-g~jo31i8qnX1;fyX>!x*8{aru|9%cQ78~tx_ari=us*~L>suVN&}oC| z8wczYjOEPHoHBKXym)@wZL$8nJHa`osKK*X19;ghoRVFZdm1+8z-?u-?sn)#ixV!2 zYToCAx}zO4QAd2lJ~C&G4m;M9^TI1J(c4zF{KU}epAW`zzdS57Ta=-2IHo$R_1U^U zyxwO)2`de-dHn2g#X0sV^XTYRMJ)J_xZ-wOn#R+?)$FvWr%n^#v(mmlh4QTiDdIs$ z-?o~tYyRKh01l1r9HA*1vJahQRvzSN9abS7SDZt%r{yk}4KfgxojWHCJr^|2(F40M z^TU*kinq^u^+vCuHjh{L%+rWuL1d5K+J_#k4)*k0A)hhRR(X_c+%Kr}Ba z+@(c#$I#@{*vV@+J(SkVd}4X+Lxl9h$O=WN4*bnh%TIVb= z`xn6gXu_By8qRLyv+WUyNe}}sa*uwx`~{0c(Cuv+vK#d=yz!9VVNs-$)fGy+DDp0` zdY^P&ZhaS;C6^#7n>8FqFcuELGir7kIASfodV*?k+v|nyFKM;V5Q;Pj!00`u-IF<` z{LL&><0u;8j)%ej(Zzq{1>0Shhl!lPBisE9t;uyg+5}OfM{4Wa2>Y0-TJ(x)=SBZD z-rpwiVK>J_HJ7Q<7A5c)%85@R0Ed~mt(MVzXpvpWJHnqHuPXhI0Q#Qj`HS!}2+Gz> zBAnK)O4^32ulRQR6oN(9d6QQC2w=vXub>{-8tn?X&cHdMpWp8PKtaF2sR@y%5?H!Cl}7n^(=B+q%`Vu@;rc4HdA@WLb zd8}zTe<7Y;b`_2v+=naaPLXc2S&K6Vc4G6^U9hQ5qAWOg4%?M>6+20G`;VM~6IwCt z5`T6-GJTYOYXZr23r@r(i*-XXL4%O7No~XN{X4OB`z~D1@=$&)f(%jHMDjTSFDcB7 zOUJNf+b$$#OB9zJr{2VV?byF#E4J_4j~jNMAUkSagGTAPaBLrixfdx;o@!-3dFq)T zoDMywLu11UlHIl)dyzo#aNQ9Ko_(=jcBrDT$lcBz+i^X^O(Z2x*|R&ptR0Exv5n+$ z@Wgp|ss5zJAIFhP=`dKYuSvb0H7q(FzQe9f{?&zdUY~FMjUX2?k zcWlD`^#k&$u2(<&;dsgBo(91qR7ZVeP<<-G`8zfroQlGBd;xRPQO4ZBv1+Nu$E;vm)a9XJ=CDc-RF+0n8;tqZ3P?7^1Z^iCNf zK^^TJF$n)A9}e%{BHmjkb&!~B3;8Md&x7@h({4wjN5*5}D~}?SbWKdT2QavIGpty% zlU&Gk#Ype$x%Ho8%_%K9)+tSTgA@nh;>HhfIlMbwdb~NkClYG+7>1tJbogTR0UiPp zZrDF}%G4?swWX)wBjS>D_8`4uhoGUl%vpVeD{k0spnObu{M6?sY6LZy zym2zVJ^n31^dZ83mNN@2O18j)hZi6_JDZe^tVDTjfyr?K54P@(?(b~JQw^fX-UU;L z`6egwxnOmW(le{@<@BL=<;&eDoG%J-DQ?XBem6Si+llV|Ct&yClPF%MG78jajZf!{ zhu&i)rF-*>4UUgV&iT!sW9Z1~NV61zbo~TM4qA-wCN;$;uMEY^uTG#`$w-_zpN2ux z7GZp^5_o^yaLoJcSEveCMNDj2EcjwRBF_GZe#5508CDFsj0;ee?~2dgn~GxLTKxD@ zFN{y?f)nrbrC8ng`TcPiJ^Kd~sZb877mlHLo6&fC_9zrK5SgL(VDYq}nDEJVR4iKx zme^>RPVI&6(PdaXyc%p)8^6JU3_#*_Ooj~fYf=L-Ll(gG;~ZSHsc`DVWjr$JeawEU z4OF&kc>0;KX#7A;OnmkQ7@NL`11qLte7CAtpHKuP!t6Mc8iuzQe}#vt<->`!pJC>g zYfy}OA$u=e#kDiXP^kS2So`iMI9${)=kk<@ELxYAWVDJphZg zB%nZq8i}45e7a&4>gS{SY0v$Y1m{;vbN585>EheS(Z6bfPQf|7hy6PVsfp=$u*1d#Pe@LUmzBj zE?&WuZ}*_$k!g7Bm9LScDv0K_%cIj%Q}IZZ4D@OD2(E;dL73w@ZiLpxr(b@88e#kJ zVBLW@oRp2qbt<7`jox^DTqX1@Hx$nv+J!FB6d%2lOK11TXJ>0**}@l~PC9`xPY%QO z6fLwFml4zMIeatYDX82IrfNA5?=y9RG`3TCu2+AoyRN4?m5%g+4`KCJZy=v94ikqC z!8Zq~ttcLgxN{d!>#2G8{Q35 z?Sy8qyLs=otLX7SXLNt#YwRBP5UfMi;iEn!aB|^ec<}p@xU}+R_?#~2h(s@X_8}|{ z9gNkl_JY-F6>*3e1lJMtXf+Nsd)2{#wYzYH+K~sxy@#%auH*GjS0VlKX{bwe!dFY? zqBJqC_~YyG{4>wvlCcO<4sS;LIXf_KUf|T9ee02pTI(*%@ktt8m|PwXH~BxjRBBMJrL;HG zD@hKUHT-#mVVfKMflq^XQ))L_M=jYc#@>l^)E^JEBBBtIqAW1 zQF@?$S?SZAiNelqqjXdF+5Yqg;>tL=QmR&>wDjuFr-VD7El%3J@3JJ>Ql-s1_DGoy zk1)Tue7qD{y`z*ao*dGo2g^$X=bsQyZjV>GbYz#b?{vI)mNHIBgPYZt#xLC~9)FnJ zQ>r-pOL4#F!!c55Y$NG#20!_P*^s)?(!--a7WaD=4wFh&>m(hGw~6PZgTF}CBOvvi zcT_xc9&*Zo^Ftaz@+C<_+Lf0ov>7cOOQuW_t{(V8s$8_ZwD>SfCq)|BxsnuHs*A)a zbh+G;JuOMvvTeI?%UJhzcd2TRmndhFbYbhKQa&T389yBqcJ^~WNu~5L(xOvVdh$r` z_Nyk9@BgO6PmIIMCP@WDOG=;azAj1Gm!#IUi%RcoIxp<3iPxp;X=y_K0oe!SPbrr! z?_MTVh=w%itzU#3CCMo*9M(*#(&Y`|pYhGOrc#rEbH#nnx)IW2i;jtVM^=V(^^#l{ z#x#VKzxgof$WFSOzrNR-#q#sU`9PJmRZsqe)9NUB)`?NE8k_QdpV2r=v(VV-Wi8}ctt8wxURG#l^)WLNX?tJly=0s zrC;XslOig1l&)k@g4}Xjl_Nh6mnyG2?S#~>Xo&Ro5m^RqYm#&=K26+z|7v%s*kkj> zJ&QH@+F@zWUb##ppHq5oaCNEc%ge-L#@S6$m9nj*!*QGlf^~~jM^{=}o(EeCdGHxpbJ+a-96$h&o1>-RYBj z_Ty5g0&1zv^MU$!S}I69t8%ZGCDD{;o|SqxDlH9ue#F2Qk>;x8G3#{^%A38~Va{imh)>j~8DQSg_5M{soXS2D6B zoIW19)?nd*g-ExjBf=DcS6aM+M#UQmw~G%gM!F*%I$k76prVD3{>ns_5zo27qdL51 z!vl|ppVi<=kqbLE;^&n=;;peGFlO0FGPmQiwFl6kd0p&Tu^iuiyA33l>u*k_XO2k8;+5^2DS_{dQP1Pdig|pjS=|};ZDNL@gvcH zK!3dX?HOpbUT}ZH>vE!0)9&ckvIgao+?H;OM;f}Z^I#Sw`WQZ3aTaec8U?fDfZZvf zTAN4lKxs2<)Wd)|9JNZt;)^%uVZ+W7(C06J0-+Wm|J(JiC9fNr;*Bw?_d{Yj!<&8* z-~MtH4|gq(AD4ZLrOSVSHKryqk8i;>320coG7f+9CcfLS4^l`N3K!!XQHf|&=sj=< zsum7|gJe~>VJ|$

1h#UP0!m?fBJM7Yj!;rk#2NhEi z+<~E>8rSecY zu43iE>li*_G@|t$sL+av_H+~`C2k`cOHRjED0wGi@9WIhpv;JsOQ45!( zgD?IlR-c#9wpcd4TTb%-;b)kNRKSJLmxJE^z_Nb@|8a1g)aVT0^~0OLeg!?o{D8@e z7ov8og;a|RU%oU9TO%LAvMFuIwF(A$2aOhb=?GyJdt%yibug(2FJIyV41b?ypk%7M_*s8PK-GLjPL!ANaNMeP6fU98@? z3yF?slr0tx$Nw-2sSusN2)qfPmj0R)X(BfN##SZl2@3S-4)W7h#1id36%0A;tu2R#8;oh0k^`$(Qm->C}*B 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

)1sVOsP;nD$DbGA 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%0DdR9JI{0SP{9ZHgfw7VW**`+3}E^V9B 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

- -## Running Unit Tests for specific microservices - -In order to run the Unit Tests for any microservice, you just need to select the tests with [*Test Explorer* in Visual Studio](https://docs.microsoft.com/en-us/visualstudio/test/run-unit-tests-with-test-explorer) (or use your preferred tool) and run the tests. - -For instance, you can filter and see just the Unit Test projects by typing *"UnitTest"* in the filter edit box within **Test Explorer**: - -

- -

- -Then you can run all or selected tests, like in the following image: - -

- -

- -These Unit Tests have no any dependency with any external infrastructure or any other microservice and that's why you don't need to spin-up additional infrastructure (Database server or additional containers). - - -## Running Functional/Integration Tests for specific microservices - -In this case, the Functional Tests do have dependencies with additional infrastructure. For instance, they might have dependencies with the microservices's database in the SQL Server container, the messaging broker (RabbitMQ container), etc. - -Therefore, in order to run the Functional Tests you first need to have the needed infrastructure, in this case to spin-up the infrastructure containers. - -In order to facilitate how you can have the infrastructure containers up and running, you have certain docker-compose files you can use with `docker-compose up`. These files are available here: - -https://github.com/dotnet-architecture/eShopOnContainers/tree/feature/orgtestprojects/test - -If you edit the docker-compose-tests.yml you can see that it just have info about the infrastructure containers to spin up: - -``` -docker-compose-tests.yml - -version: '3' -services: - redis.data: - image: redis:alpine - rabbitmq: - image: rabbitmq:3-management-alpine - sql.data: - image: microsoft/mssql-server-linux:2017-latest - nosql.data: - image: mongo -``` - -Here is how you start the infrastructure containers with "docker-compose up" in PowerShell or any Command-Line window: - -> docker-compose -f .\docker-compose-tests.yml -f .\docker-compose-tests.override.yml up - -

- -

- -Each Functional Test project uses a [TestServer](https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.testhost.testserver?view=aspnetcore-2.1) configured with the required infrastructure which should be available thanks to the previous "docker-compose up", so the Functional Tests can be run. - -> For more info about **TestServer** and *Functional Tests* and *Integration Tests*, see the article [Integration tests in ASP.NET Core](https://docs.microsoft.com/aspnet/core/test/integration-tests?view=aspnetcore-2.1). - -In order to filter and see the Functional Tests to run, type *"Functional"* in **Test Explorer**. - -

- -

- -You can, for instance, run the Functional Tests for the Catalog Microservice, which, under the covers, are accessing to the SQL Server container that should be running in Docker: - -

- -

- - -# Running Services Integration Tests (Tests across the whole application) - -So far, we've been focusing on isolated Unit Tests or Functional Tests that were related to single/isolated microservices, although taking into account the infrastructure for the functional tests per microservice. - -However, in a microservice-based application you also need how the multiple microservices interact with the whole application. For instance, you might raise an event from one microservice by publishing it on the Event Bus (based on RabbitMQ) and test/validate that you received that same event into another microservice because it was subscribed to it. - -These global Functional/Integration tests for the services need to be placed in a common place instead within specific microservice's folders, as it needs to deal with multiple microservices. - -That common place is the **"test/ServiceTests/FunctionalTests"** folder and it has those multiple integration tests for the whole application. - -

- -

- -In order to run these application services tests, you can filter, like in the following image. - -

- -

- -Then, making sure that you have the infrastructure containers up and running (thanks to the previous `docker-compose up` command, already explained), select and run the desired global application functional tests, as in the following image: - -

- -

- - - - -## Load Testing - -Load Testing for eShopOnContainers is described in [this document](ServicesTests/LoadTest/readme.md) - - - From 643d09a65a859f0f28ca4201eb9a3673abaabac3 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Wed, 20 Nov 2019 19:21:03 +0000 Subject: [PATCH 139/149] Move more obsolete files --- KUBERNETES.md => obsolete/KUBERNETES.md | 0 Local.testsettings => obsolete/Local.testsettings | 0 .../docker-compose.override.yml | 0 docker-compose.yml => obsolete/docker-compose.yml | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename KUBERNETES.md => obsolete/KUBERNETES.md (100%) rename Local.testsettings => obsolete/Local.testsettings (100%) rename docker-compose.override.yml => obsolete/docker-compose.override.yml (100%) rename docker-compose.yml => obsolete/docker-compose.yml (100%) diff --git a/KUBERNETES.md b/obsolete/KUBERNETES.md similarity index 100% rename from KUBERNETES.md rename to obsolete/KUBERNETES.md diff --git a/Local.testsettings b/obsolete/Local.testsettings similarity index 100% rename from Local.testsettings rename to obsolete/Local.testsettings diff --git a/docker-compose.override.yml b/obsolete/docker-compose.override.yml similarity index 100% rename from docker-compose.override.yml rename to obsolete/docker-compose.override.yml diff --git a/docker-compose.yml b/obsolete/docker-compose.yml similarity index 100% rename from docker-compose.yml rename to obsolete/docker-compose.yml From 6af743c99cc2876f1411c864c62de3600ac8e3d6 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Wed, 20 Nov 2019 19:21:42 +0000 Subject: [PATCH 140/149] Move auxiliary solution files to "to-fix" folder --- .../eShopOnContainers-Android.sln | 0 .../eShopOnContainers-AzureFunctions.sln | 0 .../eShopOnContainers-MobileApps.sln | 0 eShopOnContainers-iOS.sln => to-fix/eShopOnContainers-iOS.sln | 0 eShopOnContainers.sln => to-fix/eShopOnContainers.sln | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename eShopOnContainers-Android.sln => to-fix/eShopOnContainers-Android.sln (100%) rename eShopOnContainers-AzureFunctions.sln => to-fix/eShopOnContainers-AzureFunctions.sln (100%) rename eShopOnContainers-MobileApps.sln => to-fix/eShopOnContainers-MobileApps.sln (100%) rename eShopOnContainers-iOS.sln => to-fix/eShopOnContainers-iOS.sln (100%) rename eShopOnContainers.sln => to-fix/eShopOnContainers.sln (100%) diff --git a/eShopOnContainers-Android.sln b/to-fix/eShopOnContainers-Android.sln similarity index 100% rename from eShopOnContainers-Android.sln rename to to-fix/eShopOnContainers-Android.sln diff --git a/eShopOnContainers-AzureFunctions.sln b/to-fix/eShopOnContainers-AzureFunctions.sln similarity index 100% rename from eShopOnContainers-AzureFunctions.sln rename to to-fix/eShopOnContainers-AzureFunctions.sln diff --git a/eShopOnContainers-MobileApps.sln b/to-fix/eShopOnContainers-MobileApps.sln similarity index 100% rename from eShopOnContainers-MobileApps.sln rename to to-fix/eShopOnContainers-MobileApps.sln diff --git a/eShopOnContainers-iOS.sln b/to-fix/eShopOnContainers-iOS.sln similarity index 100% rename from eShopOnContainers-iOS.sln rename to to-fix/eShopOnContainers-iOS.sln diff --git a/eShopOnContainers.sln b/to-fix/eShopOnContainers.sln similarity index 100% rename from eShopOnContainers.sln rename to to-fix/eShopOnContainers.sln From 38db586d5ac0912e6e15374a5b4b1601469f6de0 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Thu, 21 Nov 2019 10:45:28 +0000 Subject: [PATCH 141/149] Remove obsolete files/folders --- .../azurefunctions/azurefunctionsdeploy.json | 209 ---- .../azurefunctionsdeploy.parameters.json | 9 - deploy/azure/az/azurefunctions/readme.md | 39 - .../LinuxContainers/gen-keyvaultcert.ps1 | 53 - .../servicefabric/LinuxContainers/readme.md | 134 --- .../LinuxContainers/servicefabricdeploy.json | 751 -------------- .../servicefabricdeploy.parameters.json | 93 -- .../servicefabricdeploysecured.json | 821 ---------------- ...servicefabricdeploysecured.parameters.json | 102 -- .../WindowsContainers/gen-keyvaultcert.ps1 | 53 - .../servicefabric/WindowsContainers/readme.md | 138 --- .../servicefabricdeploy.json | 859 ---------------- .../servicefabricdeploy.parameters.json | 100 -- .../servicefabricdeploysecured.json | 924 ------------------ ...servicefabricdeploysecured.parameters.json | 106 -- deploy/azure/az/vms/docker-machine.md | 48 - deploy/azure/az/vms/linux-vm/linuxvm.json | 199 ---- .../az/vms/linux-vm/linuxvm.parameters.json | 7 - deploy/azure/az/vms/plain-vm.md | 77 -- deploy/azure/az/vms/readme.md | 10 - deploy/azure/az/vms/win-vm/windowsvm.json | 290 ------ .../az/vms/win-vm/windowsvm.parameters.json | 7 - deploy/k8s/README.CICD.k8s.md | 66 -- deploy/k8s/README.k8s.md | 98 -- deploy/k8s/build-push-images.ps1 | 72 -- deploy/k8s/conf-files.md | 17 - deploy/k8s/conf_cloud.yaml | 34 - deploy/k8s/conf_local.yaml | 27 - deploy/k8s/deploy-ingress-azure.ps1 | 1 - deploy/k8s/deploy-ingress-dockerlocal.ps1 | 2 - deploy/k8s/deploy-ingress.ps1 | 5 - deploy/k8s/deploy-nodeports.ps1 | 2 - deploy/k8s/deploy.ps1 | 212 ---- deploy/k8s/deploy.sh | 212 ---- deploy/k8s/img/blob_creation.png | Bin 26340 -> 0 bytes deploy/k8s/img/deploy_script_task.png | Bin 51001 -> 0 bytes deploy/k8s/img/get_kubectlbin_task.png | Bin 32167 -> 0 bytes deploy/k8s/img/get_kubectlconfig_task.png | Bin 31190 -> 0 bytes deploy/k8s/internalurls.yaml | 33 - deploy/k8s/nginx-ingress/mandatory-istio.yaml | 238 ----- deploy/k8s/nodeports/rabbitmq-admin.yaml | 12 - deploy/k8s/nodeports/sql-service.yaml | 12 - deploy/k8s/readme.md | 12 - obsolete/cli-linux/build-bits-linux.sh | 51 - .../cli-linux/docker-compose.local.build.yml | 10 - obsolete/cli-linux/prepare-spa-app.sh | 4 - obsolete/cli-linux/run.sh | 6 - obsolete/cli-mac/build-bits.sh | 47 - obsolete/cli-windows/build-bits-simple.ps1 | 17 - obsolete/cli-windows/build-bits.ps1 | 59 -- obsolete/cli-windows/build-images.ps1 | 11 - obsolete/cli-windows/delete-images.ps1 | 27 - .../delete-vs-and-eshop-images.ps1 | 46 - obsolete/cli-windows/start-external.ps1 | 11 - .../cli-windows/start-windows-containers.ps1 | 33 - .../vsts/build-bits-no-parallel.ps1 | 56 -- 56 files changed, 6462 deletions(-) delete mode 100644 deploy/azure/az/azurefunctions/azurefunctionsdeploy.json delete mode 100644 deploy/azure/az/azurefunctions/azurefunctionsdeploy.parameters.json delete mode 100644 deploy/azure/az/azurefunctions/readme.md delete mode 100644 deploy/azure/az/servicefabric/LinuxContainers/gen-keyvaultcert.ps1 delete mode 100644 deploy/azure/az/servicefabric/LinuxContainers/readme.md delete mode 100644 deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploy.json delete mode 100644 deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploy.parameters.json delete mode 100644 deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploysecured.json delete mode 100644 deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploysecured.parameters.json delete mode 100644 deploy/azure/az/servicefabric/WindowsContainers/gen-keyvaultcert.ps1 delete mode 100644 deploy/azure/az/servicefabric/WindowsContainers/readme.md delete mode 100644 deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploy.json delete mode 100644 deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploy.parameters.json delete mode 100644 deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploysecured.json delete mode 100644 deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploysecured.parameters.json delete mode 100644 deploy/azure/az/vms/docker-machine.md delete mode 100644 deploy/azure/az/vms/linux-vm/linuxvm.json delete mode 100644 deploy/azure/az/vms/linux-vm/linuxvm.parameters.json delete mode 100644 deploy/azure/az/vms/plain-vm.md delete mode 100644 deploy/azure/az/vms/readme.md delete mode 100644 deploy/azure/az/vms/win-vm/windowsvm.json delete mode 100644 deploy/azure/az/vms/win-vm/windowsvm.parameters.json delete mode 100644 deploy/k8s/README.CICD.k8s.md delete mode 100644 deploy/k8s/README.k8s.md delete mode 100644 deploy/k8s/build-push-images.ps1 delete mode 100644 deploy/k8s/conf-files.md delete mode 100644 deploy/k8s/conf_cloud.yaml delete mode 100644 deploy/k8s/conf_local.yaml delete mode 100644 deploy/k8s/deploy-ingress-azure.ps1 delete mode 100644 deploy/k8s/deploy-ingress-dockerlocal.ps1 delete mode 100644 deploy/k8s/deploy-ingress.ps1 delete mode 100644 deploy/k8s/deploy-nodeports.ps1 delete mode 100644 deploy/k8s/deploy.ps1 delete mode 100644 deploy/k8s/deploy.sh delete mode 100644 deploy/k8s/img/blob_creation.png delete mode 100644 deploy/k8s/img/deploy_script_task.png delete mode 100644 deploy/k8s/img/get_kubectlbin_task.png delete mode 100644 deploy/k8s/img/get_kubectlconfig_task.png delete mode 100644 deploy/k8s/internalurls.yaml delete mode 100644 deploy/k8s/nginx-ingress/mandatory-istio.yaml delete mode 100644 deploy/k8s/nodeports/rabbitmq-admin.yaml delete mode 100644 deploy/k8s/nodeports/sql-service.yaml delete mode 100644 deploy/k8s/readme.md delete mode 100644 obsolete/cli-linux/build-bits-linux.sh delete mode 100644 obsolete/cli-linux/docker-compose.local.build.yml delete mode 100644 obsolete/cli-linux/prepare-spa-app.sh delete mode 100644 obsolete/cli-linux/run.sh delete mode 100644 obsolete/cli-mac/build-bits.sh delete mode 100644 obsolete/cli-windows/build-bits-simple.ps1 delete mode 100644 obsolete/cli-windows/build-bits.ps1 delete mode 100644 obsolete/cli-windows/build-images.ps1 delete mode 100644 obsolete/cli-windows/delete-images.ps1 delete mode 100644 obsolete/cli-windows/delete-vs-and-eshop-images.ps1 delete mode 100644 obsolete/cli-windows/start-external.ps1 delete mode 100644 obsolete/cli-windows/start-windows-containers.ps1 delete mode 100644 obsolete/cli-windows/vsts/build-bits-no-parallel.ps1 diff --git a/deploy/azure/az/azurefunctions/azurefunctionsdeploy.json b/deploy/azure/az/azurefunctions/azurefunctionsdeploy.json deleted file mode 100644 index 29625302bd..0000000000 --- a/deploy/azure/az/azurefunctions/azurefunctionsdeploy.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "SitesEshopfunctionsName": { - "type": "string", - "metadata": { - "description": "Name of the Azure Functions namespace" - }, - "defaultValue": "mktfunctionsdemo" - } - }, - "variables": { - "SitesEshopfunctionsName": "[parameters('SitesEshopfunctionsName')]", - "WebConfigName": "[concat(variables('SitesEshopfunctionsName'), '/web')]", - "Location": "[resourceGroup().location]", - "ServerFarmPlan": "[concat(trim(variables('location')), 'Plan')]", - "StorageAccounts": "[concat(variables('SitesEshopfunctionsName'), 'st')]" - }, - "resources": [ - { - "type": "Microsoft.Storage/storageAccounts", - "sku": { - "name": "Standard_LRS", - "tier": "Standard" - }, - "kind": "Storage", - "name": "[variables('StorageAccounts')]", - "apiVersion": "2016-01-01", - "location": "[variables('Location')]", - "tags": {}, - "scale": null, - "properties": {}, - "dependsOn": [] - }, - { - "type": "Microsoft.Web/serverfarms", - "sku": { - "name": "Y1", - "tier": "Dynamic", - "size": "Y1", - "family": "Y", - "capacity": 0 - }, - "kind": "functionapp", - "name": "[variables('ServerFarmPlan')]", - "apiVersion": "2015-08-01", - "location": "[variables('Location')]", - "scale": null, - "properties": { - "name": "[variables('ServerFarmPlan')]", - "numberOfWorkers": 0 - }, - "dependsOn": [] - }, - { - "type": "Microsoft.Web/sites", - "kind": "functionapp", - "name": "[variables('SitesEshopfunctionsName')]", - "apiVersion": "2015-08-01", - "location": "[variables('Location')]", - "scale": null, - "properties": { - "name": "[variables('SitesEshopfunctionsName')]", - "hostNames": [ - "[concat(variables('SitesEshopfunctionsName'),'.azurewebsites.net')]" - ], - "enabledHostNames": [ - "[concat(variables('SitesEshopfunctionsName'),'.azurewebsites.net')]", - "[concat(variables('SitesEshopfunctionsName'),'.scm.azurewebsites.net')]" - ], - "hostNameSslStates": [ - { - "name": "[concat(variables('SitesEshopfunctionsName'),'.azurewebsites.net')]", - "sslState": 0, - "thumbprint": null, - "ipBasedSslState": 0 - }, - { - "name": "[concat(variables('SitesEshopfunctionsName'),'.scm.azurewebsites.net')]", - "sslState": 0, - "thumbprint": null, - "ipBasedSslState": 0 - } - ], - "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('ServerFarmPlan'))]" - }, - "dependsOn": [ - "[resourceId('Microsoft.Web/serverfarms', variables('ServerFarmPlan'))]" - ] - }, - { - "type": "Microsoft.Web/sites/config", - "name": "[variables('WebConfigName')]", - "apiVersion": "2015-08-01", - "location": "[variables('Location')]", - "scale": null, - "properties": { - "numberOfWorkers": 1, - "defaultDocuments": [ - "Default.htm", - "Default.html", - "Default.asp", - "index.htm", - "index.html", - "iisstart.htm", - "default.aspx", - "index.php", - "hostingstart.html" - ], - "netFrameworkVersion": "v4.0", - "phpVersion": "5.6", - "pythonVersion": "", - "nodeVersion": "", - "linuxFxVersion": "", - "requestTracingEnabled": false, - "remoteDebuggingEnabled": false, - "remoteDebuggingVersion": null, - "httpLoggingEnabled": false, - "logsDirectorySizeLimit": 35, - "detailedErrorLoggingEnabled": false, - "publishingUsername": "$eshopfunctions", - "publishingPassword": null, - "appSettings": null, - "metadata": null, - "connectionStrings": null, - "machineKey": null, - "handlerMappings": null, - "documentRoot": null, - "scmType": "None", - "use32BitWorkerProcess": true, - "webSocketsEnabled": false, - "alwaysOn": false, - "javaVersion": null, - "javaContainer": null, - "javaContainerVersion": null, - "appCommandLine": "", - "managedPipelineMode": 0, - "virtualApplications": [ - { - "virtualPath": "/", - "physicalPath": "site\\wwwroot", - "preloadEnabled": false, - "virtualDirectories": null - } - ], - "winAuthAdminState": 0, - "winAuthTenantState": 0, - "customAppPoolIdentityAdminState": false, - "customAppPoolIdentityTenantState": false, - "runtimeADUser": null, - "runtimeADUserPassword": null, - "loadBalancing": 1, - "routingRules": [], - "experiments": { - "rampUpRules": [] - }, - "limits": null, - "autoHealEnabled": false, - "autoHealRules": { - "triggers": null, - "actions": null - }, - "tracingOptions": null, - "vnetName": "", - "siteAuthEnabled": false, - "siteAuthSettings": { - "enabled": null, - "unauthenticatedClientAction": null, - "tokenStoreEnabled": null, - "allowedExternalRedirectUrls": null, - "defaultProvider": null, - "clientId": null, - "clientSecret": null, - "issuer": null, - "allowedAudiences": null, - "additionalLoginParams": null, - "isAadAutoProvisioned": false, - "googleClientId": null, - "googleClientSecret": null, - "googleOAuthScopes": null, - "facebookAppId": null, - "facebookAppSecret": null, - "facebookOAuthScopes": null, - "twitterConsumerKey": null, - "twitterConsumerSecret": null, - "microsoftAccountClientId": null, - "microsoftAccountClientSecret": null, - "microsoftAccountOAuthScopes": null - }, - "cors": { - "allowedOrigins": [ - "https://functions.azure.com", - "https://functions-staging.azure.com", - "https://functions-next.azure.com" - ] - }, - "push": null, - "apiDefinition": null, - "autoSwapSlotName": null, - "localMySqlEnabled": false, - "ipSecurityRestrictions": null - }, - "dependsOn": [ - "[resourceId('Microsoft.Web/sites', variables('SitesEshopfunctionsName'))]" - ] - } - ] -} \ No newline at end of file diff --git a/deploy/azure/az/azurefunctions/azurefunctionsdeploy.parameters.json b/deploy/azure/az/azurefunctions/azurefunctionsdeploy.parameters.json deleted file mode 100644 index 9ef07000d5..0000000000 --- a/deploy/azure/az/azurefunctions/azurefunctionsdeploy.parameters.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "SitesEshopfunctionsName": { - "value": "eshopfunctionsapp" - } - } -} \ No newline at end of file diff --git a/deploy/azure/az/azurefunctions/readme.md b/deploy/azure/az/azurefunctions/readme.md deleted file mode 100644 index 6ce3630b2a..0000000000 --- a/deploy/azure/az/azurefunctions/readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# Deploying Azure Functions - -The ARM template `azurefunctionsdeploy.json` and its parameter file (`azurefunctionsdeploy.parameters.json`) are used to deploy Marketing azure functions. - -## Editing azurefunctionsdeploy.parameters.json file - -You can edit the `azurefunctionsdeploy.parameters.parameters.json` file to set your values, but is not needed. The only parameter that can be set is: - -1. `SitesEshopfunctionsName` is a string that is used to create the Azure function app name. - -## Deploy the template - -Once parameter file is edited you can deploy it using [create-resources script](../readme.md). - -i. e. if you are in Windows, to deploy the Azure Functions environment in a new resourcegroup located in westus, go to `deploy\az` folder and type: - -``` -create-resources.cmd azurefunctions\azurefunctionsdeploy newResourceGroup -c westus -``` -## Deploy Marketing azure function with Visual Studio. - -You need to deploy the Marketing azure function from Visual Studio 2017 15.3 from the the Marketing-functions project in the solution eShopOnContainers-AzureFunctions.sln (Visual Studio publish tool). - -## Setting Azure function configurations - -Once deployed, go to azure portal and set the connection string for the azure function under the name "SqlConnection". The value must be the connection string which points to MarketingDB. - -Example: - -"SqlConnection": "Server=tcp:eshopsql.database.windows.net,1433;Initial Catalog=marketingdb;" - -In appsettings section, add a new entry named "MarketingStorageUri". The value must be the uri of the blob storage where the campaign images are stored. - -Example: - -"MarketingStorageUri": "https://marketingcampaign.blob.core.windows.net/pics/" - - - diff --git a/deploy/azure/az/servicefabric/LinuxContainers/gen-keyvaultcert.ps1 b/deploy/azure/az/servicefabric/LinuxContainers/gen-keyvaultcert.ps1 deleted file mode 100644 index c6fc34013e..0000000000 --- a/deploy/azure/az/servicefabric/LinuxContainers/gen-keyvaultcert.ps1 +++ /dev/null @@ -1,53 +0,0 @@ -Param( - [parameter(Mandatory=$true)][string]$vaultName, - [parameter(Mandatory=$true)][string]$certName, - [parameter(Mandatory=$true)][string]$certPwd, - [parameter(Mandatory=$true)][string]$subjectName, - [parameter(Mandatory=$false)][string]$ValidityInMonths=12, - [parameter(Mandatory=$true)][string]$saveDir -) - - -#Log in Azure Account -Login-AzureRmAccount - - -# Create Cert in KeyVault -Write-Host "Creating certificate in Azure KeyVault..." -ForegroundColor Yellow -$policy = New-AzureKeyVaultCertificatePolicy -SubjectName $subjectName -IssuerName Self -ValidityInMonths $ValidityInMonths -Add-AzureKeyVaultCertificate -VaultName $vaultName -Name $certName -CertificatePolicy $policy - -# Downloading Certificate -Write-Host "Downloading Certificate from KeyVault..." -ForegroundColor Yellow - -$Stoploop = $false -$Retrycount = 0 - -do { - try { - - $kvSecret = Get-AzureKeyVaultSecret -VaultName $vaultName -Name $certName -ErrorAction SilentlyContinue - $kvSecretBytes = [System.Convert]::FromBase64String($kvSecret.SecretValueText) - $certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection - $certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable) - $protectedCertificateBytes = $certCollection.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, $certPwd) - [System.IO.File]::WriteAllBytes($saveDir + "\" + $certName + ".pfx", $protectedCertificateBytes) - - $Stoploop = $true - Write-Host "Finished!" -ForegroundColor Yellow - } - catch { - if ($Retrycount -gt 5){ - $Stoploop = $true - Write-Host "Not possible to retrieve the certificate!" -ForegroundColor Yellow - } - else { - Start-Sleep -Seconds 20 - $Retrycount = $Retrycount + 1 - } - } -} -While ($Stoploop -eq $false) - -# Show Certificate Values -Get-AzureKeyVaultCertificate -VaultName $vaultName -Name $certName \ No newline at end of file diff --git a/deploy/azure/az/servicefabric/LinuxContainers/readme.md b/deploy/azure/az/servicefabric/LinuxContainers/readme.md deleted file mode 100644 index 98d097b105..0000000000 --- a/deploy/azure/az/servicefabric/LinuxContainers/readme.md +++ /dev/null @@ -1,134 +0,0 @@ -# Deploying a Service Fabric cluster based on Linux nodes - -## A. Unsecured cluster (SF Linux cluster) -For a secured cluster, see option B. below. - -You can always deploy a SF cluster through the Azure portal, as explained in this article: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-get-started-azure-cluster - -However, when creating a cluster, there are quite a few configurations to take into account, like enabling the internal DNS service or Reverse Proxy service, choosing between Linux/Windows, open/publish your application ports in the load-balancer and most of all (the most complex setup) how to create a secure cluster. - -Because of those reasons, we have created a set of ARM templates and scripts so you can create, re-create and configure the SF clusters much faster, as explained below: - -Within eShopOnContainers root folder, at the folder [..\deploy\az\servicefabric\LinuxContainers](https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/deploy/az/servicefabric/LinuxContainers), you can find the ARM template `servicefabricdeploy.json` and its parameters file (`servicefabricdeploy.parameters.json`) to create a Service Fabric cluster environment for Linux Containers. - -## Edit the servicefabricdeploy.parameters.json file - -Edit the following params in `servicefabricdeploy.parameters.json` file to set your values: - -- clusterName: Name of your SF cluster -- clusterLocation: Datacenter location, like westus or westeurope -- computeLocation: Datacenter location, like westus or westeurope -- adminUserName: user-name for VMs administration -- adminPassword: user-password for VMs administration -- dnsName: Name assigned to your SF dns - -Optionally, you could modify which ports are opened in the LoadBalancer for the multiple eShopOnContainer apps and API services. -By default, they are setup as: -- webMvcHttpPort: 5100 -- webSpaHttpPort: 5104 -- webStatusHttpPort: 5107 -- IdSrvHttpRule: 5105 -- BasketApiHttpRule: 5103 -- CatalogApiHttpRule: 5101 -- OrderingApiHttpRule: 5102 -- MarketingApiHttpRule: 5110 -- LocationsApiHttpRule: 5109 - -## Deploy the Service Fabric cluster using the script and ARM templates - -Once parameter file is edited you can deploy it using [create-resources script](../readme.md). - -For example, to deploy the cluster to a new resourcegroup located in westus, go to `deploy\az` folder and type: - -``` -create-resources.cmd servicefabric\LinuxContainers\servicefabricdeploy qa-eshop-sflinux-resgrp -c westus -``` - -You should see a similar execution to the following: -![image](https://user-images.githubusercontent.com/1712635/31638180-15da9f84-b287-11e7-9d4e-604f33690198.png) - -Now, if you go to your subscription in Azure, you should be able to see the SF cluster already created and available, like in the following image: - -![image](https://user-images.githubusercontent.com/1712635/31638398-3fc08ad8-b288-11e7-879b-fc4df0daad2b.png) - -In this case, this is an unsecured SF cluster with a single Linux node, good for initial tests and getting started with SF. - -## B. Secured cluster (SF Linux cluster) - -Within eShopOnContainers root folder, at the folder [..\deploy\az\servicefabric\LinuxContainers](https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/deploy/az/servicefabric/LinuxContainers), you can find the ARM template `servicefabricdeploysecured.json` and its parameter file (`servicefabricdeploysecured.parameters.json`) to create a secured Service Fabric cluster environment for Linux Containers (IN THIS CASE, IT IS A SECURED CLUSTER USING A CERTIFICATE). - -The ARM template `servicefabricdeploysecured.json` and its parameter file (`servicefabricdeploysecured.parameters.json`) are used to create a service fabric cluster environment for linux containers secured with a certificate. - -## Create Azure Keyvault service -Go to PortalAzure and create a Keyvault service. Make sure Enable access for deployment checkboxes are selected. - -![image](https://user-images.githubusercontent.com/1712635/31638848-9b266530-b28a-11e7-953b-1e3ec1a54f77.png) - -## Generate a certificate in Azure Keyvault -In a POWER-SHELL window, move to the folder [..\deploy\az\servicefabric\LinuxContainers](https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/deploy/az/servicefabric/LinuxContainers). - -**Select your Azure subscription** You might have [several Azure subscriptions](https://docs.microsoft.com/en-us/cli/azure/account#set) as shown if you type the following. - - >``` - >az account list - >``` - If you have multiple subscription accounts, you first need to select the Azure subscription account you want to target. Type the following: - >``` - >az account set --subscription "Your Azure Subscription Name or ID" - >``` - -Execute the gen-keyvaultcert.ps1 script to generate and download a certificate from Keyvault. - -``` -.\gen-keyvaultcert.ps1 -vaultName -certName -certPwd -subjectName CN=.westeurope.cloudapp.azure.com -saveDir C:\Users\\Downloads - -``` - -You should see a similar execution to the following: -![image](https://user-images.githubusercontent.com/1712635/31640172-93efcca0-b291-11e7-970e-5b5e6bf07042.png) - -IMPORTANT: At this point, copy/cut the .PFX certificate file saved in the downloads forlder and save it in a secure place. - -## Install the certificate -Install the certificate (by double-clicking on the .PFX file) under 'Current User' store location (by default location) and check it as exportable. - - - -Also, install the same certificate as CA (Certificate Authority) under Current User, too. - -![image](https://user-images.githubusercontent.com/1712635/31642795-c6ffa434-b2a1-11e7-8ff8-2a63549a780e.png) - -## Editing servicefabricdeploysecured.parameters.json file - -Edit the parameters in `servicefabricdeploysecured.parameters.json` in a similar way you can do with the unsecured .json file shown above (clusterName, dnsName, etc.), plus edit the following values: - -- sourceVaultValue: Your Azure Keyvault's RESOURCE ID (check Azure keyvault properties, similar to: /subscriptions/e1234ac1-c09c-3jaf-6767-98b3c5f1f246/resourceGroups/eshop-global-resgrp/providers/Microsoft.KeyVault/vaults/eshopkeyvault") - -- certificateUrlValue: Your certificate Secret Identifier (check Azure Keyvault secret certificate properties, should be in the format of https://.vault.azure.net:443/secrets/, similar to: -https://eshopkeyvault.vault.azure.net/secrets/pro-eshop-sflinux-cluster-cert/fd47684442c04cdj83b3hfe4h8e08123) - -- certificateThumbprint: certificate thumbprint (check azure Keyvault certificate thumbprint, something like 69JK453486D55A6818577Z0699100365HDK70FCE) - -## Deploy the secured SF Linux cluster - -Once parameters file is edited you can deploy it using [create-resources script](../readme.md). -Use a command prompt window positioned into the deploy\az folder. - -``` -create-resources.cmd servicefabric\LinuxContainers\servicefabricdeploysecured pro-eshop-sflinux-resgrp -c westus -``` -The execution should be something like the following: -![image](https://user-images.githubusercontent.com/1712635/31642529-54479704-b2a0-11e7-90ee-2abf32c92205.png) - -Once the cluster is created you can explore it with Azure's portal, like in the following image: - -![image](https://user-images.githubusercontent.com/1712635/31642956-b7cfc8d0-b2a2-11e7-8ede-a141ec190eb4.png) - -## Deploy eShopOnServiceFabric with Visual Studio. - -Modify the cloud.xml file of each Service Fabric application in PublishProfile directory and set your certificate settings to be able to deploy eshopOnContainers in the secured cluster: - - - - - diff --git a/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploy.json b/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploy.json deleted file mode 100644 index fb28174db2..0000000000 --- a/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploy.json +++ /dev/null @@ -1,751 +0,0 @@ -{ - "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", - "contentVersion": "1.0.0.0", - "parameters": { - "clusterLocation": { - "type": "string", - "metadata": { - "description": "Location of the Cluster" - } - }, - "clusterName": { - "type": "string", - "defaultValue": "Cluster", - "metadata": { - "description": "Name of your cluster - Between 3 and 23 characters. Letters and numbers only" - } - }, - "nt0applicationStartPort": { - "type": "int", - "defaultValue": 20000 - }, - "nt0applicationEndPort": { - "type": "int", - "defaultValue": 30000 - }, - "nt0ephemeralStartPort": { - "type": "int", - "defaultValue": 49152 - }, - "nt0ephemeralEndPort": { - "type": "int", - "defaultValue": 65534 - }, - "nt0fabricTcpGatewayPort": { - "type": "int", - "defaultValue": 19000 - }, - "nt0fabricHttpGatewayPort": { - "type": "int", - "defaultValue": 19080 - }, - "webMvcHttpPort": { - "type": "int", - "defaultValue": 5100 - }, - "webSpaHttpPort": { - "type": "int", - "defaultValue": 5104 - }, - "webStatusHttpPort": { - "type": "int", - "defaultValue": 5107 - }, - "IdSrvHttpRule": { - "type": "int", - "defaultValue": 5105 - }, - "BasketApiHttpRule": { - "type": "int", - "defaultValue": 5103 - }, - "CatalogApiHttpRule": { - "type": "int", - "defaultValue": 5101 - }, - "OrderingApiHttpRule": { - "type": "int", - "defaultValue": 5102 - }, - "MarketingApiHttpRule": { - "type": "int", - "defaultValue": 5110 - }, - "LocationsApiHttpRule": { - "type": "int", - "defaultValue": 5109 - }, - "subnet0Name": { - "type": "string", - "defaultValue": "Subnet-0" - }, - "subnet0Prefix": { - "type": "string", - "defaultValue": "10.0.0.0/24" - }, - "computeLocation": { - "type": "string" - }, - "publicIPAddressName": { - "type": "string", - "defaultValue": "PublicIP-VM" - }, - "publicIPAddressType": { - "type": "string", - "allowedValues": [ - "Dynamic" - ], - "defaultValue": "Dynamic" - }, - "vmStorageAccountContainerName": { - "type": "string", - "defaultValue": "vhds" - }, - "adminUserName": { - "type": "string", - "defaultValue": "testadm", - "metadata": { - "description": "Remote desktop user Id" - } - }, - "adminPassword": { - "type": "securestring", - "metadata": { - "description": "Remote desktop user password. Must be a strong password" - } - }, - "virtualNetworkName": { - "type": "string", - "defaultValue": "VNet" - }, - "addressPrefix": { - "type": "string", - "defaultValue": "10.0.0.0/16" - }, - "dnsName": { - "type": "string" - }, - "nicName": { - "type": "string", - "defaultValue": "NIC" - }, - "lbName": { - "type": "string", - "defaultValue": "LoadBalancer" - }, - "lbIPName": { - "type": "string", - "defaultValue": "PublicIP-LB-FE" - }, - "overProvision": { - "type": "string", - "defaultValue": "false" - }, - "vmImagePublisher": { - "type": "string", - "defaultValue": "Microsoft.Azure.ServiceFabric" - }, - "vmImageOffer": { - "type": "string", - "defaultValue": "UbuntuServer" - }, - "vmImageSku": { - "type": "string", - "defaultValue": "16.04" - }, - "vmImageVersion": { - "type": "string", - "defaultValue": "6.0.12" - }, - "storageAccountType": { - "type": "string", - "allowedValues": [ - "Standard_LRS", - "Standard_GRS" - ], - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Replication option for the VM image storage account" - } - }, - "supportLogStorageAccountType": { - "type": "string", - "allowedValues": [ - "Standard_LRS", - "Standard_GRS" - ], - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Replication option for the support log storage account" - } - }, - "supportLogStorageAccountName": { - "type": "string", - "defaultValue": "[toLower( concat('sflogs', uniqueString(resourceGroup().id),'2'))]", - "metadata": { - "description": "Name for the storage account that contains support logs from the cluster" - } - }, - "applicationDiagnosticsStorageAccountType": { - "type": "string", - "allowedValues": [ - "Standard_LRS", - "Standard_GRS" - ], - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Replication option for the application diagnostics storage account" - } - }, - "applicationDiagnosticsStorageAccountName": { - "type": "string", - "defaultValue": "[toLower(concat(uniqueString(resourceGroup().id), '3' ))]", - "metadata": { - "description": "Name for the storage account that contains application diagnostics data from the cluster" - } - }, - "nt0InstanceCount": { - "type": "int", - "defaultValue": 1, - "metadata": { - "description": "Instance count for node type" - } - }, - "vmNodeType0Name": { - "type": "string", - "defaultValue": "primary", - "maxLength": 9 - }, - "vmNodeType0Size": { - "type": "string", - "defaultValue": "Standard_D1_v2" - } - }, - "variables": { - "vmssApiVersion": "2017-03-30", - "lbApiVersion": "2015-06-15", - "vNetApiVersion": "2015-06-15", - "storageApiVersion": "2016-01-01", - "publicIPApiVersion": "2015-06-15", - "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',parameters('virtualNetworkName'))]", - "subnet0Ref": "[concat(variables('vnetID'),'/subnets/',parameters('subnet0Name'))]", - "wadlogs": "", - "wadperfcounters1": "", - "wadperfcounters2": "", - "wadcfgxstart": "[concat(variables('wadlogs'),variables('wadperfcounters1'),variables('wadperfcounters2'),'')]", - "lbID0": "[resourceId('Microsoft.Network/loadBalancers', concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name')))]", - "lbIPConfig0": "[concat(variables('lbID0'),'/frontendIPConfigurations/LoadBalancerIPConfig')]", - "lbPoolID0": "[concat(variables('lbID0'),'/backendAddressPools/LoadBalancerBEAddressPool')]", - "lbProbeID0": "[concat(variables('lbID0'),'/probes/FabricGatewayProbe')]", - "lbHttpProbeID0": "[concat(variables('lbID0'),'/probes/FabricHttpGatewayProbe')]", - "lbNatPoolID0": "[concat(variables('lbID0'),'/inboundNatPools/LoadBalancerBEAddressNatPool')]", - "vmStorageAccountName0": "[toLower(concat(uniqueString(resourceGroup().id), '1', '0' ))]", - "wadmetricsresourceid0": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',resourceGroup().name ,'/providers/','Microsoft.Compute/virtualMachineScaleSets/', parameters('vmNodeType0Name'))]" - }, - "resources": [ - { - "apiVersion": "[variables('storageApiVersion')]", - "type": "Microsoft.Storage/storageAccounts", - "name": "[parameters('supportLogStorageAccountName')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": {}, - "kind": "Storage", - "sku": { - "name": "[parameters('supportLogStorageAccountType')]" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('storageApiVersion')]", - "type": "Microsoft.Storage/storageAccounts", - "name": "[parameters('applicationDiagnosticsStorageAccountName')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": {}, - "kind": "Storage", - "sku": { - "name": "[parameters('applicationDiagnosticsStorageAccountType')]" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('vNetApiVersion')]", - "type": "Microsoft.Network/virtualNetworks", - "name": "[parameters('virtualNetworkName')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": { - "addressSpace": { - "addressPrefixes": [ - "[parameters('addressPrefix')]" - ] - }, - "subnets": [ - { - "name": "[parameters('subnet0Name')]", - "properties": { - "addressPrefix": "[parameters('subnet0Prefix')]" - } - } - ] - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('publicIPApiVersion')]", - "type": "Microsoft.Network/publicIPAddresses", - "name": "[concat(parameters('lbIPName'),'-','0')]", - "location": "[parameters('computeLocation')]", - "properties": { - "dnsSettings": { - "domainNameLabel": "[parameters('dnsName')]" - }, - "publicIPAllocationMethod": "Dynamic" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('lbApiVersion')]", - "type": "Microsoft.Network/loadBalancers", - "name": "[concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name'))]", - "location": "[parameters('computeLocation')]", - "dependsOn": [ - "[concat('Microsoft.Network/publicIPAddresses/',concat(parameters('lbIPName'),'-','0'))]" - ], - "properties": { - "frontendIPConfigurations": [ - { - "name": "LoadBalancerIPConfig", - "properties": { - "publicIPAddress": { - "id": "[resourceId('Microsoft.Network/publicIPAddresses',concat(parameters('lbIPName'),'-','0'))]" - } - } - } - ], - "backendAddressPools": [ - { - "name": "LoadBalancerBEAddressPool", - "properties": {} - } - ], - "loadBalancingRules": [ - { - "name": "LBRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('nt0fabricTcpGatewayPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('nt0fabricTcpGatewayPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "LBHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('nt0fabricHttpGatewayPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('nt0fabricHttpGatewayPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "WebMVCHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('webMvcHttpPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('webMvcHttpPort')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "WebSPAHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('webSpaHttpPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('webSpaHttpPort')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "WebStatusHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('webStatusHttpPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('webStatusHttpPort')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "IdSrvHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('IdSrvHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('IdSrvHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "BasketApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('BasketApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('BasketApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "CatalogApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('CatalogApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('CatalogApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "OrderingApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('OrderingApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('OrderingApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "MarketingApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('MarketingApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('MarketingApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "LocationsApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('LocationsApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('LocationsApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - } - ], - "probes": [ - { - "name": "FabricGatewayProbe", - "properties": { - "intervalInSeconds": 5, - "numberOfProbes": 2, - "port": "[parameters('nt0fabricTcpGatewayPort')]", - "protocol": "tcp" - } - }, - { - "name": "FabricHttpGatewayProbe", - "properties": { - "intervalInSeconds": 5, - "numberOfProbes": 2, - "port": "[parameters('nt0fabricHttpGatewayPort')]", - "protocol": "tcp" - } - } - ], - "inboundNatPools": [ - { - "name": "LoadBalancerBEAddressNatPool", - "properties": { - "backendPort": "22", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPortRangeEnd": "4500", - "frontendPortRangeStart": "3389", - "protocol": "tcp" - } - } - ] - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('vmssApiVersion')]", - "type": "Microsoft.Compute/virtualMachineScaleSets", - "name": "[parameters('vmNodeType0Name')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [ - "[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]", - "[concat('Microsoft.Network/loadBalancers/', concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name')))]", - "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]", - "[concat('Microsoft.Storage/storageAccounts/', parameters('applicationDiagnosticsStorageAccountName'))]" - ], - "properties": { - "overprovision": "[parameters('overProvision')]", - "upgradePolicy": { - "mode": "Automatic" - }, - "virtualMachineProfile": { - "extensionProfile": { - "extensions": [ - { - "name": "[concat(parameters('vmNodeType0Name'),'_ServiceFabricLinuxNode')]", - "properties": { - "type": "ServiceFabricLinuxNode", - "autoUpgradeMinorVersion": true, - "protectedSettings": { - "StorageAccountKey1": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('supportLogStorageAccountName')),'2015-05-01-preview').key1]", - "StorageAccountKey2": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('supportLogStorageAccountName')),'2015-05-01-preview').key2]" - }, - "publisher": "Microsoft.Azure.ServiceFabric", - "settings": { - "clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]", - "nodeTypeRef": "[parameters('vmNodeType0Name')]", - "durabilityLevel": "Bronze", - "enableParallelJobs": true, - "nicPrefixOverride": "[parameters('subnet0Prefix')]" - }, - "typeHandlerVersion": "1.0" - } - }, - { - "name": "[concat('VMDiagnosticsVmExt','_vmNodeType0Name')]", - "properties": { - "type": "LinuxDiagnostic", - "autoUpgradeMinorVersion": true, - "protectedSettings": { - "storageAccountName": "[parameters('applicationDiagnosticsStorageAccountName')]", - "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]", - "storageAccountEndPoint": "https://core.windows.net/" - }, - "publisher": "Microsoft.OSTCExtensions", - "settings": { - "xmlCfg": "[base64(concat(variables('wadcfgxstart'),variables('wadmetricsresourceid0'),variables('wadcfgxend')))]", - "StorageAccount": "[parameters('applicationDiagnosticsStorageAccountName')]" - }, - "typeHandlerVersion": "2.3" - } - } - ] - }, - "networkProfile": { - "networkInterfaceConfigurations": [ - { - "name": "[concat(parameters('nicName'), '-0')]", - "properties": { - "ipConfigurations": [ - { - "name": "[concat(parameters('nicName'),'-',0)]", - "properties": { - "loadBalancerBackendAddressPools": [ - { - "id": "[variables('lbPoolID0')]" - } - ], - "loadBalancerInboundNatPools": [ - { - "id": "[variables('lbNatPoolID0')]" - } - ], - "subnet": { - "id": "[variables('subnet0Ref')]" - } - } - } - ], - "primary": true - } - } - ] - }, - "osProfile": { - "adminPassword": "[parameters('adminPassword')]", - "adminUsername": "[parameters('adminUsername')]", - "computernamePrefix": "[parameters('vmNodeType0Name')]" - }, - "storageProfile": { - "imageReference": { - "publisher": "[parameters('vmImagePublisher')]", - "offer": "[parameters('vmImageOffer')]", - "sku": "[parameters('vmImageSku')]", - "version": "[parameters('vmImageVersion')]" - }, - "osDisk": { - "caching": "ReadOnly", - "createOption": "FromImage", - "managedDisk": { - "storageAccountType": "[parameters('storageAccountType')]" - } - } - } - } - }, - "sku": { - "name": "[parameters('vmNodeType0Size')]", - "capacity": "[parameters('nt0InstanceCount')]", - "tier": "Standard" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "2017-07-01-preview", - "type": "Microsoft.ServiceFabric/clusters", - "name": "[parameters('clusterName')]", - "location": "[parameters('clusterLocation')]", - "dependsOn": [ - "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]" - ], - "properties": { - "addonFeatures": [ - "DnsService" - ], - "clientCertificateCommonNames": [], - "clientCertificateThumbprints": [], - "clusterCodeVersion": "6.0.120.1", - "clusterState": "Default", - "diagnosticsStorageAccountConfig": { - "blobEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.blob]", - "protectedAccountKeyName": "StorageAccountKey1", - "queueEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.queue]", - "storageAccountName": "[parameters('supportLogStorageAccountName')]", - "tableEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.table]" - }, - "fabricSettings": [], - "managementEndpoint": "[concat('http://',reference(concat(parameters('lbIPName'),'-','0')).dnsSettings.fqdn,':',parameters('nt0fabricHttpGatewayPort'))]", - "nodeTypes": [ - { - "name": "[parameters('vmNodeType0Name')]", - "applicationPorts": { - "endPort": "[parameters('nt0applicationEndPort')]", - "startPort": "[parameters('nt0applicationStartPort')]" - }, - "clientConnectionEndpointPort": "[parameters('nt0fabricTcpGatewayPort')]", - "durabilityLevel": "Bronze", - "ephemeralPorts": { - "endPort": "[parameters('nt0ephemeralEndPort')]", - "startPort": "[parameters('nt0ephemeralStartPort')]" - }, - "httpGatewayEndpointPort": "[parameters('nt0fabricHttpGatewayPort')]", - "isPrimary": true, - "vmInstanceCount": "[parameters('nt0InstanceCount')]" - } - ], - "provisioningState": "Default", - "reliabilityLevel": "None", - "upgradeMode": "Manual", - "vmImage": "Linux" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - } - ], - "outputs": { - "clusterProperties": { - "value": "[reference(parameters('clusterName'))]", - "type": "object" - } - } -} \ No newline at end of file diff --git a/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploy.parameters.json b/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploy.parameters.json deleted file mode 100644 index 0e37d24ec0..0000000000 --- a/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploy.parameters.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "clusterName": { - "value": "qa-eshop-sflinux-cluster" - }, - "clusterLocation": { - "value": "westus" - }, - "computeLocation": { - "value": "westus" - }, - "adminUserName": { - "value": "eshop" - }, - "adminPassword": { - "value": "Your_complex_Pass@word1" - }, - "nicName": { - "value": "NIC-eshoponsflin" - }, - "publicIPAddressName": { - "value": "eshoponsflin-PubIP" - }, - "dnsName": { - "value": "qa-eshop-sflinux-cluster" - }, - "virtualNetworkName": { - "value": "VNet-eshoponsflin" - }, - "lbName": { - "value": "LB-eshoponsflin" - }, - "lbIPName": { - "value": "LBIP-eshoponsflin" - }, - "vmImageSku": { - "value": "16.04-LTS" - }, - "vmImageVersion": { - "value": "latest" - }, - "vmImagePublisher": { - "value": "Canonical" - }, - "nt0ephemeralStartPort": { - "value": 49152 - }, - "nt0ephemeralEndPort": { - "value": 65534 - }, - "nt0applicationStartPort": { - "value": 20000 - }, - "nt0applicationEndPort": { - "value": 30000 - }, - "nt0fabricTcpGatewayPort": { - "value": 19000 - }, - "nt0fabricHttpGatewayPort": { - "value": 19080 - }, - "webMvcHttpPort": { - "value": 5100 - }, - "webSpaHttpPort": { - "value": 5104 - }, - "webStatusHttpPort": { - "value": 5107 - }, - "IdSrvHttpRule": { - "value": 5105 - }, - "BasketApiHttpRule": { - "value": 5103 - }, - "CatalogApiHttpRule": { - "value": 5101 - }, - "OrderingApiHttpRule": { - "value": 5102 - }, - "MarketingApiHttpRule": { - "value": 5110 - }, - "LocationsApiHttpRule": { - "value": 5109 - } - } -} \ No newline at end of file diff --git a/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploysecured.json b/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploysecured.json deleted file mode 100644 index 0d6620f32e..0000000000 --- a/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploysecured.json +++ /dev/null @@ -1,821 +0,0 @@ -{ - "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", - "contentVersion": "1.0.0.0", - "parameters": { - "clusterLocation": { - "type": "string", - "metadata": { - "description": "Location of the Cluster" - } - }, - "clusterName": { - "type": "string", - "defaultValue": "Cluster", - "metadata": { - "description": "Name of your cluster - Between 3 and 23 characters. Letters and numbers only" - } - }, - "nt0applicationStartPort": { - "type": "int", - "defaultValue": 20000 - }, - "nt0applicationEndPort": { - "type": "int", - "defaultValue": 30000 - }, - "nt0ephemeralStartPort": { - "type": "int", - "defaultValue": 49152 - }, - "nt0ephemeralEndPort": { - "type": "int", - "defaultValue": 65534 - }, - "nt0fabricTcpGatewayPort": { - "type": "int", - "defaultValue": 19000 - }, - "nt0fabricHttpGatewayPort": { - "type": "int", - "defaultValue": 19080 - }, - "webMvcHttpPort": { - "type": "int", - "defaultValue": 5100 - }, - "webSpaHttpPort": { - "type": "int", - "defaultValue": 5104 - }, - "webStatusHttpPort": { - "type": "int", - "defaultValue": 5107 - }, - "IdSrvHttpRule": { - "type": "int", - "defaultValue": 5105 - }, - "BasketApiHttpRule": { - "type": "int", - "defaultValue": 5103 - }, - "CatalogApiHttpRule": { - "type": "int", - "defaultValue": 5101 - }, - "OrderingApiHttpRule": { - "type": "int", - "defaultValue": 5102 - }, - "MarketingApiHttpRule": { - "type": "int", - "defaultValue": 5110 - }, - "LocationsApiHttpRule": { - "type": "int", - "defaultValue": 5109 - }, - "subnet0Name": { - "type": "string", - "defaultValue": "Subnet-0" - }, - "subnet0Prefix": { - "type": "string", - "defaultValue": "10.0.0.0/24" - }, - "computeLocation": { - "type": "string" - }, - "publicIPAddressName": { - "type": "string", - "defaultValue": "PublicIP-VM" - }, - "publicIPAddressType": { - "type": "string", - "allowedValues": [ - "Dynamic" - ], - "defaultValue": "Dynamic" - }, - "vmStorageAccountContainerName": { - "type": "string", - "defaultValue": "vhds" - }, - "adminUserName": { - "type": "string", - "defaultValue": "testadm", - "metadata": { - "description": "Remote desktop user Id" - } - }, - "adminPassword": { - "type": "securestring", - "metadata": { - "description": "Remote desktop user password. Must be a strong password" - } - }, - "virtualNetworkName": { - "type": "string", - "defaultValue": "VNet" - }, - "addressPrefix": { - "type": "string", - "defaultValue": "10.0.0.0/16" - }, - "dnsName": { - "type": "string" - }, - "nicName": { - "type": "string", - "defaultValue": "NIC" - }, - "lbName": { - "type": "string", - "defaultValue": "LoadBalancer" - }, - "lbIPName": { - "type": "string", - "defaultValue": "PublicIP-LB-FE" - }, - "overProvision": { - "type": "string", - "defaultValue": "false" - }, - "vmImagePublisher": { - "type": "string", - "defaultValue": "Microsoft.Azure.ServiceFabric" - }, - "vmImageOffer": { - "type": "string", - "defaultValue": "UbuntuServer" - }, - "vmImageSku": { - "type": "string", - "defaultValue": "16.04" - }, - "vmImageVersion": { - "type": "string", - "defaultValue": "6.0.12" - }, - "clusterProtectionLevel": { - "type": "string", - "allowedValues": [ - "None", - "Sign", - "EncryptAndSign" - ], - "defaultValue": "EncryptAndSign", - "metadata": { - "description": "Protection level.Three values are allowed - EncryptAndSign, Sign, None. It is best to keep the default of EncryptAndSign, unless you have a need not to" - } - }, - "certificateStoreValue": { - "type": "string", - "allowedValues": [ - "My" - ], - "defaultValue": "My", - "metadata": { - "description": "The store name where the cert will be deployed in the virtual machine" - } - }, - "certificateThumbprint": { - "type": "string", - "metadata": { - "description": "Certificate Thumbprint" - } - }, - "sourceVaultValue": { - "type": "string", - "metadata": { - "description": "Resource Id of the key vault, is should be in the format of /subscriptions//resourceGroups//providers/Microsoft.KeyVault/vaults/" - } - }, - "certificateUrlValue": { - "type": "string", - "metadata": { - "description": "Refers to the location URL in your key vault where the certificate was uploaded, it is should be in the format of https://.vault.azure.net:443/secrets/" - } - }, - "storageAccountType": { - "type": "string", - "allowedValues": [ - "Standard_LRS", - "Standard_GRS" - ], - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Replication option for the VM image storage account" - } - }, - "supportLogStorageAccountType": { - "type": "string", - "allowedValues": [ - "Standard_LRS", - "Standard_GRS" - ], - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Replication option for the support log storage account" - } - }, - "supportLogStorageAccountName": { - "type": "string", - "defaultValue": "[toLower( concat('sflogs', uniqueString(resourceGroup().id),'2'))]", - "metadata": { - "description": "Name for the storage account that contains support logs from the cluster" - } - }, - "applicationDiagnosticsStorageAccountType": { - "type": "string", - "allowedValues": [ - "Standard_LRS", - "Standard_GRS" - ], - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Replication option for the application diagnostics storage account" - } - }, - "applicationDiagnosticsStorageAccountName": { - "type": "string", - "defaultValue": "[toLower(concat(uniqueString(resourceGroup().id), '3' ))]", - "metadata": { - "description": "Name for the storage account that contains application diagnostics data from the cluster" - } - }, - "nt0InstanceCount": { - "type": "int", - "defaultValue": 5, - "metadata": { - "description": "Instance count for node type" - } - }, - "vmNodeType0Name": { - "type": "string", - "defaultValue": "primary", - "maxLength": 9 - }, - "vmNodeType0Size": { - "type": "string", - "defaultValue": "Standard_D1_v2" - } - }, - "variables": { - "vmssApiVersion": "2017-03-30", - "lbApiVersion": "2015-06-15", - "vNetApiVersion": "2015-06-15", - "storageApiVersion": "2016-01-01", - "publicIPApiVersion": "2015-06-15", - "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',parameters('virtualNetworkName'))]", - "subnet0Ref": "[concat(variables('vnetID'),'/subnets/',parameters('subnet0Name'))]", - "wadlogs": "", - "wadperfcounters1": "", - "wadperfcounters2": "", - "wadcfgxstart": "[concat(variables('wadlogs'),variables('wadperfcounters1'),variables('wadperfcounters2'),'')]", - "lbID0": "[resourceId('Microsoft.Network/loadBalancers', concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name')))]", - "lbIPConfig0": "[concat(variables('lbID0'),'/frontendIPConfigurations/LoadBalancerIPConfig')]", - "lbPoolID0": "[concat(variables('lbID0'),'/backendAddressPools/LoadBalancerBEAddressPool')]", - "lbProbeID0": "[concat(variables('lbID0'),'/probes/FabricGatewayProbe')]", - "lbHttpProbeID0": "[concat(variables('lbID0'),'/probes/FabricHttpGatewayProbe')]", - "lbNatPoolID0": "[concat(variables('lbID0'),'/inboundNatPools/LoadBalancerBEAddressNatPool')]", - "vmStorageAccountName0": "[toLower(concat(uniqueString(resourceGroup().id), '1', '0' ))]", - "wadmetricsresourceid0": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',resourceGroup().name ,'/providers/','Microsoft.Compute/virtualMachineScaleSets/', parameters('vmNodeType0Name'))]" - }, - "resources": [ - { - "apiVersion": "[variables('storageApiVersion')]", - "type": "Microsoft.Storage/storageAccounts", - "name": "[parameters('supportLogStorageAccountName')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": {}, - "kind": "Storage", - "sku": { - "name": "[parameters('supportLogStorageAccountType')]" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('storageApiVersion')]", - "type": "Microsoft.Storage/storageAccounts", - "name": "[parameters('applicationDiagnosticsStorageAccountName')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": {}, - "kind": "Storage", - "sku": { - "name": "[parameters('applicationDiagnosticsStorageAccountType')]" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('vNetApiVersion')]", - "type": "Microsoft.Network/virtualNetworks", - "name": "[parameters('virtualNetworkName')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": { - "addressSpace": { - "addressPrefixes": [ - "[parameters('addressPrefix')]" - ] - }, - "subnets": [ - { - "name": "[parameters('subnet0Name')]", - "properties": { - "addressPrefix": "[parameters('subnet0Prefix')]" - } - } - ] - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('publicIPApiVersion')]", - "type": "Microsoft.Network/publicIPAddresses", - "name": "[concat(parameters('lbIPName'),'-','0')]", - "location": "[parameters('computeLocation')]", - "properties": { - "dnsSettings": { - "domainNameLabel": "[parameters('dnsName')]" - }, - "publicIPAllocationMethod": "Dynamic" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('lbApiVersion')]", - "type": "Microsoft.Network/loadBalancers", - "name": "[concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name'))]", - "location": "[parameters('computeLocation')]", - "dependsOn": [ - "[concat('Microsoft.Network/publicIPAddresses/',concat(parameters('lbIPName'),'-','0'))]" - ], - "properties": { - "frontendIPConfigurations": [ - { - "name": "LoadBalancerIPConfig", - "properties": { - "publicIPAddress": { - "id": "[resourceId('Microsoft.Network/publicIPAddresses',concat(parameters('lbIPName'),'-','0'))]" - } - } - } - ], - "backendAddressPools": [ - { - "name": "LoadBalancerBEAddressPool", - "properties": {} - } - ], - "loadBalancingRules": [ - { - "name": "LBRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('nt0fabricTcpGatewayPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('nt0fabricTcpGatewayPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "LBHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('nt0fabricHttpGatewayPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('nt0fabricHttpGatewayPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "WebMVCHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('webMvcHttpPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('webMvcHttpPort')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "WebSPAHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('webSpaHttpPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('webSpaHttpPort')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "WebStatusHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('webStatusHttpPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('webStatusHttpPort')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "IdSrvHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('IdSrvHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('IdSrvHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "BasketApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('BasketApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('BasketApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "CatalogApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('CatalogApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('CatalogApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "OrderingApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('OrderingApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('OrderingApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "MarketingApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('MarketingApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('MarketingApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "LocationsApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('LocationsApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('LocationsApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - } - ], - "probes": [ - { - "name": "FabricGatewayProbe", - "properties": { - "intervalInSeconds": 5, - "numberOfProbes": 2, - "port": "[parameters('nt0fabricTcpGatewayPort')]", - "protocol": "tcp" - } - }, - { - "name": "FabricHttpGatewayProbe", - "properties": { - "intervalInSeconds": 5, - "numberOfProbes": 2, - "port": "[parameters('nt0fabricHttpGatewayPort')]", - "protocol": "tcp" - } - } - ], - "inboundNatPools": [ - { - "name": "LoadBalancerBEAddressNatPool", - "properties": { - "backendPort": "22", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPortRangeEnd": "4500", - "frontendPortRangeStart": "3389", - "protocol": "tcp" - } - } - ] - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('vmssApiVersion')]", - "type": "Microsoft.Compute/virtualMachineScaleSets", - "name": "[parameters('vmNodeType0Name')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [ - "[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]", - "[concat('Microsoft.Network/loadBalancers/', concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name')))]", - "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]", - "[concat('Microsoft.Storage/storageAccounts/', parameters('applicationDiagnosticsStorageAccountName'))]" - ], - "properties": { - "overprovision": "[parameters('overProvision')]", - "upgradePolicy": { - "mode": "Automatic" - }, - "virtualMachineProfile": { - "extensionProfile": { - "extensions": [ - { - "name": "[concat(parameters('vmNodeType0Name'),'_ServiceFabricLinuxNode')]", - "properties": { - "type": "ServiceFabricLinuxNode", - "autoUpgradeMinorVersion": true, - "protectedSettings": { - "StorageAccountKey1": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('supportLogStorageAccountName')),'2015-05-01-preview').key1]", - "StorageAccountKey2": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('supportLogStorageAccountName')),'2015-05-01-preview').key2]" - }, - "publisher": "Microsoft.Azure.ServiceFabric", - "settings": { - "clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]", - "nodeTypeRef": "[parameters('vmNodeType0Name')]", - "durabilityLevel": "Bronze", - "enableParallelJobs": true, - "nicPrefixOverride": "[parameters('subnet0Prefix')]", - "certificate": { - "thumbprint": "[parameters('certificateThumbprint')]", - "x509StoreName": "[parameters('certificateStoreValue')]" - } - }, - "typeHandlerVersion": "1.0" - } - }, - { - "name": "[concat('VMDiagnosticsVmExt','_vmNodeType0Name')]", - "properties": { - "type": "LinuxDiagnostic", - "autoUpgradeMinorVersion": true, - "protectedSettings": { - "storageAccountName": "[parameters('applicationDiagnosticsStorageAccountName')]", - "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]", - "storageAccountEndPoint": "https://core.windows.net/" - }, - "publisher": "Microsoft.OSTCExtensions", - "settings": { - "xmlCfg": "[base64(concat(variables('wadcfgxstart'),variables('wadmetricsresourceid0'),variables('wadcfgxend')))]", - "StorageAccount": "[parameters('applicationDiagnosticsStorageAccountName')]" - }, - "typeHandlerVersion": "2.3" - } - } - ] - }, - "networkProfile": { - "networkInterfaceConfigurations": [ - { - "name": "[concat(parameters('nicName'), '-0')]", - "properties": { - "ipConfigurations": [ - { - "name": "[concat(parameters('nicName'),'-',0)]", - "properties": { - "loadBalancerBackendAddressPools": [ - { - "id": "[variables('lbPoolID0')]" - } - ], - "loadBalancerInboundNatPools": [ - { - "id": "[variables('lbNatPoolID0')]" - } - ], - "subnet": { - "id": "[variables('subnet0Ref')]" - } - } - } - ], - "primary": true - } - } - ] - }, - "osProfile": { - "adminPassword": "[parameters('adminPassword')]", - "adminUsername": "[parameters('adminUsername')]", - "computernamePrefix": "[parameters('vmNodeType0Name')]", - "secrets": [ - { - "sourceVault": { - "id": "[parameters('sourceVaultValue')]" - }, - "vaultCertificates": [ - { - "certificateUrl": "[parameters('certificateUrlValue')]" - } - ] - } - ] - }, - "storageProfile": { - "imageReference": { - "publisher": "[parameters('vmImagePublisher')]", - "offer": "[parameters('vmImageOffer')]", - "sku": "[parameters('vmImageSku')]", - "version": "[parameters('vmImageVersion')]" - }, - "osDisk": { - "caching": "ReadOnly", - "createOption": "FromImage", - "managedDisk": { - "storageAccountType": "[parameters('storageAccountType')]" - } - } - } - } - }, - "sku": { - "name": "[parameters('vmNodeType0Size')]", - "capacity": "[parameters('nt0InstanceCount')]", - "tier": "Standard" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "2017-07-01-preview", - "type": "Microsoft.ServiceFabric/clusters", - "name": "[parameters('clusterName')]", - "location": "[parameters('clusterLocation')]", - "dependsOn": [ - "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]" - ], - "properties": { - "addonFeatures": [ - "DnsService" - ], - "certificate": { - "thumbprint": "[parameters('certificateThumbprint')]", - "x509StoreName": "[parameters('certificateStoreValue')]" - }, - "clientCertificateCommonNames": [], - "clientCertificateThumbprints": [], - "clusterCodeVersion": "6.0.120.1", - "clusterState": "Default", - "diagnosticsStorageAccountConfig": { - "blobEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.blob]", - "protectedAccountKeyName": "StorageAccountKey1", - "queueEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.queue]", - "storageAccountName": "[parameters('supportLogStorageAccountName')]", - "tableEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.table]" - }, - "fabricSettings": [ - { - "parameters": [ - { - "name": "ClusterProtectionLevel", - "value": "[parameters('clusterProtectionLevel')]" - } - ], - "name": "Security" - } - ], - "managementEndpoint": "[concat('https://',reference(concat(parameters('lbIPName'),'-','0')).dnsSettings.fqdn,':',parameters('nt0fabricHttpGatewayPort'))]", - "nodeTypes": [ - { - "name": "[parameters('vmNodeType0Name')]", - "applicationPorts": { - "endPort": "[parameters('nt0applicationEndPort')]", - "startPort": "[parameters('nt0applicationStartPort')]" - }, - "clientConnectionEndpointPort": "[parameters('nt0fabricTcpGatewayPort')]", - "durabilityLevel": "Bronze", - "ephemeralPorts": { - "endPort": "[parameters('nt0ephemeralEndPort')]", - "startPort": "[parameters('nt0ephemeralStartPort')]" - }, - "httpGatewayEndpointPort": "[parameters('nt0fabricHttpGatewayPort')]", - "isPrimary": true, - "vmInstanceCount": "[parameters('nt0InstanceCount')]" - } - ], - "provisioningState": "Default", - "reliabilityLevel": "Silver", - "upgradeMode": "Manual", - "vmImage": "Linux" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - } - ], - "outputs": { - "clusterProperties": { - "value": "[reference(parameters('clusterName'))]", - "type": "object" - } - } -} \ No newline at end of file diff --git a/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploysecured.parameters.json b/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploysecured.parameters.json deleted file mode 100644 index 65875cb318..0000000000 --- a/deploy/azure/az/servicefabric/LinuxContainers/servicefabricdeploysecured.parameters.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "clusterName": { - "value": "pro-eshop-sflinux-cluster" - }, - "clusterLocation": { - "value": "westus" - }, - "computeLocation": { - "value": "westus" - }, - "adminUserName": { - "value": "eshop" - }, - "adminPassword": { - "value": "Pass@word1" - }, - "nicName": { - "value": "NIC-eshopsflinsec" - }, - "publicIPAddressName": { - "value": "eshopsflinsec-PubIP" - }, - "dnsName": { - "value": "pro-eshop-sflinux-cluster" - }, - "virtualNetworkName": { - "value": "VNet-eshopsflin" - }, - "lbName": { - "value": "LB-eshopsflin" - }, - "lbIPName": { - "value": "LBIP-eshopsflin" - }, - "sourceVaultValue": { - "value": "your-value-check-keyvault-at-azure" - }, - "certificateUrlValue": { - "value": "your-value-check-keyvault-at-azure" - }, - "certificateThumbprint": { - "value": "your-value-check-keyvault-at-azure" - }, - "vmImageSku": { - "value": "16.04-LTS" - }, - "vmImageVersion": { - "value": "latest" - }, - "vmImagePublisher": { - "value": "Canonical" - }, - "nt0ephemeralStartPort": { - "value": 49152 - }, - "nt0ephemeralEndPort": { - "value": 65534 - }, - "nt0applicationStartPort": { - "value": 20000 - }, - "nt0applicationEndPort": { - "value": 30000 - }, - "nt0fabricTcpGatewayPort": { - "value": 19000 - }, - "nt0fabricHttpGatewayPort": { - "value": 19080 - }, - "webMvcHttpPort": { - "value": 5100 - }, - "webSpaHttpPort": { - "value": 5104 - }, - "webStatusHttpPort": { - "value": 5107 - }, - "IdSrvHttpRule": { - "value": 5105 - }, - "BasketApiHttpRule": { - "value": 5103 - }, - "CatalogApiHttpRule": { - "value": 5101 - }, - "OrderingApiHttpRule": { - "value": 5102 - }, - "MarketingApiHttpRule": { - "value": 5110 - }, - "LocationsApiHttpRule": { - "value": 5109 - } - } -} \ No newline at end of file diff --git a/deploy/azure/az/servicefabric/WindowsContainers/gen-keyvaultcert.ps1 b/deploy/azure/az/servicefabric/WindowsContainers/gen-keyvaultcert.ps1 deleted file mode 100644 index c6fc34013e..0000000000 --- a/deploy/azure/az/servicefabric/WindowsContainers/gen-keyvaultcert.ps1 +++ /dev/null @@ -1,53 +0,0 @@ -Param( - [parameter(Mandatory=$true)][string]$vaultName, - [parameter(Mandatory=$true)][string]$certName, - [parameter(Mandatory=$true)][string]$certPwd, - [parameter(Mandatory=$true)][string]$subjectName, - [parameter(Mandatory=$false)][string]$ValidityInMonths=12, - [parameter(Mandatory=$true)][string]$saveDir -) - - -#Log in Azure Account -Login-AzureRmAccount - - -# Create Cert in KeyVault -Write-Host "Creating certificate in Azure KeyVault..." -ForegroundColor Yellow -$policy = New-AzureKeyVaultCertificatePolicy -SubjectName $subjectName -IssuerName Self -ValidityInMonths $ValidityInMonths -Add-AzureKeyVaultCertificate -VaultName $vaultName -Name $certName -CertificatePolicy $policy - -# Downloading Certificate -Write-Host "Downloading Certificate from KeyVault..." -ForegroundColor Yellow - -$Stoploop = $false -$Retrycount = 0 - -do { - try { - - $kvSecret = Get-AzureKeyVaultSecret -VaultName $vaultName -Name $certName -ErrorAction SilentlyContinue - $kvSecretBytes = [System.Convert]::FromBase64String($kvSecret.SecretValueText) - $certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection - $certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable) - $protectedCertificateBytes = $certCollection.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, $certPwd) - [System.IO.File]::WriteAllBytes($saveDir + "\" + $certName + ".pfx", $protectedCertificateBytes) - - $Stoploop = $true - Write-Host "Finished!" -ForegroundColor Yellow - } - catch { - if ($Retrycount -gt 5){ - $Stoploop = $true - Write-Host "Not possible to retrieve the certificate!" -ForegroundColor Yellow - } - else { - Start-Sleep -Seconds 20 - $Retrycount = $Retrycount + 1 - } - } -} -While ($Stoploop -eq $false) - -# Show Certificate Values -Get-AzureKeyVaultCertificate -VaultName $vaultName -Name $certName \ No newline at end of file diff --git a/deploy/azure/az/servicefabric/WindowsContainers/readme.md b/deploy/azure/az/servicefabric/WindowsContainers/readme.md deleted file mode 100644 index 18aa8ad789..0000000000 --- a/deploy/azure/az/servicefabric/WindowsContainers/readme.md +++ /dev/null @@ -1,138 +0,0 @@ -# Deploying a Service Fabric cluster based on Windows nodes - -## A. Unsecured cluster (SF Windows cluster) -For a secured cluster, see option B. below. - -You can always deploy a SF cluster through the Azure portal, as explained in this article: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-get-started-azure-cluster - -However, when creating a cluster, there are quite a few configurations to take into account, like enabling the internal DNS service or Reverse Proxy service, choosing between Linux/Windows, open/publish your application ports in the load-balancer and most of all (the most complex setup) how to create a secure cluster. - -Because of those reasons, we have created a set of ARM templates and scripts so you can create, re-create and configure the SF clusters much faster, as explained below: - -Within eShopOnContainers root folder, at the folder [..\deploy\az\servicefabric\WindowsContainers](https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/deploy/az/servicefabric/WindowsContainers), you can find the ARM template `servicefabricdeploy.json` and its parameters file (`servicefabricdeploy.parameters.json`) to create a Service Fabric cluster environment for Windows Containers (NOT SECURED CLUSTER). - -## Edit the servicefabricdeploy.parameters.json file - -Edit the following params in `servicefabricdeploy.parameters.json` file to set your values: - -- clusterName: Name of your SF cluster -- clusterLocation: Datacenter location, like westus or westeurope -- computeLocation: Datacenter location, like westus or westeurope -- adminUserName: user-name for VMs administration -- adminPassword: user-password for VMs administration -- dnsName: Name assigned to your SF dns - -Optionally, you could modify which ports are opened in the LoadBalancer for the multiple eShopOnContainer apps and API services. -By default, they are setup as: -- webMvcHttpPort: 5100 -- webSpaHttpPort: 5104 -- webStatusHttpPort: 5107 -- IdSrvHttpRule: 5105 -- BasketApiHttpRule: 5103 -- CatalogApiHttpRule: 5101 -- OrderingApiHttpRule: 5102 -- MarketingApiHttpRule: 5110 -- LocationsApiHttpRule: 5109 - -## Deploy the Service Fabric cluster using the script and ARM templates - -Once parameter file is edited you can deploy it using [create-resources script](../readme.md). - -For example, to deploy the cluster to a new resourcegroup located in westus, using the Command Prompt, go to `deploy\az` folder and type: -``` -create-resources.cmd servicefabric\WindowsContainers\servicefabricdeploy qa-eshop-sfwin-resgrp -c westus -``` - -You should see a similar execution to the following: -![image](https://user-images.githubusercontent.com/1712635/31638979-4881d7aa-b28b-11e7-873c-e1185043a9eb.png) - -Now, if you go to your subscription in Azure, you should be able to see the SF cluster already created and available, like in the following image: - -![image](https://user-images.githubusercontent.com/1712635/31639043-9b26c786-b28b-11e7-8d59-eeea97f74176.png) - -In this case, this is an unsecured SF cluster with a single Windows node, good for initial tests and getting started with SF. - - -## B. Secured cluster (SF Windows cluster) - -Within eShopOnContainers root folder, at the folder [..\deploy\az\servicefabric\WindowsContainers](https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/deploy/az/servicefabric/WindowsContainers), you can find the ARM template `servicefabricdeploysecured.json` and its parameter file (`servicefabricdeploysecured.parameters.json`) to create a secured Service Fabric cluster environment for Windows Containers (IN THIS CASE, IT IS A SECURED CLUSTER USING A CERTIFICATE). - -## Create Azure Keyvault service -Go to PortalAzure and create a Keyvault service. Make sure Enable access for deployment checkboxes are selected. - -![image](https://user-images.githubusercontent.com/1712635/31638848-9b266530-b28a-11e7-953b-1e3ec1a54f77.png) - -## Generate a certificate in Azure Keyvault -In a POWER-SHELL window, move to the folder [..\deploy\az\servicefabric\WindowsContainers](https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/deploy/az/servicefabric/WindowsContainers). - -**Select your Azure subscription** You might have [several Azure subscriptions](https://docs.microsoft.com/en-us/cli/azure/account#set) as shown if you type the following. - - >``` - >az account list - >``` - If you have multiple subscription accounts, you first need to select the Azure subscription account you want to target. Type the following: - >``` - >az account set --subscription "Your Azure Subscription Name or ID" - >``` - -**Execute the gen-keyvaultcert.ps1 script** to generate and download a certificate from Keyvault. -Make sure you're going to run it against the Azure subscription you mean it. - -You might need to authenticate from the browser when running this PowerShell script. - -``` -.\gen-keyvaultcert.ps1 -vaultName -certName -certPwd -subjectName CN=.westus.cloudapp.azure.com -saveDir C:\Users\\Downloads - -``` -You should see a similar execution to the following: -![image](https://user-images.githubusercontent.com/1712635/31640172-93efcca0-b291-11e7-970e-5b5e6bf07042.png) - -IMPORTANT: At this point, copy/cut the .PFX certificate file saved in the downloads forlder and save it in a secure place. - -## Install the certificate -Install the certificate (by double-clicking on the .PFX file) under 'Current User' store location (by default location) and check it as exportable. - - - -Also, install the same certificate as CA (Certificate Authority) under Current User, too. - -![image](https://user-images.githubusercontent.com/1712635/31642795-c6ffa434-b2a1-11e7-8ff8-2a63549a780e.png) - -## Editing servicefabricdeploysecured.parameters.json file - -Edit the parameters in `servicefabricdeploysecured.parameters.json` in a similar way you can do with the unsecured .json file shown above (clusterName, dnsName, etc.), plus edit the following values: - -- sourceVaultValue: Your Azure Keyvault's RESOURCE ID (check Azure keyvault properties, similar to: /subscriptions/e1234ac1-c09c-3jaf-6767-98b3c5f1f246/resourceGroups/eshop-global-resgrp/providers/Microsoft.KeyVault/vaults/eshopkeyvault") - -- certificateUrlValue: Your certificate Secret Identifier (check Azure Keyvault secret certificate properties, should be in the format of https://.vault.azure.net:443/secrets/, similar to: -https://eshopkeyvault.vault.azure.net/secrets/pro-eshop-sfwin-cluster-cert/w647684642cGE2sj83b3hfe4h8e08963) - -- certificateThumbprint: certificate thumbprint (check azure Keyvault certificate thumbprint, something like 88JK453486D55A6818573G0DW9100365HDK70HDK) - -## Deploy the secured SF cluster (Windows nodes) - -Once parameters file is edited you can deploy it using [create-resources script](../readme.md). - -Use a command prompt window positioned into the deploy\az folder. - -``` -create-resources.cmd servicefabric\WindowsContainers\servicefabricdeploysecured pro-eshop-sfwin-resgrp -c westus -``` -The execution should be something like the following: - -![image](https://user-images.githubusercontent.com/1712635/31641955-0bc9d59e-b29d-11e7-9230-5ba02843d98a.png) - -Once the cluster is created you can explore it with Azure's portal, like in the following image: -![image](https://user-images.githubusercontent.com/1712635/31642431-bf1c409e-b29f-11e7-980f-a7685a45108c.png) - -In this case, the ARM template is creating a 5 node cluster when creating a SECURE cluster for "production". - - -# Deploy eShopOnServiceFabric with Visual Studio. - -Modify the cloud.xml file of each Service Fabric application in PublishProfile directory and set your certificate settings to be able to deploy eshopOnContainers in the secured cluster: - - - - - diff --git a/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploy.json b/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploy.json deleted file mode 100644 index b33d939ed4..0000000000 --- a/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploy.json +++ /dev/null @@ -1,859 +0,0 @@ -{ - "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", - "contentVersion": "1.0.0.0", - "parameters": { - "prefix": { - "type": "string" - }, - "clusterLocation": { - "type": "string", - "metadata": { - "description": "Location of the Cluster" - } - }, - "clusterName": { - "type": "string", - "defaultValue": "Cluster", - "metadata": { - "description": "Name of your cluster - Between 3 and 23 characters. Letters and numbers only" - } - }, - "nt0applicationStartPort": { - "type": "int", - "defaultValue": 20000 - }, - "nt0applicationEndPort": { - "type": "int", - "defaultValue": 30000 - }, - "nt0ephemeralStartPort": { - "type": "int", - "defaultValue": 49152 - }, - "nt0ephemeralEndPort": { - "type": "int", - "defaultValue": 65534 - }, - "nt0fabricTcpGatewayPort": { - "type": "int", - "defaultValue": 19000 - }, - "nt0fabricHttpGatewayPort": { - "type": "int", - "defaultValue": 19080 - }, - "nt0reverseProxyEndpointPort": { - "type": "int", - "defaultValue": 19081 - }, - "webMvcHttpPort": { - "type": "int", - "defaultValue": 5100 - }, - "webSpaHttpPort": { - "type": "int", - "defaultValue": 5104 - }, - "webStatusHttpPort": { - "type": "int", - "defaultValue": 5107 - }, - "IdSrvHttpRule": { - "type": "int", - "defaultValue": 5105 - }, - "BasketApiHttpRule": { - "type": "int", - "defaultValue": 5103 - }, - "CatalogApiHttpRule": { - "type": "int", - "defaultValue": 5101 - }, - "OrderingApiHttpRule": { - "type": "int", - "defaultValue": 5102 - }, - "MarketingApiHttpRule": { - "type": "int", - "defaultValue": 5110 - }, - "LocationsApiHttpRule": { - "type": "int", - "defaultValue": 5109 - }, - "subnet0Name": { - "type": "string", - "defaultValue": "Subnet-0" - }, - "subnet0Prefix": { - "type": "string", - "defaultValue": "10.0.0.0/24" - }, - "computeLocation": { - "type": "string" - }, - "publicIPAddressName": { - "type": "string", - "defaultValue": "PublicIP-VM" - }, - "publicIPAddressType": { - "type": "string", - "allowedValues": [ - "Dynamic" - ], - "defaultValue": "Dynamic" - }, - "vmStorageAccountContainerName": { - "type": "string", - "defaultValue": "vhds" - }, - "adminUserName": { - "type": "string", - "defaultValue": "testadm", - "metadata": { - "description": "Remote desktop user Id" - } - }, - "adminPassword": { - "type": "securestring", - "metadata": { - "description": "Remote desktop user password. Must be a strong password" - } - }, - "virtualNetworkName": { - "type": "string", - "defaultValue": "VNet" - }, - "addressPrefix": { - "type": "string", - "defaultValue": "10.0.0.0/16" - }, - "dnsName": { - "type": "string" - }, - "nicName": { - "type": "string", - "defaultValue": "NIC" - }, - "lbName": { - "type": "string", - "defaultValue": "LoadBalancer" - }, - "lbIPName": { - "type": "string", - "defaultValue": "PublicIP-LB-FE" - }, - "overProvision": { - "type": "string", - "defaultValue": "false" - }, - "vmImagePublisher": { - "type": "string", - "defaultValue": "MicrosoftWindowsServer" - }, - "vmImageOffer": { - "type": "string", - "defaultValue": "WindowsServer" - }, - "vmImageSku": { - "type": "string", - "defaultValue": "2012-R2-Datacenter" - }, - "vmImageVersion": { - "type": "string", - "defaultValue": "latest" - }, - "storageAccountType": { - "type": "string", - "allowedValues": [ - "Standard_LRS", - "Standard_GRS" - ], - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Replication option for the VM image storage account" - } - }, - "supportLogStorageAccountType": { - "type": "string", - "allowedValues": [ - "Standard_LRS", - "Standard_GRS" - ], - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Replication option for the support log storage account" - } - }, - "supportLogStorageAccountName": { - "type": "string", - "defaultValue": "[toLower( concat('sflogs', uniqueString(resourceGroup().id),'2'))]", - "metadata": { - "description": "Name for the storage account that contains support logs from the cluster" - } - }, - "applicationDiagnosticsStorageAccountType": { - "type": "string", - "allowedValues": [ - "Standard_LRS", - "Standard_GRS" - ], - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Replication option for the application diagnostics storage account" - } - }, - "applicationDiagnosticsStorageAccountName": { - "type": "string", - "defaultValue": "[toLower(concat(uniqueString(resourceGroup().id), '3' ))]", - "metadata": { - "description": "Name for the storage account that contains application diagnostics data from the cluster" - } - }, - "nt0InstanceCount": { - "type": "int", - "defaultValue": 1, - "metadata": { - "description": "Instance count for node type" - } - }, - "vmNodeType0Name": { - "type": "string", - "defaultValue": "primary", - "maxLength": 9 - }, - "vmNodeType0Size": { - "type": "string", - "defaultValue": "Standard_D2_v2" - } - }, - "variables": { - "vmssApiVersion": "2017-03-30", - "lbApiVersion": "2015-06-15", - "vNetApiVersion": "2015-06-15", - "storageApiVersion": "2016-01-01", - "publicIPApiVersion": "2015-06-15", - "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',parameters('virtualNetworkName'))]", - "subnet0Ref": "[concat(variables('vnetID'),'/subnets/',parameters('subnet0Name'))]", - "lbID0": "[resourceId('Microsoft.Network/loadBalancers', concat('LB','-', variables('clusterName'),'-',parameters('vmNodeType0Name')))]", - "lbIPConfig0": "[concat(variables('lbID0'),'/frontendIPConfigurations/LoadBalancerIPConfig')]", - "lbPoolID0": "[concat(variables('lbID0'),'/backendAddressPools/LoadBalancerBEAddressPool')]", - "lbProbeID0": "[concat(variables('lbID0'),'/probes/FabricGatewayProbe')]", - "lbHttpProbeID0": "[concat(variables('lbID0'),'/probes/FabricHttpGatewayProbe')]", - "lbNatPoolID0": "[concat(variables('lbID0'),'/inboundNatPools/LoadBalancerBEAddressNatPool')]", - "vmStorageAccountName0": "[toLower(concat(uniqueString(resourceGroup().id), '1', '0' ))]", - "supportLogStorageAccountName": "[take(concat(parameters('prefix'), parameters('supportLogStorageAccountName')),22)]", - "applicationDiagnosticsStorageAccountName" : "[take(concat(parameters('prefix'), parameters('applicationDiagnosticsStorageAccountName')),22)]", - "clusterName": "[concat(parameters('prefix'), parameters('clusterName'))]", - "uniqueStringArray0": [ - "[concat(variables('vmStorageAccountName0'), '0')]", - "[concat(variables('vmStorageAccountName0'), '1')]", - "[concat(variables('vmStorageAccountName0'), '2')]", - "[concat(variables('vmStorageAccountName0'), '3')]", - "[concat(variables('vmStorageAccountName0'), '4')]" - ] - }, - "resources": [ - { - "apiVersion": "[variables('storageApiVersion')]", - "type": "Microsoft.Storage/storageAccounts", - "name": "[variables('supportLogStorageAccountName')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": {}, - "kind": "Storage", - "sku": { - "name": "[parameters('supportLogStorageAccountType')]" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[variables('clusterName')]" - } - }, - { - "apiVersion": "[variables('storageApiVersion')]", - "type": "Microsoft.Storage/storageAccounts", - "name": "[variables('applicationDiagnosticsStorageAccountName')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": {}, - "kind": "Storage", - "sku": { - "name": "[parameters('applicationDiagnosticsStorageAccountType')]" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[variables('clusterName')]" - } - }, - { - "apiVersion": "[variables('vNetApiVersion')]", - "type": "Microsoft.Network/virtualNetworks", - "name": "[parameters('virtualNetworkName')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": { - "addressSpace": { - "addressPrefixes": [ - "[parameters('addressPrefix')]" - ] - }, - "subnets": [ - { - "name": "[parameters('subnet0Name')]", - "properties": { - "addressPrefix": "[parameters('subnet0Prefix')]" - } - } - ] - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[variables('clusterName')]" - } - }, - { - "apiVersion": "[variables('publicIPApiVersion')]", - "type": "Microsoft.Network/publicIPAddresses", - "name": "[concat(parameters('lbIPName'),'-','0')]", - "location": "[parameters('computeLocation')]", - "properties": { - "dnsSettings": { - "domainNameLabel": "[parameters('dnsName')]" - }, - "publicIPAllocationMethod": "Dynamic" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[variables('clusterName')]" - } - }, - { - "apiVersion": "[variables('lbApiVersion')]", - "type": "Microsoft.Network/loadBalancers", - "name": "[concat('LB','-', variables('clusterName'),'-',parameters('vmNodeType0Name'))]", - "location": "[parameters('computeLocation')]", - "dependsOn": [ - "[concat('Microsoft.Network/publicIPAddresses/',concat(parameters('lbIPName'),'-','0'))]" - ], - "properties": { - "frontendIPConfigurations": [ - { - "name": "LoadBalancerIPConfig", - "properties": { - "publicIPAddress": { - "id": "[resourceId('Microsoft.Network/publicIPAddresses',concat(parameters('lbIPName'),'-','0'))]" - } - } - } - ], - "backendAddressPools": [ - { - "name": "LoadBalancerBEAddressPool", - "properties": {} - } - ], - "loadBalancingRules": [ - { - "name": "LBRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('nt0fabricTcpGatewayPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('nt0fabricTcpGatewayPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "LBHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('nt0fabricHttpGatewayPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('nt0fabricHttpGatewayPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "ReverseProxyHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('nt0reverseProxyEndpointPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('nt0reverseProxyEndpointPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "WebMVCHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('webMvcHttpPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('webMvcHttpPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "WebSPAHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('webSpaHttpPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('webSpaHttpPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "WebStatusHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('webStatusHttpPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('webStatusHttpPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "IdSrvHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('IdSrvHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('IdSrvHttpRule')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "BasketApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('BasketApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('BasketApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "CatalogApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('CatalogApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('CatalogApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "OrderingApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('OrderingApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('OrderingApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "MarketingApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('MarketingApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('MarketingApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "LocationsApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('LocationsApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('LocationsApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - } - ], - "probes": [ - { - "name": "FabricGatewayProbe", - "properties": { - "intervalInSeconds": 5, - "numberOfProbes": 2, - "port": "[parameters('nt0fabricTcpGatewayPort')]", - "protocol": "tcp" - } - }, - { - "name": "FabricHttpGatewayProbe", - "properties": { - "intervalInSeconds": 5, - "numberOfProbes": 2, - "port": "[parameters('nt0fabricHttpGatewayPort')]", - "protocol": "tcp" - } - } - ], - "inboundNatPools": [ - { - "name": "LoadBalancerBEAddressNatPool", - "properties": { - "backendPort": "3389", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPortRangeEnd": "4500", - "frontendPortRangeStart": "3389", - "protocol": "tcp" - } - } - ] - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[variables('clusterName')]" - } - }, - { - "apiVersion": "[variables('storageApiVersion')]", - "type": "Microsoft.Storage/storageAccounts", - "name": "[variables('uniqueStringArray0')[copyIndex()]]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": {}, - "copy": { - "name": "storageLoop", - "count": 5 - }, - "kind": "Storage", - "sku": { - "name": "[parameters('storageAccountType')]" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[variables('clusterName')]" - } - }, - { - "apiVersion": "[variables('vmssApiVersion')]", - "type": "Microsoft.Compute/virtualMachineScaleSets", - "name": "[parameters('vmNodeType0Name')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [ - "[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]", - "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[0])]", - "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[1])]", - "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[2])]", - "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[3])]", - "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[4])]", - "[concat('Microsoft.Network/loadBalancers/', concat('LB','-', variables('clusterName'),'-',parameters('vmNodeType0Name')))]", - "[concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName'))]", - "[concat('Microsoft.Storage/storageAccounts/', variables('applicationDiagnosticsStorageAccountName'))]" - ], - "properties": { - "overprovision": "[parameters('overProvision')]", - "upgradePolicy": { - "mode": "Automatic" - }, - "virtualMachineProfile": { - "extensionProfile": { - "extensions": [ - { - "name": "[concat(parameters('vmNodeType0Name'),'_ServiceFabricNode')]", - "properties": { - "type": "ServiceFabricNode", - "autoUpgradeMinorVersion": true, - "protectedSettings": { - "StorageAccountKey1": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('supportLogStorageAccountName')),'2015-05-01-preview').key1]", - "StorageAccountKey2": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('supportLogStorageAccountName')),'2015-05-01-preview').key2]" - }, - "publisher": "Microsoft.Azure.ServiceFabric", - "settings": { - "clusterEndpoint": "[reference(variables('clusterName')).clusterEndpoint]", - "nodeTypeRef": "[parameters('vmNodeType0Name')]", - "dataPath": "D:\\\\SvcFab", - "durabilityLevel": "Bronze", - "enableParallelJobs": true, - "nicPrefixOverride": "[parameters('subnet0Prefix')]" - }, - "typeHandlerVersion": "1.0" - } - }, - { - "name": "[concat('VMDiagnosticsVmExt','_vmNodeType0Name')]", - "properties": { - "type": "IaaSDiagnostics", - "autoUpgradeMinorVersion": true, - "protectedSettings": { - "storageAccountName": "[variables('applicationDiagnosticsStorageAccountName')]", - "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]", - "storageAccountEndPoint": "https://core.windows.net/" - }, - "publisher": "Microsoft.Azure.Diagnostics", - "settings": { - "WadCfg": { - "DiagnosticMonitorConfiguration": { - "overallQuotaInMB": "50000", - "EtwProviders": { - "EtwEventSourceProviderConfiguration": [ - { - "provider": "Microsoft-ServiceFabric-Actors", - "scheduledTransferKeywordFilter": "1", - "scheduledTransferPeriod": "PT5M", - "DefaultEvents": { - "eventDestination": "ServiceFabricReliableActorEventTable" - } - }, - { - "provider": "Microsoft-ServiceFabric-Services", - "scheduledTransferPeriod": "PT5M", - "DefaultEvents": { - "eventDestination": "ServiceFabricReliableServiceEventTable" - } - } - ], - "EtwManifestProviderConfiguration": [ - { - "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8", - "scheduledTransferLogLevelFilter": "Information", - "scheduledTransferKeywordFilter": "4611686018427387904", - "scheduledTransferPeriod": "PT5M", - "DefaultEvents": { - "eventDestination": "ServiceFabricSystemEventTable" - } - } - ] - } - } - }, - "StorageAccount": "[variables('applicationDiagnosticsStorageAccountName')]" - }, - "typeHandlerVersion": "1.5" - } - } - ] - }, - "networkProfile": { - "networkInterfaceConfigurations": [ - { - "name": "[concat(parameters('nicName'), '-0')]", - "properties": { - "ipConfigurations": [ - { - "name": "[concat(parameters('nicName'),'-',0)]", - "properties": { - "loadBalancerBackendAddressPools": [ - { - "id": "[variables('lbPoolID0')]" - } - ], - "loadBalancerInboundNatPools": [ - { - "id": "[variables('lbNatPoolID0')]" - } - ], - "subnet": { - "id": "[variables('subnet0Ref')]" - } - } - } - ], - "primary": true - } - } - ] - }, - "osProfile": { - "adminPassword": "[parameters('adminPassword')]", - "adminUsername": "[parameters('adminUsername')]", - "computernamePrefix": "[parameters('vmNodeType0Name')]" - }, - "storageProfile": { - "imageReference": { - "publisher": "[parameters('vmImagePublisher')]", - "offer": "[parameters('vmImageOffer')]", - "sku": "[parameters('vmImageSku')]", - "version": "[parameters('vmImageVersion')]" - }, - "osDisk": { - "caching": "ReadOnly", - "createOption": "FromImage", - "vhdContainers": [ - "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[0]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]", - "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[1]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]", - "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[2]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]", - "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[3]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]", - "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[4]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]" - ], - "name": "vmssosdisk" - } - } - } - }, - "sku": { - "name": "[parameters('vmNodeType0Size')]", - "capacity": "[parameters('nt0InstanceCount')]", - "tier": "Standard" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[variables('clusterName')]" - } - }, - { - "apiVersion": "2017-07-01-preview", - "type": "Microsoft.ServiceFabric/clusters", - "name": "[variables('clusterName')]", - "location": "[parameters('clusterLocation')]", - "dependsOn": [ - "[concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName'))]" - ], - "properties": { - "addonFeatures": [ - "DnsService" - ], - "clientCertificateCommonNames": [], - "clientCertificateThumbprints": [], - "clusterCodeVersion": "6.0.232.9494", - "clusterState": "Default", - "diagnosticsStorageAccountConfig": { - "blobEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.blob]", - "protectedAccountKeyName": "StorageAccountKey1", - "queueEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.queue]", - "storageAccountName": "[variables('supportLogStorageAccountName')]", - "tableEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.table]" - }, - "fabricSettings": [], - "managementEndpoint": "[concat('http://',reference(concat(parameters('lbIPName'),'-','0')).dnsSettings.fqdn,':',parameters('nt0fabricHttpGatewayPort'))]", - "nodeTypes": [ - { - "name": "[parameters('vmNodeType0Name')]", - "applicationPorts": { - "endPort": "[parameters('nt0applicationEndPort')]", - "startPort": "[parameters('nt0applicationStartPort')]" - }, - "clientConnectionEndpointPort": "[parameters('nt0fabricTcpGatewayPort')]", - "durabilityLevel": "Bronze", - "ephemeralPorts": { - "endPort": "[parameters('nt0ephemeralEndPort')]", - "startPort": "[parameters('nt0ephemeralStartPort')]" - }, - "httpGatewayEndpointPort": "[parameters('nt0fabricHttpGatewayPort')]", - "isPrimary": true, - "reverseProxyEndpointPort": "[parameters('nt0reverseProxyEndpointPort')]", - "vmInstanceCount": "[parameters('nt0InstanceCount')]" - } - ], - "provisioningState": "Default", - "reliabilityLevel": "None", - "upgradeMode": "Manual", - "vmImage": "Windows" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[variables('clusterName')]" - } - } - ], - "outputs": { - "clusterProperties": { - "value": "[reference(variables('clusterName'))]", - "type": "object" - } - } -} \ No newline at end of file diff --git a/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploy.parameters.json b/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploy.parameters.json deleted file mode 100644 index af7e1a6eef..0000000000 --- a/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploy.parameters.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "prefix": { - "value": "qa" - }, - "clusterName": { - "value": "-eshop-sfwin-cluster" - }, - "clusterLocation": { - "value": "westus" - }, - "computeLocation": { - "value": "westus" - }, - "adminUserName": { - "value": "testedu" - }, - "adminPassword": { - "value": "testedu1234!" - }, - "nicName": { - "value": "NIC-eshopsfwin" - }, - "publicIPAddressName": { - "value": "eshopsfwin-PubIP" - }, - "dnsName": { - "value": "testedu-eshop-sfwin-cluster" - }, - "virtualNetworkName": { - "value": "VNet-eshopsfwin" - }, - "lbName": { - "value": "LB-eshopsfwin" - }, - "lbIPName": { - "value": "LBIP-eshopsfwin" - }, - "applicationDiagnosticsStorageAccountName": { - "value": "sfdiageshopw" - }, - "supportLogStorageAccountName": { - "value": "sflogeshopw" - }, - "vmImageSku": { - "value": "2016-Datacenter-with-Containers" - }, - "nt0ephemeralStartPort": { - "value": 49152 - }, - "nt0ephemeralEndPort": { - "value": 65534 - }, - "nt0applicationStartPort": { - "value": 20000 - }, - "nt0applicationEndPort": { - "value": 30000 - }, - "nt0fabricTcpGatewayPort": { - "value": 19000 - }, - "nt0fabricHttpGatewayPort": { - "value": 19080 - }, - "nt0reverseProxyEndpointPort": { - "value": 19081 - }, - "webMvcHttpPort": { - "value": 5100 - }, - "webSpaHttpPort": { - "value": 5104 - }, - "webStatusHttpPort": { - "value": 5107 - }, - "IdSrvHttpRule": { - "value": 5105 - }, - "BasketApiHttpRule": { - "value": 5103 - }, - "CatalogApiHttpRule": { - "value": 5101 - }, - "OrderingApiHttpRule": { - "value": 5102 - }, - "MarketingApiHttpRule": { - "value": 5110 - }, - "LocationsApiHttpRule": { - "value": 5109 - } - } -} - diff --git a/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploysecured.json b/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploysecured.json deleted file mode 100644 index 843f5c0d15..0000000000 --- a/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploysecured.json +++ /dev/null @@ -1,924 +0,0 @@ -{ - "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", - "contentVersion": "1.0.0.0", - "parameters": { - "clusterLocation": { - "type": "string", - "metadata": { - "description": "Location of the Cluster" - } - }, - "clusterName": { - "type": "string", - "defaultValue": "Cluster", - "metadata": { - "description": "Name of your cluster - Between 3 and 23 characters. Letters and numbers only" - } - }, - "nt0applicationStartPort": { - "type": "int", - "defaultValue": 20000 - }, - "nt0applicationEndPort": { - "type": "int", - "defaultValue": 30000 - }, - "nt0ephemeralStartPort": { - "type": "int", - "defaultValue": 49152 - }, - "nt0ephemeralEndPort": { - "type": "int", - "defaultValue": 65534 - }, - "nt0fabricTcpGatewayPort": { - "type": "int", - "defaultValue": 19000 - }, - "nt0fabricHttpGatewayPort": { - "type": "int", - "defaultValue": 19080 - }, - "nt0reverseProxyEndpointPort": { - "type": "int", - "defaultValue": 19081 - }, - "webMvcHttpPort": { - "type": "int", - "defaultValue": 5100 - }, - "webSpaHttpPort": { - "type": "int", - "defaultValue": 5104 - }, - "webStatusHttpPort": { - "type": "int", - "defaultValue": 5107 - }, - "IdSrvHttpRule": { - "type": "int", - "defaultValue": 5105 - }, - "BasketApiHttpRule": { - "type": "int", - "defaultValue": 5103 - }, - "CatalogApiHttpRule": { - "type": "int", - "defaultValue": 5101 - }, - "OrderingApiHttpRule": { - "type": "int", - "defaultValue": 5102 - }, - "MarketingApiHttpRule": { - "type": "int", - "defaultValue": 5110 - }, - "LocationsApiHttpRule": { - "type": "int", - "defaultValue": 5109 - }, - "subnet0Name": { - "type": "string", - "defaultValue": "Subnet-0" - }, - "subnet0Prefix": { - "type": "string", - "defaultValue": "10.0.0.0/24" - }, - "computeLocation": { - "type": "string" - }, - "publicIPAddressName": { - "type": "string", - "defaultValue": "PublicIP-VM" - }, - "publicIPAddressType": { - "type": "string", - "allowedValues": [ - "Dynamic" - ], - "defaultValue": "Dynamic" - }, - "vmStorageAccountContainerName": { - "type": "string", - "defaultValue": "vhds" - }, - "adminUserName": { - "type": "string", - "defaultValue": "testadm", - "metadata": { - "description": "Remote desktop user Id" - } - }, - "adminPassword": { - "type": "securestring", - "metadata": { - "description": "Remote desktop user password. Must be a strong password" - } - }, - "virtualNetworkName": { - "type": "string", - "defaultValue": "VNet" - }, - "addressPrefix": { - "type": "string", - "defaultValue": "10.0.0.0/16" - }, - "dnsName": { - "type": "string" - }, - "nicName": { - "type": "string", - "defaultValue": "NIC" - }, - "lbName": { - "type": "string", - "defaultValue": "LoadBalancer" - }, - "lbIPName": { - "type": "string", - "defaultValue": "PublicIP-LB-FE" - }, - "overProvision": { - "type": "string", - "defaultValue": "false" - }, - "vmImagePublisher": { - "type": "string", - "defaultValue": "MicrosoftWindowsServer" - }, - "vmImageOffer": { - "type": "string", - "defaultValue": "WindowsServer" - }, - "vmImageSku": { - "type": "string", - "defaultValue": "2012-R2-Datacenter" - }, - "vmImageVersion": { - "type": "string", - "defaultValue": "latest" - }, - "clusterProtectionLevel": { - "type": "string", - "allowedValues": [ - "None", - "Sign", - "EncryptAndSign" - ], - "defaultValue": "EncryptAndSign", - "metadata": { - "description": "Protection level.Three values are allowed - EncryptAndSign, Sign, None. It is best to keep the default of EncryptAndSign, unless you have a need not to" - } - }, - "certificateStoreValue": { - "type": "string", - "allowedValues": [ - "My" - ], - "defaultValue": "My", - "metadata": { - "description": "The store name where the cert will be deployed in the virtual machine" - } - }, - "certificateThumbprint": { - "type": "string", - "metadata": { - "description": "Certificate Thumbprint" - } - }, - "sourceVaultValue": { - "type": "string", - "metadata": { - "description": "Resource Id of the key vault, is should be in the format of /subscriptions//resourceGroups//providers/Microsoft.KeyVault/vaults/" - } - }, - "certificateUrlValue": { - "type": "string", - "metadata": { - "description": "Refers to the location URL in your key vault where the certificate was uploaded, it is should be in the format of https://.vault.azure.net:443/secrets/" - } - }, - "storageAccountType": { - "type": "string", - "allowedValues": [ - "Standard_LRS", - "Standard_GRS" - ], - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Replication option for the VM image storage account" - } - }, - "supportLogStorageAccountType": { - "type": "string", - "allowedValues": [ - "Standard_LRS", - "Standard_GRS" - ], - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Replication option for the support log storage account" - } - }, - "supportLogStorageAccountName": { - "type": "string", - "defaultValue": "[toLower( concat('sflogs', uniqueString(resourceGroup().id),'2'))]", - "metadata": { - "description": "Name for the storage account that contains support logs from the cluster" - } - }, - "applicationDiagnosticsStorageAccountType": { - "type": "string", - "allowedValues": [ - "Standard_LRS", - "Standard_GRS" - ], - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Replication option for the application diagnostics storage account" - } - }, - "applicationDiagnosticsStorageAccountName": { - "type": "string", - "defaultValue": "[toLower(concat(uniqueString(resourceGroup().id), '3' ))]", - "metadata": { - "description": "Name for the storage account that contains application diagnostics data from the cluster" - } - }, - "nt0InstanceCount": { - "type": "int", - "defaultValue": 5, - "metadata": { - "description": "Instance count for node type" - } - }, - "vmNodeType0Name": { - "type": "string", - "defaultValue": "primary", - "maxLength": 9 - }, - "vmNodeType0Size": { - "type": "string", - "defaultValue": "Standard_D2_v2" - } - }, - "variables": { - "vmssApiVersion": "2017-03-30", - "lbApiVersion": "2015-06-15", - "vNetApiVersion": "2015-06-15", - "storageApiVersion": "2016-01-01", - "publicIPApiVersion": "2015-06-15", - "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',parameters('virtualNetworkName'))]", - "subnet0Ref": "[concat(variables('vnetID'),'/subnets/',parameters('subnet0Name'))]", - "lbID0": "[resourceId('Microsoft.Network/loadBalancers', concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name')))]", - "lbIPConfig0": "[concat(variables('lbID0'),'/frontendIPConfigurations/LoadBalancerIPConfig')]", - "lbPoolID0": "[concat(variables('lbID0'),'/backendAddressPools/LoadBalancerBEAddressPool')]", - "lbProbeID0": "[concat(variables('lbID0'),'/probes/FabricGatewayProbe')]", - "lbHttpProbeID0": "[concat(variables('lbID0'),'/probes/FabricHttpGatewayProbe')]", - "lbNatPoolID0": "[concat(variables('lbID0'),'/inboundNatPools/LoadBalancerBEAddressNatPool')]", - "vmStorageAccountName0": "[toLower(concat(uniqueString(resourceGroup().id), '1', '0' ))]", - "uniqueStringArray0": [ - "[concat(variables('vmStorageAccountName0'), '0')]", - "[concat(variables('vmStorageAccountName0'), '1')]", - "[concat(variables('vmStorageAccountName0'), '2')]", - "[concat(variables('vmStorageAccountName0'), '3')]", - "[concat(variables('vmStorageAccountName0'), '4')]" - ] - }, - "resources": [ - { - "apiVersion": "[variables('storageApiVersion')]", - "type": "Microsoft.Storage/storageAccounts", - "name": "[parameters('supportLogStorageAccountName')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": {}, - "kind": "Storage", - "sku": { - "name": "[parameters('supportLogStorageAccountType')]" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('storageApiVersion')]", - "type": "Microsoft.Storage/storageAccounts", - "name": "[parameters('applicationDiagnosticsStorageAccountName')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": {}, - "kind": "Storage", - "sku": { - "name": "[parameters('applicationDiagnosticsStorageAccountType')]" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('vNetApiVersion')]", - "type": "Microsoft.Network/virtualNetworks", - "name": "[parameters('virtualNetworkName')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": { - "addressSpace": { - "addressPrefixes": [ - "[parameters('addressPrefix')]" - ] - }, - "subnets": [ - { - "name": "[parameters('subnet0Name')]", - "properties": { - "addressPrefix": "[parameters('subnet0Prefix')]" - } - } - ] - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('publicIPApiVersion')]", - "type": "Microsoft.Network/publicIPAddresses", - "name": "[concat(parameters('lbIPName'),'-','0')]", - "location": "[parameters('computeLocation')]", - "properties": { - "dnsSettings": { - "domainNameLabel": "[parameters('dnsName')]" - }, - "publicIPAllocationMethod": "Dynamic" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('lbApiVersion')]", - "type": "Microsoft.Network/loadBalancers", - "name": "[concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name'))]", - "location": "[parameters('computeLocation')]", - "dependsOn": [ - "[concat('Microsoft.Network/publicIPAddresses/',concat(parameters('lbIPName'),'-','0'))]" - ], - "properties": { - "frontendIPConfigurations": [ - { - "name": "LoadBalancerIPConfig", - "properties": { - "publicIPAddress": { - "id": "[resourceId('Microsoft.Network/publicIPAddresses',concat(parameters('lbIPName'),'-','0'))]" - } - } - } - ], - "backendAddressPools": [ - { - "name": "LoadBalancerBEAddressPool", - "properties": {} - } - ], - "loadBalancingRules": [ - { - "name": "LBRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('nt0fabricTcpGatewayPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('nt0fabricTcpGatewayPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "LBHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('nt0fabricHttpGatewayPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('nt0fabricHttpGatewayPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "ReverseProxyHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('nt0reverseProxyEndpointPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('nt0reverseProxyEndpointPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "WebMVCHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('webMvcHttpPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('webMvcHttpPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "WebSPAHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('webSpaHttpPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('webSpaHttpPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "WebStatusHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('webStatusHttpPort')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('webStatusHttpPort')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "IdSrvHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('IdSrvHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('IdSrvHttpRule')]", - "idleTimeoutInMinutes": "5", - "probe": { - "id": "[variables('lbHttpProbeID0')]" - }, - "protocol": "tcp" - } - }, - { - "name": "BasketApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('BasketApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('BasketApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "CatalogApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('CatalogApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('CatalogApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "OrderingApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('OrderingApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('OrderingApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "MarketingApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('MarketingApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('MarketingApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - }, - { - "name": "LocationsApiHttpRule", - "properties": { - "backendAddressPool": { - "id": "[variables('lbPoolID0')]" - }, - "backendPort": "[parameters('LocationsApiHttpRule')]", - "enableFloatingIP": "false", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPort": "[parameters('LocationsApiHttpRule')]", - "idleTimeoutInMinutes": "5", - "protocol": "tcp" - } - } - ], - "probes": [ - { - "name": "FabricGatewayProbe", - "properties": { - "intervalInSeconds": 5, - "numberOfProbes": 2, - "port": "[parameters('nt0fabricTcpGatewayPort')]", - "protocol": "tcp" - } - }, - { - "name": "FabricHttpGatewayProbe", - "properties": { - "intervalInSeconds": 5, - "numberOfProbes": 2, - "port": "[parameters('nt0fabricHttpGatewayPort')]", - "protocol": "tcp" - } - } - ], - "inboundNatPools": [ - { - "name": "LoadBalancerBEAddressNatPool", - "properties": { - "backendPort": "3389", - "frontendIPConfiguration": { - "id": "[variables('lbIPConfig0')]" - }, - "frontendPortRangeEnd": "4500", - "frontendPortRangeStart": "3389", - "protocol": "tcp" - } - } - ] - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('storageApiVersion')]", - "type": "Microsoft.Storage/storageAccounts", - "name": "[variables('uniqueStringArray0')[copyIndex()]]", - "location": "[parameters('computeLocation')]", - "dependsOn": [], - "properties": {}, - "copy": { - "name": "storageLoop", - "count": 5 - }, - "kind": "Storage", - "sku": { - "name": "[parameters('storageAccountType')]" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "[variables('vmssApiVersion')]", - "type": "Microsoft.Compute/virtualMachineScaleSets", - "name": "[parameters('vmNodeType0Name')]", - "location": "[parameters('computeLocation')]", - "dependsOn": [ - "[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]", - "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[0])]", - "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[1])]", - "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[2])]", - "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[3])]", - "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[4])]", - "[concat('Microsoft.Network/loadBalancers/', concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name')))]", - "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]", - "[concat('Microsoft.Storage/storageAccounts/', parameters('applicationDiagnosticsStorageAccountName'))]" - ], - "properties": { - "overprovision": "[parameters('overProvision')]", - "upgradePolicy": { - "mode": "Automatic" - }, - "virtualMachineProfile": { - "extensionProfile": { - "extensions": [ - { - "name": "[concat(parameters('vmNodeType0Name'),'_ServiceFabricNode')]", - "properties": { - "type": "ServiceFabricNode", - "autoUpgradeMinorVersion": true, - "protectedSettings": { - "StorageAccountKey1": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('supportLogStorageAccountName')),'2015-05-01-preview').key1]", - "StorageAccountKey2": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('supportLogStorageAccountName')),'2015-05-01-preview').key2]" - }, - "publisher": "Microsoft.Azure.ServiceFabric", - "settings": { - "clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]", - "nodeTypeRef": "[parameters('vmNodeType0Name')]", - "dataPath": "D:\\\\SvcFab", - "durabilityLevel": "Bronze", - "enableParallelJobs": true, - "nicPrefixOverride": "[parameters('subnet0Prefix')]", - "certificate": { - "thumbprint": "[parameters('certificateThumbprint')]", - "x509StoreName": "[parameters('certificateStoreValue')]" - } - }, - "typeHandlerVersion": "1.0" - } - }, - { - "name": "[concat('VMDiagnosticsVmExt','_vmNodeType0Name')]", - "properties": { - "type": "IaaSDiagnostics", - "autoUpgradeMinorVersion": true, - "protectedSettings": { - "storageAccountName": "[parameters('applicationDiagnosticsStorageAccountName')]", - "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]", - "storageAccountEndPoint": "https://core.windows.net/" - }, - "publisher": "Microsoft.Azure.Diagnostics", - "settings": { - "WadCfg": { - "DiagnosticMonitorConfiguration": { - "overallQuotaInMB": "50000", - "EtwProviders": { - "EtwEventSourceProviderConfiguration": [ - { - "provider": "Microsoft-ServiceFabric-Actors", - "scheduledTransferKeywordFilter": "1", - "scheduledTransferPeriod": "PT5M", - "DefaultEvents": { - "eventDestination": "ServiceFabricReliableActorEventTable" - } - }, - { - "provider": "Microsoft-ServiceFabric-Services", - "scheduledTransferPeriod": "PT5M", - "DefaultEvents": { - "eventDestination": "ServiceFabricReliableServiceEventTable" - } - } - ], - "EtwManifestProviderConfiguration": [ - { - "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8", - "scheduledTransferLogLevelFilter": "Information", - "scheduledTransferKeywordFilter": "4611686018427387904", - "scheduledTransferPeriod": "PT5M", - "DefaultEvents": { - "eventDestination": "ServiceFabricSystemEventTable" - } - } - ] - } - } - }, - "StorageAccount": "[parameters('applicationDiagnosticsStorageAccountName')]" - }, - "typeHandlerVersion": "1.5" - } - } - ] - }, - "networkProfile": { - "networkInterfaceConfigurations": [ - { - "name": "[concat(parameters('nicName'), '-0')]", - "properties": { - "ipConfigurations": [ - { - "name": "[concat(parameters('nicName'),'-',0)]", - "properties": { - "loadBalancerBackendAddressPools": [ - { - "id": "[variables('lbPoolID0')]" - } - ], - "loadBalancerInboundNatPools": [ - { - "id": "[variables('lbNatPoolID0')]" - } - ], - "subnet": { - "id": "[variables('subnet0Ref')]" - } - } - } - ], - "primary": true - } - } - ] - }, - "osProfile": { - "adminPassword": "[parameters('adminPassword')]", - "adminUsername": "[parameters('adminUsername')]", - "computernamePrefix": "[parameters('vmNodeType0Name')]", - "secrets": [ - { - "sourceVault": { - "id": "[parameters('sourceVaultValue')]" - }, - "vaultCertificates": [ - { - "certificateStore": "[parameters('certificateStoreValue')]", - "certificateUrl": "[parameters('certificateUrlValue')]" - } - ] - } - ] - }, - "storageProfile": { - "imageReference": { - "publisher": "[parameters('vmImagePublisher')]", - "offer": "[parameters('vmImageOffer')]", - "sku": "[parameters('vmImageSku')]", - "version": "[parameters('vmImageVersion')]" - }, - "osDisk": { - "caching": "ReadOnly", - "createOption": "FromImage", - "vhdContainers": [ - "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[0]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]", - "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[1]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]", - "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[2]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]", - "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[3]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]", - "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[4]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]" - ], - "name": "vmssosdisk" - } - } - } - }, - "sku": { - "name": "[parameters('vmNodeType0Size')]", - "capacity": "[parameters('nt0InstanceCount')]", - "tier": "Standard" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - }, - { - "apiVersion": "2017-07-01-preview", - "type": "Microsoft.ServiceFabric/clusters", - "name": "[parameters('clusterName')]", - "location": "[parameters('clusterLocation')]", - "dependsOn": [ - "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]" - ], - "properties": { - "addonFeatures": [ - "DnsService" - ], - "certificate": { - "thumbprint": "[parameters('certificateThumbprint')]", - "x509StoreName": "[parameters('certificateStoreValue')]" - }, - "clientCertificateCommonNames": [], - "clientCertificateThumbprints": [], - "clusterCodeVersion": "5.7.207.9494", - "clusterState": "Default", - "diagnosticsStorageAccountConfig": { - "blobEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.blob]", - "protectedAccountKeyName": "StorageAccountKey1", - "queueEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.queue]", - "storageAccountName": "[parameters('supportLogStorageAccountName')]", - "tableEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.table]" - }, - "fabricSettings": [ - { - "parameters": [ - { - "name": "ClusterProtectionLevel", - "value": "[parameters('clusterProtectionLevel')]" - } - ], - "name": "Security" - } - ], - "managementEndpoint": "[concat('https://',reference(concat(parameters('lbIPName'),'-','0')).dnsSettings.fqdn,':',parameters('nt0fabricHttpGatewayPort'))]", - "nodeTypes": [ - { - "name": "[parameters('vmNodeType0Name')]", - "applicationPorts": { - "endPort": "[parameters('nt0applicationEndPort')]", - "startPort": "[parameters('nt0applicationStartPort')]" - }, - "clientConnectionEndpointPort": "[parameters('nt0fabricTcpGatewayPort')]", - "durabilityLevel": "Bronze", - "ephemeralPorts": { - "endPort": "[parameters('nt0ephemeralEndPort')]", - "startPort": "[parameters('nt0ephemeralStartPort')]" - }, - "httpGatewayEndpointPort": "[parameters('nt0fabricHttpGatewayPort')]", - "isPrimary": true, - "reverseProxyEndpointPort": "[parameters('nt0reverseProxyEndpointPort')]", - "vmInstanceCount": "[parameters('nt0InstanceCount')]" - } - ], - "provisioningState": "Default", - "reliabilityLevel": "Silver", - "upgradeMode": "Manual", - "vmImage": "Windows" - }, - "tags": { - "resourceType": "Service Fabric", - "clusterName": "[parameters('clusterName')]" - } - } - ], - "outputs": { - "clusterProperties": { - "value": "[reference(parameters('clusterName'))]", - "type": "object" - } - } -} \ No newline at end of file diff --git a/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploysecured.parameters.json b/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploysecured.parameters.json deleted file mode 100644 index bbc8eb6636..0000000000 --- a/deploy/azure/az/servicefabric/WindowsContainers/servicefabricdeploysecured.parameters.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "clusterName": { - "value": "pro-eshop-sfwin-cluster" - }, - "clusterLocation": { - "value": "westus" - }, - "computeLocation": { - "value": "westus" - }, - "adminUserName": { - "value": "eshop" - }, - "adminPassword": { - "value": "Your_complex_Pass@word1" - }, - "nicName": { - "value": "NIC-eshopsfwin" - }, - "publicIPAddressName": { - "value": "eshopsfwin-PubIP" - }, - "dnsName": { - "value": "pro-eshop-sfwin-cluster" - }, - "virtualNetworkName": { - "value": "VNet-eshopsfwin" - }, - "lbName": { - "value": "LB-eshopsfwin" - }, - "lbIPName": { - "value": "LBIP-eshopsfwin" - }, - "applicationDiagnosticsStorageAccountName": { - "value": "sfdgqaeshopsfwinsec" - }, - "supportLogStorageAccountName": { - "value": "sflogsqaeshopsfwinsec" - }, - "sourceVaultValue": { - "value": "your-value-check-keyvault-at-azure" - }, - "certificateUrlValue": { - "value": "your-value-check-keyvault-at-azure" - }, - "certificateThumbprint": { - "value": "your-value-check-keyvault-at-azure" - }, - "vmImageSku": { - "value": "2016-Datacenter-with-Containers" - }, - "nt0ephemeralStartPort": { - "value": 49152 - }, - "nt0ephemeralEndPort": { - "value": 65534 - }, - "nt0applicationStartPort": { - "value": 20000 - }, - "nt0applicationEndPort": { - "value": 30000 - }, - "nt0fabricTcpGatewayPort": { - "value": 19000 - }, - "nt0fabricHttpGatewayPort": { - "value": 19080 - }, - "nt0reverseProxyEndpointPort": { - "value": 19081 - }, - "webMvcHttpPort": { - "value": 5100 - }, - "webSpaHttpPort": { - "value": 5104 - }, - "webStatusHttpPort": { - "value": 5107 - }, - "IdSrvHttpRule": { - "value": 5105 - }, - "BasketApiHttpRule": { - "value": 5103 - }, - "CatalogApiHttpRule": { - "value": 5101 - }, - "OrderingApiHttpRule": { - "value": 5102 - }, - "MarketingApiHttpRule": { - "value": 5110 - }, - "LocationsApiHttpRule": { - "value": 5109 - } - } -} - diff --git a/deploy/azure/az/vms/docker-machine.md b/deploy/azure/az/vms/docker-machine.md deleted file mode 100644 index 71cbbd4a79..0000000000 --- a/deploy/azure/az/vms/docker-machine.md +++ /dev/null @@ -1,48 +0,0 @@ -# Create a VM using docker-machine - -Ensure you are logged in the desired subscription Refer to [this article](https://docs.microsoft.com/en-us/cli/azure/authenticate-azure-cli) for more details. - -1. Use `az account show` to find your subscription id. -2. Use `docker-machine create --driver azure --azure-subscription-id --azure-resource-group --azure-ssh-user ` - -After use `docker-machine create` you'll need to authenticate in Azure (even thought if you are logged using `az`, because this is not an Azure CLI 2.0 command). This command will fully create the VM with all the needed settings to run Docker. - -**Note** Refer to this article with all the [parameters that docker-machine accepts when creating Azure VMs](https://docs.docker.com/machine/drivers/azure/#options) for finding more parameters. - -## Connecting your local environment with docker host running on the VM - -Using docker-machine you control the remote VM from your local development environment (you don't need to use ssh to login to remote VM). - -Connecting your local environment to a remote host is using by setting some environment variables, but the easiest way is to use again the docker-machine command. Just type `docker-machine env machine_name` (where machine_name is the name you gave when you created the VM). That command **do not change anything**, so do'nt do really nothing, but **outputs the environment variables you have to set**. This is the output of the command (running on a windows workstation): - -``` -SET DOCKER_TLS_VERIFY=1 -SET DOCKER_HOST=tcp://104.42.236.237:2376 -SET DOCKER_CERT_PATH=C:\Users\etoma\.docker\machine\machines\ufohost -SET DOCKER_MACHINE_NAME=ufohost -SET COMPOSE_CONVERT_WINDOWS_PATHS=true -REM Run this command to configure your shell: -REM @FOR /f "tokens=*" %i IN ('docker-machine env ufohost') DO @%i -``` - -You have to set all these environment variables, or (as the command suggest) just copy and paste the last line in your terminal. - -Once you did this, your local development machine is connected to VM running Docker on Azure: all docker and docker-compose commands will run in the VM instead of your local Docker machine! - - - - - - - - - - - - - - - - - - diff --git a/deploy/azure/az/vms/linux-vm/linuxvm.json b/deploy/azure/az/vms/linux-vm/linuxvm.json deleted file mode 100644 index 5b4778ebe9..0000000000 --- a/deploy/azure/az/vms/linux-vm/linuxvm.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "newStorageAccountName": { - "type": "string", - "metadata": { - "description": "Unique DNS Name for the Storage Account where the Virtual Machine's disks will be placed." - } - }, - "adminUsername": { - "type": "string", - "metadata": { - "description": "Username for the Virtual Machine." - } - }, - "adminPassword": { - "type": "securestring", - "metadata": { - "description": "Password for the Virtual Machine." - } - }, - "dnsNameForPublicIP": { - "type": "string", - "metadata": { - "description": "Unique DNS Name for the Public IP used to access the Virtual Machine." - } - }, - "ubuntuOSVersion": { - "type": "string", - "defaultValue": "14.04.4-LTS", - "metadata": { - "description": "The Ubuntu version for deploying the Docker containers. This will pick a fully patched image of this given Ubuntu version. Allowed values: 14.04.4-LTS, 15.10, 16.04.0-LTS" - }, - "allowedValues": [ - "14.04.4-LTS", - "15.10", - "16.04.0-LTS" - ] - }, - "VMName": { - "type": "string", - "metadata": { - "description": "Name of VM in Azure" - } - } - }, - "variables": { - "newStorageAccountName": "[take(concat(parameters('newStorageAccountName'), uniqueString(resourceGroup().id)), 23)]", - "dnsNameForPublicIP": "[concat(parameters('dnsNameForPublicIP'), uniqueString(resourceGroup().id))]", - "imagePublisher": "Canonical", - "imageOffer": "UbuntuServer", - "OSDiskName": "osdiskfordockersimple", - "nicName": "myVMNicD", - "extensionName": "DockerExtension", - "addressPrefix": "10.0.0.0/16", - "subnetName": "Subnet", - "subnetPrefix": "10.0.0.0/24", - "storageAccountType": "Standard_LRS", - "publicIPAddressName": "myPublicIPD", - "publicIPAddressType": "Dynamic", - "vmStorageAccountContainerName": "vhds", - "vmName": "[parameters('VMName')]", - "vmSize": "Standard_F1", - "virtualNetworkName": "MyVNETD", - "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]", - "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]" - }, - "resources": [ - { - "type": "Microsoft.Storage/storageAccounts", - "name": "[variables('newStorageAccountName')]", - "apiVersion": "2015-05-01-preview", - "location": "[resourceGroup().location]", - "properties": { - "accountType": "[variables('storageAccountType')]" - } - }, - { - "apiVersion": "2015-05-01-preview", - "type": "Microsoft.Network/publicIPAddresses", - "name": "[variables('publicIPAddressName')]", - "location": "[resourceGroup().location]", - "properties": { - "publicIPAllocationMethod": "[variables('publicIPAddressType')]", - "dnsSettings": { - "domainNameLabel": "[variables('dnsNameForPublicIP')]" - } - } - }, - { - "apiVersion": "2015-05-01-preview", - "type": "Microsoft.Network/virtualNetworks", - "name": "[variables('virtualNetworkName')]", - "location": "[resourceGroup().location]", - "properties": { - "addressSpace": { - "addressPrefixes": [ - "[variables('addressPrefix')]" - ] - }, - "subnets": [ - { - "name": "[variables('subnetName')]", - "properties": { - "addressPrefix": "[variables('subnetPrefix')]" - } - } - ] - } - }, - { - "apiVersion": "2015-05-01-preview", - "type": "Microsoft.Network/networkInterfaces", - "name": "[variables('nicName')]", - "location": "[resourceGroup().location]", - "dependsOn": [ - "[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]", - "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]" - ], - "properties": { - "ipConfigurations": [ - { - "name": "ipconfig1", - "properties": { - "privateIPAllocationMethod": "Dynamic", - "publicIPAddress": { - "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]" - }, - "subnet": { - "id": "[variables('subnetRef')]" - } - } - } - ] - } - }, - { - "apiVersion": "2015-05-01-preview", - "type": "Microsoft.Compute/virtualMachines", - "name": "[variables('vmName')]", - "location": "[resourceGroup().location]", - "dependsOn": [ - "[concat('Microsoft.Storage/storageAccounts/', variables('newStorageAccountName'))]", - "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]" - ], - "properties": { - "hardwareProfile": { - "vmSize": "[variables('vmSize')]" - }, - "osProfile": { - "computerName": "[variables('vmName')]", - "adminUsername": "[parameters('adminUsername')]", - "adminPassword": "[parameters('adminPassword')]" - }, - "storageProfile": { - "imageReference": { - "publisher": "[variables('imagePublisher')]", - "offer": "[variables('imageOffer')]", - "sku": "[parameters('ubuntuOSVersion')]", - "version": "latest" - }, - "osDisk": { - "name": "osdisk1", - "vhd": { - "uri": "[concat('http://',variables('newStorageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('OSDiskName'),'.vhd')]" - }, - "caching": "ReadWrite", - "createOption": "FromImage" - } - }, - "networkProfile": { - "networkInterfaces": [ - { - "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]" - } - ] - } - } - }, - { - "type": "Microsoft.Compute/virtualMachines/extensions", - "name": "[concat(variables('vmName'),'/', variables('extensionName'))]", - "apiVersion": "2015-05-01-preview", - "location": "[resourceGroup().location]", - "dependsOn": [ - "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]" - ], - "properties": { - "publisher": "Microsoft.Azure.Extensions", - "type": "DockerExtension", - "typeHandlerVersion": "1.0", - "autoUpgradeMinorVersion": true, - "settings": { } - } - } - ] -} - diff --git a/deploy/azure/az/vms/linux-vm/linuxvm.parameters.json b/deploy/azure/az/vms/linux-vm/linuxvm.parameters.json deleted file mode 100644 index d34dfd1d97..0000000000 --- a/deploy/azure/az/vms/linux-vm/linuxvm.parameters.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "newStorageAccountName": { "value": "eshopsrvmvstorage" }, - "adminUsername": { "value": "eshop" }, - "adminPassword": { "value": "Pass@word" }, - "dnsNameForPublicIP": { "value": "eshop-srv" }, - "VMName": {"value": "MyDockerVM2"} -} diff --git a/deploy/azure/az/vms/plain-vm.md b/deploy/azure/az/vms/plain-vm.md deleted file mode 100644 index 4e06ed0d34..0000000000 --- a/deploy/azure/az/vms/plain-vm.md +++ /dev/null @@ -1,77 +0,0 @@ -# Deploy a VM to run the services - -Follow these instructions to deploy a Linux-based VM with the Docker Host installed, or a VM with Windows Server 2016 plus -windows containers and Docker Daemon. - -**Note**: Use this option, only if you want to provide an environment using images pulled from DockerHub (for example, to create a test environment). If you want to -be able to deploy images built by yourself (but not pushed to DockerHub) follow the [instructions about using docker-machine](./docker-machine.md). - -You can use this machine to install the microservices and having a "development" environment (useful to develop and test the client apps). - -Please note that this deployment is not a production deployment. In a production-based scenario, you should deploy all containers in ACS. - -## Create the VM - -Ensure you are logged in the desired subscription (use `az login` and `az account set` if needed. Refer to [this article](https://docs.microsoft.com/en-us/cli/azure/authenticate-azure-cli) for more details. - -Go to `linux-vm` or `win-vm` folder (based on if you want a Linux or Windows VM). Then: - -1. Edit the file `linuxvm.parameters.json` or `windowsvm.parameters.json` (based on what VM do you want to create) with your desired values -2. Run the [create-resources script](../readme.md) to deploy the desired template (`linux-vm/linuxvm.json` or `win-vm/windowsvm.json`). - -I. e. if you are in Windows and want to deploy a linux based VM, in a new resourcegroup located in westus, go to `deploy\az` folder and type: - -``` -create-resources.cmd vms\linux-vm\linuxvm newResourceGroup -c westus -``` - -**Note:** To avoid errors, ARM template used generates unique names for: - -1. VM used storage -2. Public DNS - -Those public names are based on the parameters set in the parameters file. - -### The parameters file (linuxvm.parameters.json or winsowsvm.parameters.json) - -Both files are identical and contains the minimum set of parameters needed by the ARM template to deploy the VM. ARM template accepts some other parameters (set with default values). Look the template for more info. - -The parameters defined are: - -1. `newStorageAccountName`: Name of the storage created for the VM. To ensure uniqueness a unique suffix will be added to this value. -2. `adminUsername`: Admin login -3. `adminPassword`: Admin password -4. `dnsNameForPublicIP`: DNS of the VM. To ensure uniqueness a unique suffix will be added to this value. -5. `VMName`: Name of the VM inside Azure - -## Finding the IP and DNS of the VM - -To find the IP and FQDN of the VM you can type `az vm list --resource-group --output table --show-details` (where resourcegroup is the -name of the resourcegroup where you created the VM). This command will generate output like: - -``` -Name ResourceGroup PowerState PublicIps Fqdns Location ----------- --------------- ------------ ------------- ------------------------------------------------ ---------- -MyDockerVM MyResourceGroup VM running xx.xx.xxx.xxx eshop-srvxxxxxxxxxxxxx.westus.cloudapp.azure.com westus -``` - -You can use this information to connect your new VM. - -## Deploy services in the VM - -We are providing public images of the services in DockerHub (https://hub.docker.com/u/eshop/). To use these images, just create a folder in the VM and copy -following files to it (those files are in the root of the repo): - -1. `docker-compose.nobuild.yml` -2. `docker-compose.prod.yml` - -**Note:** The `docker-compose.nobuild.yml` is just a version of the `docker-compose.yml` without the `build` section. Is neede due [docker-compose bug](https://github.com/docker/compose/issues/2945). - -Then log into the VM and run the command `docker-compose -f docker-compose.nobuild.yml -f docker-compose.prod.yml up --no-build -d` to start all the microservices. - - - - - - - diff --git a/deploy/azure/az/vms/readme.md b/deploy/azure/az/vms/readme.md deleted file mode 100644 index 25085f75cf..0000000000 --- a/deploy/azure/az/vms/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -## Create VM with Docker installed - -There are two options for creating VM machines with Docker installed: - -1. [Deploying a Linux VM to run single-server development environment using docker-machine (**Recommended for development environments**)](./docker-machine.md) -2. [Deploying a Linux VM or Windows Server 2016 to run a single-server development environment using ARM template (**Recommended for creating testing environments**)](./plain-vm.md) - -If you want to create a VM for deploying images you build locally, then use the first option. - -If you want to create a VM to run images deployed to DockerHub (to provide some test environment) then use the second option. \ No newline at end of file diff --git a/deploy/azure/az/vms/win-vm/windowsvm.json b/deploy/azure/az/vms/win-vm/windowsvm.json deleted file mode 100644 index 78bebdfef4..0000000000 --- a/deploy/azure/az/vms/win-vm/windowsvm.json +++ /dev/null @@ -1,290 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "parameters": { - - "VMName": { - "type": "string", - "metadata": { - "description": "This name will also be used to prefix the network security group, storage, virtual network, network card, subnet and public IP address name." - } - }, - - "adminUsername": { - "type": "string", - "metadata": { - "description": "Username for the Virtual Machine." - } - }, - - "adminPassword": { - "type": "securestring", - "metadata": { - "description": "Password for the Virtual Machine." - } - }, - - "dnsNameForPublicIP": { - "type": "string", - "metadata": { - "description": "Unique DNS Name for the Public IP used to access the Virtual Machine." - } - }, - - "newStorageAccountName": { - "type": "string", - "metadata": { - "description": "Storage name for the Virtual Machine." - } - }, - "vmSize": { - "type": "string", - "defaultValue": "Standard_D1", - "metadata": { - "description": "VM Size" - } - } - }, - - "variables": { - "newStorageAccountName": "[take(concat(parameters('newStorageAccountName'), uniqueString(resourceGroup().id)), 23)]", - "dnsNameForPublicIP": "[concat(parameters('dnsNameForPublicIP'), uniqueString(resourceGroup().id))]", - "windowsOSVersion": "2016-Datacenter", - "imagePublisher": "MicrosoftWindowsServer", - "imageOffer": "WindowsServer", - "OSDiskName": "[concat(parameters('VMName'),'_osdisk')]", - "nicName": "[concat(parameters('VMName'),'_nic')]", - "addressPrefix": "10.0.0.0/16", - "subnetName": "[concat(parameters('VMName'),'_subnet')]", - "subnetPrefix": "10.0.0.0/24", - "networkSecurityGroupName": "[concat(parameters('VMName'),'_nsg')]", - "storageAccountType": "Standard_LRS", - "publicIPAddressName": "[concat(parameters('VMName'),'_pubip')]", - "publicIPAddressType": "Dynamic", - "vmStorageAccountContainerName": "vhds", - "apiVersion": "2015-05-01-preview", - "virtualNetworkName": "[concat(parameters('VMName'),'_vnet')]", - "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]", - "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]" - }, - "resources": [ - { - "type": "Microsoft.Network/networkSecurityGroups", - "name": "[variables('networkSecurityGroupName')]", - "apiVersion": "[variables('apiVersion')]", - "location": "[resourceGroup().location]", - "properties": { - "securityRules": [ - { - "name": "HTTP", - "properties": { - "description": "HTTP", - "protocol": "Tcp", - "sourcePortRange": "*", - "destinationPortRange": "80", - "sourceAddressPrefix": "*", - "destinationAddressPrefix": "*", - "access": "Allow", - "priority": 100, - "direction": "Inbound" - } - }, - - { - "name": "RDP", - "properties": { - "description": "RDP", - "protocol": "Tcp", - "sourcePortRange": "*", - "destinationPortRange": "3389", - "sourceAddressPrefix": "*", - "destinationAddressPrefix": "*", - "access": "Allow", - "priority": 200, - "direction": "Inbound" - } - }, - - { - "name": "Docker", - "properties": { - "description": "Docker", - "protocol": "Tcp", - "sourcePortRange": "*", - "destinationPortRange": "2375", - "sourceAddressPrefix": "*", - "destinationAddressPrefix": "*", - "access": "Allow", - "priority": 300, - "direction": "Inbound" - } - } - - ] - } - }, - - { - "type": "Microsoft.Storage/storageAccounts", - "name": "[variables('newStorageAccountName')]", - "apiVersion": "[variables('apiVersion')]", - "location": "[resourceGroup().location]", - "tags": { - "displayName": "StorageAccount" - }, - "properties": { - "accountType": "[variables('storageAccountType')]" - } - }, - - { - "apiVersion": "[variables('apiVersion')]", - "type": "Microsoft.Network/publicIPAddresses", - "name": "[variables('publicIPAddressName')]", - "location": "[resourceGroup().location]", - "tags": { - "displayName": "PublicIPAddress" - }, - "properties": { - "publicIPAllocationMethod": "[variables('publicIPAddressType')]", - "dnsSettings": { - "domainNameLabel": "[tolower(variables('dnsNameForPublicIP'))]" - } - } - }, - - { - "apiVersion": "[variables('apiVersion')]", - "type": "Microsoft.Network/virtualNetworks", - "name": "[variables('virtualNetworkName')]", - "location": "[resourceGroup().location]", - "dependsOn": [ - "[concat('Microsoft.Network/networkSecurityGroups/', variables('networkSecurityGroupName'))]" - ], - "tags": { - "displayName": "VirtualNetwork" - }, - "properties": { - "addressSpace": { - "addressPrefixes": [ - "[variables('addressPrefix')]" - ] - }, - "subnets": [ - { - "name": "[variables('subnetName')]", - "properties": { - "addressPrefix": "[variables('subnetPrefix')]", - "networkSecurityGroup": { - "id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]" - } - } - } - ] - } - }, - - { - "apiVersion": "[variables('apiVersion')]", - "type": "Microsoft.Network/networkInterfaces", - "name": "[variables('nicName')]", - "location": "[resourceGroup().location]", - "tags": { - "displayName": "NetworkInterface" - }, - "dependsOn": [ - "[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]", - "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]" - ], - "properties": { - "ipConfigurations": [ - { - "name": "ipconfig1", - "properties": { - "privateIPAllocationMethod": "Dynamic", - "publicIPAddress": { - "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]" - }, - "subnet": { - "id": "[variables('subnetRef')]" - } - } - } - ] - } - }, - - { - "apiVersion": "[variables('apiVersion')]", - "type": "Microsoft.Compute/virtualMachines", - "name": "[parameters('VMName')]", - "location": "[resourceGroup().location]", - "tags": { - "displayName": "VirtualMachine" - }, - "dependsOn": [ - "[concat('Microsoft.Storage/storageAccounts/', variables('newStorageAccountName'))]", - "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]" - ], - "properties": { - "hardwareProfile": { - "vmSize": "[parameters('vmSize')]" - }, - "osProfile": { - "computername": "[parameters('VMName')]", - "adminUsername": "[parameters('adminUsername')]", - "adminPassword": "[parameters('adminPassword')]" - }, - "storageProfile": { - "imageReference": { - "publisher": "[variables('imagePublisher')]", - "offer": "[variables('imageOffer')]", - "sku": "[variables('windowsOSVersion')]", - "version": "latest" - }, - "osDisk": { - "name": "osdisk", - "vhd": { - "uri": "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('newStorageAccountName')), variables('apiVersion')).primaryEndpoints.blob, variables('vmStorageAccountContainerName'),'/',variables('OSDiskName'),'.vhd')]" - }, - "caching": "ReadWrite", - "createOption": "FromImage" - } - }, - "networkProfile": { - "networkInterfaces": [ - { - "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]" - } - ] - } - }, - "resources": [ - { - "name": "containerConfiguration", - "type": "extensions", - "location": "[resourceGroup().location]", - "apiVersion": "2015-06-15", - "dependsOn": [ - "[concat('Microsoft.Compute/virtualMachines/', parameters('VMName'))]" - ], - "tags": { - "displayName": "containerConfiguration" - }, - "properties": { - "publisher": "Microsoft.Compute", - "type": "CustomScriptExtension", - "typeHandlerVersion": "1.2", - "autoUpgradeMinorVersion": true, - "settings": { - "fileUris": [ - "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/windows-server-containers-preview/azure-containers.ps1" - ], - "commandToExecute": "[concat('powershell.exe -ExecutionPolicy Unrestricted -File azure-containers.ps1 -adminuser ',parameters('adminUsername'))]" - } - } - } - ] - } - ] -} \ No newline at end of file diff --git a/deploy/azure/az/vms/win-vm/windowsvm.parameters.json b/deploy/azure/az/vms/win-vm/windowsvm.parameters.json deleted file mode 100644 index 7a2773a545..0000000000 --- a/deploy/azure/az/vms/win-vm/windowsvm.parameters.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "newStorageAccountName": { "value": "eshopsrvmvstoragewin" }, - "adminUsername": { "value": "eshop" }, - "adminPassword": { "value": "Pass@word" }, - "dnsNameForPublicIP": { "value": "eshop-srv-win" }, - "VMName": {"value": "eshop-srv-win"} -} diff --git a/deploy/k8s/README.CICD.k8s.md b/deploy/k8s/README.CICD.k8s.md deleted file mode 100644 index 40dbb87393..0000000000 --- a/deploy/k8s/README.CICD.k8s.md +++ /dev/null @@ -1,66 +0,0 @@ -# Kubernetes CI/CD VSTS -For k8s CI/CD pipeline delivery a series of tasks must be created in VSTS to deploy k8s in Azure - -## Prerequisites -* A Kubernetes cluster. Follow Azure Container Service's [walkthrough](https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough) to create one. -* A private Docker registry. Follow Azure Container Registry's [guide](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal) to create one. -* Optionally, previous steps can be skipped if you run gen-k8s-env.ps1 (or gen-k8s-env-aks.ps1 if you would like to use AKS instead of ACS) script to automatically create the azure environment needed for kubernetes deployment. Azure cli 2.0 must be previously installed [installation guide](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). For example: - ->``` ->./gen-k8s-env -resourceGroupName k8sGroup -location westeurope -registryName k8sregistry -orchestratorName k8s-cluster -dnsName k8s-dns ->``` -or using AKS instead of ACS ->``` ->./gen-k8s-env-aks -resourceGroupName k8sGroup -location westeurope -registryName k8sregistry -dnsName k8s-dns -serviceName k8s-cluster -createAcr true -nodeCount 3 -nodeVMSize Standard_D2_v2 ->``` -* An `Azure Blob storage`. It is needed for storing the kubernetes config file used by the hosted agent to access to Kubernetes cluster. Example: - - - -* Upload the `kubernetes config file` to the blob storage previously created. Execute the following command which will download the config file into the directory `c:\Users\\.kube\` and then, upload it to your blob storage: - ->``` ->https://eshopk8s.blob.core.windows.net/k8s-config/config ->``` - -## Create the VSTS tasks -1. Create a `Download File` task to download the kubernetes binary `kubectl` to the hosted agent. For example: - ->``` ->https://storage.googleapis.com/kubernetes-release/release/v1.8.5/bin/windows/386/kubectl.exe ->``` - - - -2. Create a Download File task to download the kubernetes config file to the hosted agent. For example: - ->``` ->https://eshopk8s.blob.core.windows.net/k8s-config/config ->``` - - -3. Create a powershell task to execute the k8s deployment script. For example: - -* Deployment script path - ->``` ->$(System.DefaultWorkingDirectory)/All Microservices/docker-compose/deploy.ps1 ->``` - -* Deployment script path arguments. Use value: - ->``` ->-deployCI $true -execPath '$(System.DefaultWorkingDirectory)/' -kubeconfigPath '$(System.DefaultWorkingDirectory)/' -deployInfrastructure $true -imageTag dev -configFile '$(System.DefaultWorkingDirectory)/$(Build.DefinitionName)/docker-compose/conf_local.yml' ->``` - - -- deployCI: Must be set to `$true`. This avoids create images (always are pulled from registry) and compile bits. -- deployInfrastructure: Can be set to `$false` if don't want to deploy infrastructure containers (like Redis, rabbit, SQL,...). -- imageTag: Image tag to pull from k8s. -- configFile: Configuration file (refer to [README.k8s.md](./README.k8s.md) for more info). This file is part of the VSTS build output. -- execPath: path where the k8s binary is stored -- kubeconfigPath: path where the k8s config file is stored - - You can use additional parameters (i.e. pass registry and user/password to use custom registry instead of DockerHub. Plase, refer to [README.k8s.md](./README.k8s.md) for more info. - - diff --git a/deploy/k8s/README.k8s.md b/deploy/k8s/README.k8s.md deleted file mode 100644 index 84d9a72f0e..0000000000 --- a/deploy/k8s/README.k8s.md +++ /dev/null @@ -1,98 +0,0 @@ -# eShopOnContainers on Kubernetes -The k8s directory contains Kubernetes configuration for the eShopOnContainers app and a PowerShell script to deploy it to a cluster. Each eShopOnContainers microservice has a deployment configuration in `deployments.yaml`, and is exposed to the cluster by a service in `services.yaml`. The microservices are exposed externally on individual routes (`/basket-api`, `/webmvc`, etc.) by an nginx reverse proxy specified in `frontend.yaml` and `nginx.conf`. - -## Prerequisites -* A Kubernetes cluster. Follow Azure Container Service's [walkthrough](https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough) to create one. -* A private Docker registry. Follow Azure Container Registry's [guide](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal) to create one. -* Optionally, previous steps can be skipped if you run the **gen-k8s-env-aks.ps1** script to create an AKS cluster environment or gen-k8s-env.ps1 script to create an ACS for Kuberentes cluster environment including the creation of additional Azure environment needed like an Azure Resource Manager and ACR registry. - -Azure cli 2.0 must be previously installed [installation guide](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). For example: - - **Important**: Note the parameter "-createAcr true". If you are creating the K8s cluster but you want to re-use and existing ACR, say "-createAcr false". - - -For AKS: - ->``` ->./gen-k8s-env-aks -resourceGroupName YoureShopAksResgroup -location centralus -serviceName YoureShopAksCluster -dnsNamePrefix youreshopaks -registryName YoureShopAcrRegistry -createAcr true -nodeCount 3 -nodeVMSize Standard_D2_v2 ->``` - -For ACS: - ->``` ->./gen-k8s-env-aks -resourceGroupName k8sGroup -location westeurope -registryName k8sregistry -serviceName k8s-cluster -createAcr true -nodeCount 3 -nodeVMSize Standard_D2_v2 ->``` - -* A Docker development environment with `docker` and `docker-compose`. - * Visit [docker.com](https://docker.com) to download the tools and set up the environment. Docker's [installation guide](https://docs.docker.com/engine/getstarted/step_one/#step-3-verify-your-installation) covers verifying your Docker installation. -* The Kubernetes command line client, `kubectl`. - * This can be installed with the `az` tool as described in the Azure Container Service [walkthrough](https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough). `az` is also helpful for getting the credentials `kubectl` needs to access your cluster. For other installation options, and information about configuring `kubectl` yourself, see the [Kubernetes documentation](https://kubernetes.io/docs/tasks/kubectl/install/). - -## Deploy the application with the deployment script -1. Open a PowerShell command line at the `k8s` directory of your local eShopOnContainers repository. -1. Ensure `docker`, `docker-compose`, and `kubectl` are on the path, and configured for your Docker machine and Kubernetes cluster. -1. Run `deploy.ps1` with your registry information. The Docker username and password are provided by Azure Container Registry, and can be retrieved from the Azure portal. Optionally, ACR credentials can be obtained by running the following command: - ->``` ->az acr credential show -n eshopregistry ->``` - -Once the user and password are retrieved, run the following script for deployment. For example: - ->``` ->./deploy.ps1 -registry myregistry.azurecr.io -dockerUser User -dockerPassword SecretPassword -configFile file_with_config.yaml ->``` - -The parameter `configFile` is important (and mandatory) because it contains the configuration used for the Pods in Kubernetes. This allow deploying Pods that use your own resources in Azure or any other cloud provider. A configuration file `conf_local.yaml` is provided which configures Pods to use the infrastructure containers (that is sql server, rabbitmq, redis and mongodb must be deployed also in the k8s). - -The script will build the code and corresponding Docker images, push the later to your registry, and deploy the application to your cluster. You can watch the deployment unfold from the Kubernetes web interface: run `kubectl proxy` and open a browser to [http://localhost:8001/ui](http://localhost:8001/ui) - -### Pods configuration file - -When deploying to k8s the script needs the `configFile` parameter with the location of the YAML configuration file. This file contains the configuration of the pods. The file is a .YAML file. For reference another configuration file (conf_cloud.yaml) is provided but without valid values. - -If you deploy the infrastructure containers use `conf_local.yaml` as a value for `configFile` parameter. If you don't deploy the infrastructure containers use your own configuration file with the correct values. - -### Parameters of the deploy.ps1 script - -The script accepts following parameters: - -+ `registry`: Name of the Docker registry to use. If not passed DockerHub is assumed -+ `dockerUser`: Login to use for the Docker registry (if needed) -+ `dockerPassword`: Password to use for the Docker registry (if needed) -+ `execPath`: Location of `kubectl` (if not in the path). If passed must finish with the path character. -+ `kubeconfigPath`: Location of the `kubectl` configuration file. **This parameter is used only in the CI pipeline**, so you don't need to pass it when invoking the script using the CLI. -+ `configFile`: Location of the Yaml file with the `externalcfg` configmap to be deployed. This configmap is used to configure the Pod's environment **This parameter is mandatory** -+ `imageTag`: Tag of the images to deploy to k8s. If not passed the name of the current branch is used. -+ `externalDns`: External DNS name of the k8s. This is only needed if you have configured a DNS that points to your k8s external IP. If you don't have any DNS configured do not pass this parameter. -+ `deployCI`: If `true` means that script is running under the context of a VSTS Hosted Build Agent. **You should never use this parameter from CLI** -+ `buildBits`: means that the source code of eShopOnContainers will be built. If you have built your code (and have all projects published in `obj/Docker/publish`) do not pass this parameter. Default value is `false` -+ `buildImages`: If `true` (default value) Docker images are built and pushed in the Docker registry. If you set this parameter to `false`, Docker images won't be built nor pushed in the Docker registry (but k8s' deployments and services will be redeployed). -+ `deployInfrastructure`: If `true` infrastructure containers (rabbitmq, mongo, redis, sql) will be deployed in k8s. If `false` those containers (and its related deployments and services in k8s) won't be deployed. -+ `dockerOrg`: Name of the organization in the registry where the images are (or will be pushed). Default value is `eshop` (which has images provided by Microsoft) - -**Important:** If you **don't pass the `-buildBits $true` the script won't build and publish the projects** to their `obj/Docker/publish` folder. If any project is not published, you'll be receiving errors like: - -``` -ERROR: Service 'xxxxxxx' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder123456789/obj/Docker/publish: no such file or directory -``` - -### Typical usages of the script: - -Build all projects, and deploy all them in k8s including infrastructure containers in a organization called `foo` in Docker Hub. Images will be tagged with my current git branch and containers will use the configuration set in `conf_local.yml` file: - -``` -./deploy.ps1 -buildBits $true -dockerOrg foo -dockerUser MY_USER -dockerPassword MY_PASSWORD -configFile conf_local.yml -``` - -Do not build any project and don't rebuild docker images. Create k8s deployments that will pull images from my private repository, in the `foo` organization, using the tag `latest`. Containers will use the configuration set in `conf_cloud` file. - -``` -./deploy.ps1 -buildImages $false -dockerOrg foo -registry MY_REGISTRY_FQDN -dockerUser MY_USER -dockerPassword MY_PASSWORD -configFile conf_cloud.yml -imageTag master -``` - -Deploy k8s using public images that Microsoft provides: - -``` -./deploy.ps1 -buildImages $false -configFile conf_local.yml -imageTag master -``` diff --git a/deploy/k8s/build-push-images.ps1 b/deploy/k8s/build-push-images.ps1 deleted file mode 100644 index e2c8e06b61..0000000000 --- a/deploy/k8s/build-push-images.ps1 +++ /dev/null @@ -1,72 +0,0 @@ -Param( - [parameter(Mandatory=$false)][string]$registry, - [parameter(Mandatory=$false)][string]$dockerUser, - [parameter(Mandatory=$false)][string]$dockerPassword, - [parameter(Mandatory=$false)][string]$imageTag, - [parameter(Mandatory=$false)][bool]$buildImages=$true, - [parameter(Mandatory=$false)][bool]$pushImages=$true, - [parameter(Mandatory=$false)][string]$dockerOrg="eshop" -) - -# Initialization - -$useDockerHub = [string]::IsNullOrEmpty($registry) - -# Check required commands (only if not in CI environment) - -$requiredCommands = ("docker", "docker-compose") -foreach ($command in $requiredCommands) { - if ((Get-Command $command -ErrorAction SilentlyContinue) -eq $null) { - Write-Host "$command must be on path" -ForegroundColor Red - exit - } -} - -# Get tag to use from current branch if no tag is passed -if ([string]::IsNullOrEmpty($imageTag)) { - $imageTag = $(git rev-parse --abbrev-ref HEAD) -} -Write-Host "Docker image Tag: $imageTag" -ForegroundColor Yellow - -# Build docker images if needed -if ($buildImages) { - Write-Host "Building Docker images tagged with '$imageTag'" -ForegroundColor Yellow - $env:TAG=$imageTag - docker-compose -p .. -f ../docker-compose.yml build -} - -# Login to Docker registry -if (-not [string]::IsNullOrEmpty($dockerUser)) { - $registryFDQN = if (-not $useDockerHub) {$registry} else {"index.docker.io/v1/"} - - Write-Host "Logging in to $registryFDQN as user $dockerUser" -ForegroundColor Yellow - if ($useDockerHub) { - docker login -u $dockerUser -p $dockerPassword - } - else { - docker login -u $dockerUser -p $dockerPassword $registryFDQN - } - - if (-not $LastExitCode -eq 0) { - Write-Host "Login failed" -ForegroundColor Red - exit - } - -} - -# Push images to Docker registry -if ($pushImages) { - Write-Host "Pushing images to $registry/$dockerOrg..." -ForegroundColor Yellow - $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "ordering.backgroundtasks", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") - - foreach ($service in $services) { - $imageFqdn = if ($useDockerHub) {"$dockerOrg/${service}"} else {"$registry/$dockerOrg/${service}"} - docker tag eshop/${service}:$imageTag ${imageFqdn}:$imageTag - docker push ${imageFqdn}:$imageTag - } -} - - - - - diff --git a/deploy/k8s/conf-files.md b/deploy/k8s/conf-files.md deleted file mode 100644 index 3a74a86bd3..0000000000 --- a/deploy/k8s/conf-files.md +++ /dev/null @@ -1,17 +0,0 @@ -# YAML files used to deploy to k8s - -This is just a brief enumeration of the configuration files used to create the k8s objects. Use as reference to find where specific object is. - -- `deployments.yaml` Contains the definition of all deployments of the eShopOnContainers. Do not contain any infrastructure deployment (so no SQL, Redis, ...). -- `services.yaml` Contains the definition of all services of the eShopOnContainers. Do not contain any infrastructure service (so no SQL, Redis, ...). -- `basket-data.yaml` Contains the definition of the Redis (used by basket.api) deployment and service -- `nosql-data.yaml` Contains the definition of the Mongodb (used by locations and marketing) deployment and service -- `sql-data.yaml` Contains the definition of the SQL server deployment and service -- `rabbitmq.yaml` Contains the definition of the RabbitMQ deployment and service -- `keystore-data.yaml` Contains the deployment and service definition of the Redis used to mantain coherence between all the ASP.NET Identity keystores. -- `conf_local.yaml` Contains the configuration map that configures all the Pods to use "local" containers (that is all containers in k8s) -- `conf_cloud.yaml` Contains the configuration map that configures all the Pods to use "cloud" resources (that is use Azure resources instead infrastructure containers). This file is provided with no valid values, just for example. -- `frontend.yaml` Contains the deployment and service definition of the NGINX frontend used as reverse-proxy - -- For more information what kubernetes deployments are, read [Kubernetes help](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) -- For more information what kubernetes services are, read [Kubernetes help](https://kubernetes.io/docs/concepts/services-networking/service/) diff --git a/deploy/k8s/conf_cloud.yaml b/deploy/k8s/conf_cloud.yaml deleted file mode 100644 index a914105aed..0000000000 --- a/deploy/k8s/conf_cloud.yaml +++ /dev/null @@ -1,34 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: externalcfg - labels: - app: eshop -data: -# Basket.API entries - basket__ConnectionString: REDIS CONNECTION STRING FOR BASKET -# Catalog.API entries - catalog__ConnectionString: Catalog SQL SERVER CONNECTION STRING (Server=xxxx;Intial Catalog=yyy;....) -# Identity.API entries - IdentitySqlDb: Identity SQL SERVER CONNECTION STRING (Server=xxxx;Intial Catalog=yyy;....) -# Locations.API entries - LocationsBus: CONNECTION_STRING (NAME OF RABBITMQ CONTAINER OR Endpoint=sb://XXXX for topic in case of using Azure) - LocationsNoSqlDb: Locations MongoDb ConnectionString - LocationsNoSqlDbName: Locations MongoDb database (LocationsDb) -# Marketing.API entries - MarketingBus: CONNECTION_STRING (NAME OF RABBITMQ CONTAINER OR Endpoint=sb://XXXX for topic in case of using Azure) - MarketingNoSqlDb: Marketing MongoDb ConnectionString - MarketingNoSqlDbName: Marketing MongoDb database (MarketingDb) - MarketingSqlDb: Marketing SQL SERVER CONNECTION STRING (Server=xxxx;Intial Catalog=yyy;....) -# Ordering.API entries - OrderingBus: CONNECTION_STRING (NAME OF RABBITMQ CONTAINER OR Endpoint=sb://XXXX for topic in case of using Azure) - OrderingSqlDb: Ordering SQL SERVER CONNECTION STRING (Server=xxxx;Intial Catalog=yyy;....) - GracePeriodManager_GracePeriodTime: "1" - GracePeriodManager_CheckUpdateTime: "15000" -# Payment.API entries - PaymentBus: CONNECTION_STRING (NAME OF RABBITMQ CONTAINER OR Endpoint=sb://XXXX for topic in case of using Azure) -# Global entries - all_UseAzureServiceBus: "TRUE" IF USE AZURE SB ("FALSE" FOR USING RABBITMQ) - keystore: REDIS CONNECTION STRING FOR KEYSTORE - all_EventBusConnection: CONNECTION_STRING (NAME OF RABBITMQ CONTAINER OR Endpoint=sb://XXXX in case of using Azure) - all_InstrumentationKey: APPINSIGHTS KEY diff --git a/deploy/k8s/conf_local.yaml b/deploy/k8s/conf_local.yaml deleted file mode 100644 index 615754bcfc..0000000000 --- a/deploy/k8s/conf_local.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: externalcfg - labels: - app: eshop -data: - basket__ConnectionString: basket-data - catalog__ConnectionString: Server=sql-data;Initial Catalog=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word; - catalog__AzureStorageEnabled: "False" - identity__ConnectionString: Server=sql-data;Initial Catalog=Microsoft.eShopOnContainers.Services.IdentityDb;User Id=sa;Password=Pass@word; - locations__ConnectionString: mongodb://nosql-data - locations__Database: LocationsDb - marketing__MongoConnectionString: mongodb://nosql-data - marketing__MongoDatabase: MarketingDb - marketing__ConnectionString: Server=sql-data;Initial Catalog=Microsoft.eShopOnContainers.Services.MarketingDb;User Id=sa;Password=Pass@word; - ordering__ConnectionString: Server=sql-data;Initial Catalog=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word; - keystore: keystore-data - GracePeriodManager__GracePeriodTime: "1" - GracePeriodManager__CheckUpdateTime: "15000" - all__EventBusConnection: rabbitmq - all__InstrumentationKey: "" - all__EnableLoadTest: "False" - all__UseAzureServiceBus: "False" - - - diff --git a/deploy/k8s/deploy-ingress-azure.ps1 b/deploy/k8s/deploy-ingress-azure.ps1 deleted file mode 100644 index d0ff702df0..0000000000 --- a/deploy/k8s/deploy-ingress-azure.ps1 +++ /dev/null @@ -1 +0,0 @@ -kubectl apply -f nginx-ingress\cloud-generic.yaml \ No newline at end of file diff --git a/deploy/k8s/deploy-ingress-dockerlocal.ps1 b/deploy/k8s/deploy-ingress-dockerlocal.ps1 deleted file mode 100644 index 04ffad7637..0000000000 --- a/deploy/k8s/deploy-ingress-dockerlocal.ps1 +++ /dev/null @@ -1,2 +0,0 @@ -kubectl apply -f nginx-ingress\cm.yaml -kubectl apply -f nginx-ingress\cloud-generic.yaml \ No newline at end of file diff --git a/deploy/k8s/deploy-ingress.ps1 b/deploy/k8s/deploy-ingress.ps1 deleted file mode 100644 index 37abcbee20..0000000000 --- a/deploy/k8s/deploy-ingress.ps1 +++ /dev/null @@ -1,5 +0,0 @@ -# Deploy nginx-ingress core files -kubectl apply -f nginx-ingress\mandatory.yaml - - - diff --git a/deploy/k8s/deploy-nodeports.ps1 b/deploy/k8s/deploy-nodeports.ps1 deleted file mode 100644 index a10462b0b2..0000000000 --- a/deploy/k8s/deploy-nodeports.ps1 +++ /dev/null @@ -1,2 +0,0 @@ -kubectl apply -f .\nodeports\rabbitmq-admin.yaml -kubectl apply -f .\nodeports\sql-services.yaml diff --git a/deploy/k8s/deploy.ps1 b/deploy/k8s/deploy.ps1 deleted file mode 100644 index 6a44a4b12d..0000000000 --- a/deploy/k8s/deploy.ps1 +++ /dev/null @@ -1,212 +0,0 @@ -Param( - [parameter(Mandatory=$false)][string]$registry, - [parameter(Mandatory=$false)][string]$dockerUser, - [parameter(Mandatory=$false)][string]$dockerPassword, - [parameter(Mandatory=$false)][string]$execPath, - [parameter(Mandatory=$false)][string]$kubeconfigPath, - [parameter(Mandatory=$true)][string]$configFile, - [parameter(Mandatory=$false)][string]$imageTag, - [parameter(Mandatory=$false)][bool]$deployCI=$false, - [parameter(Mandatory=$false)][bool]$buildImages=$true, - [parameter(Mandatory=$false)][bool]$pushImages=$true, - [parameter(Mandatory=$false)][bool]$deployInfrastructure=$true, - [parameter(Mandatory=$false)][string]$dockerOrg="eshop" -) - -function ExecKube($cmd) { - if($deployCI) { - $kubeconfig = $kubeconfigPath + 'config'; - $exp = $execPath + 'kubectl ' + $cmd + ' --kubeconfig=' + $kubeconfig - Invoke-Expression $exp - } - else{ - $exp = $execPath + 'kubectl ' + $cmd - Invoke-Expression $exp - } -} - -# Initialization -$debugMode = $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent -$useDockerHub = [string]::IsNullOrEmpty($registry) - -$externalDns = & ExecKube -cmd 'get svc ingress-nginx -n ingress-nginx -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"' -Write-Host "Ingress ip detected: $externalDns" -ForegroundColor Yellow - -if (-not [bool]($externalDns -as [ipaddress])) { - Write-Host "Must install ingress first" -ForegroundColor Red - Write-Host "Run deploy-ingress.ps1 and deploy-ingress-azure.ps1" -ForegroundColor Red - exit -} - - -# Check required commands (only if not in CI environment) -if(-not $deployCI) { - $requiredCommands = ("docker", "docker-compose", "kubectl") - foreach ($command in $requiredCommands) { - if ((Get-Command $command -ErrorAction SilentlyContinue) -eq $null) { - Write-Host "$command must be on path" -ForegroundColor Red - exit - } - } -} -else { - $buildImages = false; # Never build images through CI, as they previously built -} - -# Get tag to use from current branch if no tag is passed -if ([string]::IsNullOrEmpty($imageTag)) { - $imageTag = $(git rev-parse --abbrev-ref HEAD) -} -Write-Host "Docker image Tag: $imageTag" -ForegroundColor Yellow - -# building docker images if needed -if ($buildImages) { - Write-Host "Building Docker images tagged with '$imageTag'" -ForegroundColor Yellow - $env:TAG=$imageTag - docker-compose -p .. -f ../docker-compose.yml build -} - -if ($pushImages) { - Write-Host "Pushing images to $registry/$dockerOrg..." -ForegroundColor Yellow - $services = ("basket.api", "catalog.api", "identity.api", "ordering.api", "ordering.backgroundtasks", "marketing.api","payment.api","locations.api", "webmvc", "webspa", "webstatus", "ocelotapigw", "mobileshoppingagg", "webshoppingagg", "ordering.signalrhub") - - foreach ($service in $services) { - $imageFqdn = if ($useDockerHub) {"$dockerOrg/${service}"} else {"$registry/$dockerOrg/${service}"} - docker tag eshop/${service}:$imageTag ${imageFqdn}:$imageTag - docker push ${imageFqdn}:$imageTag - } -} - -# if we have login/pwd add the secret to k8s -if (-not [string]::IsNullOrEmpty($dockerUser)) { - $registryFDQN = if (-not $useDockerHub) {$registry} else {"index.docker.io/v1/"} - - Write-Host "Logging in to $registryFDQN as user $dockerUser" -ForegroundColor Yellow - if ($useDockerHub) { - docker login -u $dockerUser -p $dockerPassword - } - else { - docker login -u $dockerUser -p $dockerPassword $registryFDQN - } - - if (-not $LastExitCode -eq 0) { - Write-Host "Login failed" -ForegroundColor Red - exit - } - - # Try to delete the Docker registry key secret - ExecKube -cmd 'delete secret docker-registry registry-key' - - # Create the Docker registry key secret - ExecKube -cmd 'create secret docker-registry registry-key ` - --docker-server=$registryFDQN ` - --docker-username=$dockerUser ` - --docker-password=$dockerPassword ` - --docker-email=not@used.com' -} - -# Removing previous services & deployments -Write-Host "Removing existing services & deployments.." -ForegroundColor Yellow -ExecKube -cmd 'delete deployments --all' -ExecKube -cmd 'delete services --all' -ExecKube -cmd 'delete configmap internalurls' -ExecKube -cmd 'delete configmap urls' -ExecKube -cmd 'delete configmap externalcfg' -ExecKube -cmd 'delete configmap ocelot' -ExecKube -cmd 'delete -f ingress.yaml' - -# start sql, rabbitmq, frontend deployments -if ($deployInfrastructure) { - Write-Host 'Deploying infrastructure deployments (databases, redis, RabbitMQ...)' -ForegroundColor Yellow - ExecKube -cmd 'create -f sql-data.yaml -f basket-data.yaml -f keystore-data.yaml -f rabbitmq.yaml -f nosql-data.yaml' -} - - -Write-Host 'Deploying ocelot APIGW' -ForegroundColor Yellow - -ExecKube "create configmap ocelot --from-file=mm=ocelot/configuration-mobile-marketing.json --from-file=ms=ocelot/configuration-mobile-shopping.json --from-file=wm=ocelot/configuration-web-marketing.json --from-file=ws=ocelot/configuration-web-shopping.json " -ExecKube -cmd "apply -f ocelot/deployment.yaml" -ExecKube -cmd "apply -f ocelot/service.yaml" - -Write-Host 'Deploying code deployments (Web APIs, Web apps, ...)' -ForegroundColor Yellow -ExecKube -cmd 'create -f services.yaml' - -ExecKube -cmd 'create -f internalurls.yaml' -ExecKube -cmd 'create configmap urls ` - --from-literal=PicBaseUrl=http://$($externalDns)/webshoppingapigw/c/api/v1/catalog/items/[0]/pic/ ` - --from-literal=Marketing_PicBaseUrl=http://$($externalDns)/webmarketingapigw/m/api/v1/campaigns/[0]/pic/ ` - --from-literal=mvc_e=http://$($externalDns)/webmvc ` - --from-literal=marketingapigw_e=http://$($externalDns)/webmarketingapigw ` - --from-literal=webshoppingapigw_e=http://$($externalDns)/webshoppingapigw ` - --from-literal=mobileshoppingagg_e=http://$($externalDns)/mobileshoppingagg ` - --from-literal=webshoppingagg_e=http://$($externalDns)/webshoppingagg ` - --from-literal=identity_e=http://$($externalDns)/identity ` - --from-literal=spa_e=http://$($externalDns) ` - --from-literal=locations_e=http://$($externalDns)/locations-api ` - --from-literal=marketing_e=http://$($externalDns)/marketing-api ` - --from-literal=basket_e=http://$($externalDns)/basket-api ` - --from-literal=ordering_e=http://$($externalDns)/ordering-api ` - --from-literal=xamarin_callback_e=http://$($externalDns)/xamarincallback' - -ExecKube -cmd 'label configmap urls app=eshop' - -Write-Host "Deploying configuration from $configFile" -ForegroundColor Yellow -ExecKube -cmd "create -f $configFile" - -Write-Host "Creating deployments..." -ForegroundColor Yellow -ExecKube -cmd 'create -f deployments.yaml' - -# update deployments with the correct image (with tag and/or registry) -$registryPath = "" -if (-not [string]::IsNullOrEmpty($registry)) { - $registryPath = "$registry/" -} - -Write-Host "Update Image containers to use prefix '$registry$dockerOrg' and tag '$imageTag'" -ForegroundColor Yellow - -ExecKube -cmd 'set image deployments/basket basket=${registryPath}${dockerOrg}/basket.api:$imageTag' -ExecKube -cmd 'set image deployments/catalog catalog=${registryPath}${dockerOrg}/catalog.api:$imageTag' -ExecKube -cmd 'set image deployments/identity identity=${registryPath}${dockerOrg}/identity.api:$imageTag' -ExecKube -cmd 'set image deployments/ordering ordering=${registryPath}${dockerOrg}/ordering.api:$imageTag' -ExecKube -cmd 'set image deployments/ordering-backgroundtasks ordering-backgroundtasks=${registryPath}${dockerOrg}/ordering.backgroundtasks:$imageTag' -ExecKube -cmd 'set image deployments/marketing marketing=${registryPath}${dockerOrg}/marketing.api:$imageTag' -ExecKube -cmd 'set image deployments/locations locations=${registryPath}${dockerOrg}/locations.api:$imageTag' -ExecKube -cmd 'set image deployments/payment payment=${registryPath}${dockerOrg}/payment.api:$imageTag' -ExecKube -cmd 'set image deployments/webmvc webmvc=${registryPath}${dockerOrg}/webmvc:$imageTag' -ExecKube -cmd 'set image deployments/webstatus webstatus=${registryPath}${dockerOrg}/webstatus:$imageTag' -ExecKube -cmd 'set image deployments/webspa webspa=${registryPath}${dockerOrg}/webspa:$imageTag' -ExecKube -cmd 'set image deployments/ordering-signalrhub ordering-signalrhub=${registryPath}${dockerOrg}/ordering.signalrhub:$imageTag' - -ExecKube -cmd 'set image deployments/mobileshoppingagg mobileshoppingagg=${registryPath}${dockerOrg}/mobileshoppingagg:$imageTag' -ExecKube -cmd 'set image deployments/webshoppingagg webshoppingagg=${registryPath}${dockerOrg}/webshoppingagg:$imageTag' - -ExecKube -cmd 'set image deployments/apigwmm apigwmm=${registryPath}${dockerOrg}/ocelotapigw:$imageTag' -ExecKube -cmd 'set image deployments/apigwms apigwms=${registryPath}${dockerOrg}/ocelotapigw:$imageTag' -ExecKube -cmd 'set image deployments/apigwwm apigwwm=${registryPath}${dockerOrg}/ocelotapigw:$imageTag' -ExecKube -cmd 'set image deployments/apigwws apigwws=${registryPath}${dockerOrg}/ocelotapigw:$imageTag' - -Write-Host "Execute rollout..." -ForegroundColor Yellow -ExecKube -cmd 'rollout resume deployments/basket' -ExecKube -cmd 'rollout resume deployments/catalog' -ExecKube -cmd 'rollout resume deployments/identity' -ExecKube -cmd 'rollout resume deployments/ordering' -ExecKube -cmd 'rollout resume deployments/ordering-backgroundtasks' -ExecKube -cmd 'rollout resume deployments/marketing' -ExecKube -cmd 'rollout resume deployments/locations' -ExecKube -cmd 'rollout resume deployments/payment' -ExecKube -cmd 'rollout resume deployments/webmvc' -ExecKube -cmd 'rollout resume deployments/webstatus' -ExecKube -cmd 'rollout resume deployments/webspa' -ExecKube -cmd 'rollout resume deployments/mobileshoppingagg' -ExecKube -cmd 'rollout resume deployments/webshoppingagg' -ExecKube -cmd 'rollout resume deployments/apigwmm' -ExecKube -cmd 'rollout resume deployments/apigwms' -ExecKube -cmd 'rollout resume deployments/apigwwm' -ExecKube -cmd 'rollout resume deployments/apigwws' -ExecKube -cmd 'rollout resume deployments/ordering-signalrhub' - -Write-Host "Adding/Updating ingress resource..." -ForegroundColor Yellow -ExecKube -cmd 'apply -f ingress.yaml' - -Write-Host "WebSPA is exposed at http://$externalDns, WebMVC at http://$externalDns/webmvc, WebStatus at http://$externalDns/webstatus" -ForegroundColor Yellow - diff --git a/deploy/k8s/deploy.sh b/deploy/k8s/deploy.sh deleted file mode 100644 index 0689c19c1a..0000000000 --- a/deploy/k8s/deploy.sh +++ /dev/null @@ -1,212 +0,0 @@ -#!/usr/bin/env bash - -# http://redsymbol.net/articles/unofficial-bash-strict-mode/ -set -euo pipefail - -# This script is comparable to the PowerShell script deploy.ps1 but to be used from a Mac bash environment. -# There are, however, the following few differences/limitations: - -# It assumes docker/container registry login was already performed -# It assumes K8s was given access to the registry—does not create any K8s secrets -# It does not support explicit kubectl config file (relies on kubectl config use-context to point kubectl at the right cluster/namespace) -# It always deploys infrastructure bits (redis, SQL Server etc) -# The script was tested only with Azure Container Registry (not Docker Hub, although it is expected to work with Docker Hub too) - -# Feel free to submit a PR in order to improve it. - -usage() -{ - cat < - Specifies container registry (ACR) to use (required), e.g. myregistry.azurecr.io - -t | --tag - Default: newly created, date-based timestamp, with 1-minute resolution - -b | --build-solution - Force solution build before deployment (default: false) - --skip-image-build - Do not build images (default is to build all images) - --skip-image-push - Do not upload images to the container registry (just run the Kubernetes deployment portion) - Default is to push images to container registry - -h | --help - Displays this help text and exits the script - -It is assumed that the Kubernetes AKS cluster has been granted access to ACR registry. -For more info see -https://docs.microsoft.com/en-us/azure/container-registry/container-registry-auth-aks - -WARNING! THE SCRIPT WILL COMPLETELY DESTROY ALL DEPLOYMENTS AND SERVICES VISIBLE -FROM THE CURRENT CONFIGURATION CONTEXT. -It is recommended that you create a separate namespace and confguration context -for the eShopOnContainers application, to isolate it from other applications on the cluster. -For more information see https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ -You can use eshop-namespace.yaml file (in the same directory) to create the namespace. - -END -} - -image_tag=$(date '+%Y%m%d%H%M') -build_solution='' -container_registry='' -build_images='yes' -push_images='yes' - -while [[ $# -gt 0 ]]; do - case "$1" in - -r | --registry ) - container_registry="$2"; shift 2 ;; - -t | --tag ) - image_tag="$2"; shift 2 ;; - -b | --build-solution ) - build_solution='yes'; shift ;; - --skip-image-build ) - build_images=''; shift ;; - --skip-image-push ) - push_images=''; shift ;; - -h | --help ) - usage; exit 1 ;; - *) - echo "Unknown option $1" - usage; exit 2 ;; - esac -done - -if [[ ! $container_registry ]]; then - echo 'Container registry must be specified (e.g. myregistry.azurecr.io)' - echo '' - usage - exit 3 -fi - -if [[ $build_solution ]]; then - echo "#################### Building eShopOnContainers solution ####################" - dotnet publish -o obj/Docker/publish ../eShopOnContainers-ServicesAndWebApps.sln -fi - -export TAG=$image_tag - -if [[ $build_images ]]; then - echo "#################### Building eShopOnContainers Docker images ####################" - docker-compose -p .. -f ../docker-compose.yml build - - # Remove temporary images - docker rmi $(docker images -qf "dangling=true") -fi - -if [[ $push_images ]]; then - echo "#################### Pushing images to registry ####################" - services=(basket.api catalog.api identity.api ordering.api marketing.api payment.api locations.api webmvc webspa webstatus) - - for service in "${services[@]}" - do - echo "Pushing image for service $service..." - docker tag "eshop/$service:$image_tag" "$container_registry/$service:$image_tag" - docker push "$container_registry/$service:$image_tag" - done -fi - -echo "#################### Cleaning up old deployment ####################" -kubectl delete deployments --all -kubectl delete services --all -kubectl delete configmap config-files || true -kubectl delete configmap urls || true -kubectl delete configmap externalcfg || true - -echo "#################### Deploying infrastructure components ####################" -kubectl create configmap config-files --from-file=nginx-conf=nginx.conf -kubectl label configmap config-files app=eshop -kubectl create -f sql-data.yaml -f basket-data.yaml -f keystore-data.yaml -f rabbitmq.yaml -f nosql-data.yaml - -echo "#################### Creating application service definitions ####################" -kubectl create -f services.yaml -f frontend.yaml - -echo "#################### Waiting for Azure to provision external IP ####################" - -ip_regex='([0-9]{1,3}\.){3}[0-9]{1,3}' -while true; do - printf "." - frontendUrl=$(kubectl get svc frontend -o=jsonpath="{.status.loadBalancer.ingress[0].ip}") - if [[ $frontendUrl =~ $ip_regex ]]; then - break - fi - sleep 5s -done - -printf "\n" -externalDns=$frontendUrl -echo "Using $externalDns as the external DNS/IP of the K8s cluster" - -echo "#################### Creating application configuration ####################" - -# urls configmap -kubectl create configmap urls \ - "--from-literal=BasketUrl=http://basket" \ - "--from-literal=BasketHealthCheckUrl=http://basket/hc" \ - "--from-literal=CatalogUrl=http://$externalDns/catalog-api" \ - "--from-literal=CatalogHealthCheckUrl=http://catalog/hc" \ - "--from-literal=PicBaseUrl=http://$externalDns/catalog-api/api/v1/catalog/items/[0]/pic/" \ - "--from-literal=Marketing_PicBaseUrl=http://$externalDns/marketing-api/api/v1/campaigns/[0]/pic/" \ - "--from-literal=IdentityUrl=http://$externalDns/identity" \ - "--from-literal=IdentityHealthCheckUrl=http://identity/hc" \ - "--from-literal=OrderingUrl=http://ordering" \ - "--from-literal=OrderingHealthCheckUrl=http://ordering/hc" \ - "--from-literal=MvcClientExternalUrl=http://$externalDns/webmvc" \ - "--from-literal=WebMvcHealthCheckUrl=http://webmvc/hc" \ - "--from-literal=MvcClientOrderingUrl=http://ordering" \ - "--from-literal=MvcClientCatalogUrl=http://catalog" \ - "--from-literal=MvcClientBasketUrl=http://basket" \ - "--from-literal=MvcClientMarketingUrl=http://marketing" \ - "--from-literal=MvcClientLocationsUrl=http://locations" \ - "--from-literal=MarketingHealthCheckUrl=http://marketing/hc" \ - "--from-literal=WebSpaHealthCheckUrl=http://webspa/hc" \ - "--from-literal=SpaClientMarketingExternalUrl=http://$externalDns/marketing-api" \ - "--from-literal=SpaClientOrderingExternalUrl=http://$externalDns/ordering-api" \ - "--from-literal=SpaClientCatalogExternalUrl=http://$externalDns/catalog-api" \ - "--from-literal=SpaClientBasketExternalUrl=http://$externalDns/basket-api" \ - "--from-literal=SpaClientIdentityExternalUrl=http://$externalDns/identity" \ - "--from-literal=SpaClientLocationsUrl=http://$externalDns/locations-api" \ - "--from-literal=LocationsHealthCheckUrl=http://locations/hc" \ - "--from-literal=SpaClientExternalUrl=http://$externalDns" \ - "--from-literal=LocationApiClient=http://$externalDns/locations-api" \ - "--from-literal=MarketingApiClient=http://$externalDns/marketing-api" \ - "--from-literal=BasketApiClient=http://$externalDns/basket-api" \ - "--from-literal=OrderingApiClient=http://$externalDns/ordering-api" \ - "--from-literal=PaymentHealthCheckUrl=http://payment/hc" - -kubectl label configmap urls app=eshop - -# externalcfg configmap -- points to local infrastructure components (rabbitmq, SQL Server etc) -kubectl create -f conf_local.yml - -# Create application pod deployments -kubectl create -f deployments.yaml - -echo "#################### Deploying application pods ####################" - -# update deployments with the correct image (with tag and/or registry) -kubectl set image deployments/basket "basket=$container_registry/basket.api:$image_tag" -kubectl set image deployments/catalog "catalog=$container_registry/catalog.api:$image_tag" -kubectl set image deployments/identity "identity=$container_registry/identity.api:$image_tag" -kubectl set image deployments/ordering "ordering=$container_registry/ordering.api:$image_tag" -kubectl set image deployments/marketing "marketing=$container_registry/marketing.api:$image_tag" -kubectl set image deployments/locations "locations=$container_registry/locations.api:$image_tag" -kubectl set image deployments/payment "payment=$container_registry/payment.api:$image_tag" -kubectl set image deployments/webmvc "webmvc=$container_registry/webmvc:$image_tag" -kubectl set image deployments/webstatus "webstatus=$container_registry/webstatus:$image_tag" -kubectl set image deployments/webspa "webspa=$container_registry/webspa:$image_tag" - -kubectl rollout resume deployments/basket -kubectl rollout resume deployments/catalog -kubectl rollout resume deployments/identity -kubectl rollout resume deployments/ordering -kubectl rollout resume deployments/marketing -kubectl rollout resume deployments/locations -kubectl rollout resume deployments/payment -kubectl rollout resume deployments/webmvc -kubectl rollout resume deployments/webstatus -kubectl rollout resume deployments/webspa - -echo "WebSPA is exposed at http://$externalDns, WebMVC at http://$externalDns/webmvc, WebStatus at http://$externalDns/webstatus" -echo "eShopOnContainers deployment is DONE" diff --git a/deploy/k8s/img/blob_creation.png b/deploy/k8s/img/blob_creation.png deleted file mode 100644 index a9e386eadca24830e9ec9d985fc7820108a4f5a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26340 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 diff --git a/deploy/k8s/img/get_kubectlconfig_task.png b/deploy/k8s/img/get_kubectlconfig_task.png deleted file mode 100644 index 594e68ba7bd42e82051233847ac468c7b8681a27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31190 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 diff --git a/deploy/k8s/internalurls.yaml b/deploy/k8s/internalurls.yaml deleted file mode 100644 index df317b5d59..0000000000 --- a/deploy/k8s/internalurls.yaml +++ /dev/null @@ -1,33 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: internalurls - labels: - app: eshop -data: -# Internal Services & healthchecks - basket: http://basket - basket__hc: http://basket/hc - catalog: http://catalog - catalog__hc: http://catalog/hc - identity: http://identity - identity__hc: http://identity/hc - ordering: http://ordering - ordering__hc: http://ordering/hc - ordering-background: http://ordering-background - ordering-background__hc: http://ordering-background/hc - marketing: http://marketing - marketing__hc: http://marketing/hc - locations: http://locations - locations__hc: http://locations/hc - payment__hc: http://payment/hc - mvc__hc: http://webmvc/hc - spa__hc: http://webspa/hc -# Aggreggators - mobileshoppingagg: http://mobileshoppingagg - webshoppingagg: http://webshoppingagg -# API GWs - apigwmm: http://ocelotapigw-mm - apigwms: http://ocelotapigw-ms - apigwwm: http://ocelotapigw-wm - apigwws: http://ocelotapigw-ws \ No newline at end of file diff --git a/deploy/k8s/nginx-ingress/mandatory-istio.yaml b/deploy/k8s/nginx-ingress/mandatory-istio.yaml deleted file mode 100644 index 56b1cc3b5b..0000000000 --- a/deploy/k8s/nginx-ingress/mandatory-istio.yaml +++ /dev/null @@ -1,238 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: ingress-nginx - ---- - -kind: ConfigMap -apiVersion: v1 -metadata: - name: nginx-configuration - namespace: ingress-nginx - labels: - app.kubernetes.io/name: ingress-nginx - app.kubernetes.io/part-of: ingress-nginx - ---- - -apiVersion: v1 -kind: ServiceAccount -metadata: - name: nginx-ingress-serviceaccount - namespace: ingress-nginx - labels: - app.kubernetes.io/name: ingress-nginx - app.kubernetes.io/part-of: ingress-nginx - ---- -apiVersion: rbac.authorization.k8s.io/v1beta1 -kind: ClusterRole -metadata: - name: nginx-ingress-clusterrole - labels: - app.kubernetes.io/name: ingress-nginx - app.kubernetes.io/part-of: ingress-nginx -rules: - - apiGroups: - - "" - resources: - - configmaps - - endpoints - - nodes - - pods - - secrets - verbs: - - list - - watch - - apiGroups: - - "" - resources: - - nodes - verbs: - - get - - apiGroups: - - "" - resources: - - services - verbs: - - get - - list - - watch - - apiGroups: - - "extensions" - resources: - - ingresses - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - events - verbs: - - create - - patch - - apiGroups: - - "extensions" - resources: - - ingresses/status - verbs: - - update - ---- -apiVersion: rbac.authorization.k8s.io/v1beta1 -kind: Role -metadata: - name: nginx-ingress-role - namespace: ingress-nginx - labels: - app.kubernetes.io/name: ingress-nginx - app.kubernetes.io/part-of: ingress-nginx -rules: - - apiGroups: - - "" - resources: - - configmaps - - pods - - secrets - - namespaces - verbs: - - get - - apiGroups: - - "" - resources: - - configmaps - resourceNames: - # Defaults to "-" - # Here: "-" - # This has to be adapted if you change either parameter - # when launching the nginx-ingress-controller. - - "ingress-controller-leader-nginx" - verbs: - - get - - update - - apiGroups: - - "" - resources: - - configmaps - verbs: - - create - - apiGroups: - - "" - resources: - - endpoints - verbs: - - get - ---- -apiVersion: rbac.authorization.k8s.io/v1beta1 -kind: RoleBinding -metadata: - name: nginx-ingress-role-nisa-binding - namespace: ingress-nginx - labels: - app.kubernetes.io/name: ingress-nginx - app.kubernetes.io/part-of: ingress-nginx -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: nginx-ingress-role -subjects: - - kind: ServiceAccount - name: nginx-ingress-serviceaccount - namespace: ingress-nginx - ---- -apiVersion: rbac.authorization.k8s.io/v1beta1 -kind: ClusterRoleBinding -metadata: - name: nginx-ingress-clusterrole-nisa-binding - labels: - app.kubernetes.io/name: ingress-nginx - app.kubernetes.io/part-of: ingress-nginx -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: nginx-ingress-clusterrole -subjects: - - kind: ServiceAccount - name: nginx-ingress-serviceaccount - namespace: ingress-nginx - ---- - -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: nginx-ingress-controller - namespace: ingress-nginx - labels: - app.kubernetes.io/name: ingress-nginx - app.kubernetes.io/part-of: ingress-nginx -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: ingress-nginx - app.kubernetes.io/part-of: ingress-nginx - template: - metadata: - labels: - app.kubernetes.io/name: ingress-nginx - app.kubernetes.io/part-of: ingress-nginx - annotations: - prometheus.io/port: "10254" - prometheus.io/scrape: "true" - spec: - serviceAccountName: nginx-ingress-serviceaccount - containers: - - name: nginx-ingress-controller - image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.20.0 - args: - - /nginx-ingress-controller - - --configmap=$(POD_NAMESPACE)/nginx-configuration - - --publish-service=$(POD_NAMESPACE)/ingress-nginx - - --annotations-prefix=nginx.ingress.kubernetes.io - securityContext: - capabilities: - drop: - - ALL - add: - - NET_BIND_SERVICE - # www-data -> 33 - runAsUser: 33 - env: - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - ports: - - name: http - containerPort: 80 - - name: https - containerPort: 443 - livenessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: 10254 - scheme: HTTP - initialDelaySeconds: 10 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - readinessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: 10254 - scheme: HTTP - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 diff --git a/deploy/k8s/nodeports/rabbitmq-admin.yaml b/deploy/k8s/nodeports/rabbitmq-admin.yaml deleted file mode 100644 index 30d2facf16..0000000000 --- a/deploy/k8s/nodeports/rabbitmq-admin.yaml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: rabbitmq-admin -spec: - type: NodePort - selector: - app: rabbitmq - ports: - - port: 15672 - nodePort: 31672 - name: rabbitmq-port diff --git a/deploy/k8s/nodeports/sql-service.yaml b/deploy/k8s/nodeports/sql-service.yaml deleted file mode 100644 index 7b0233b68e..0000000000 --- a/deploy/k8s/nodeports/sql-service.yaml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: sql-service -spec: - type: NodePort - selector: - app: sql-data - ports: - - port: 1433 - nodePort: 31433 - name: sql-port diff --git a/deploy/k8s/readme.md b/deploy/k8s/readme.md deleted file mode 100644 index 43534d32ec..0000000000 --- a/deploy/k8s/readme.md +++ /dev/null @@ -1,12 +0,0 @@ -# Kubernetes (k8s) deploy information - -This folder contains files needed to **create** a ACS with Kubernetes in Azure and to **deploy** eShopServices in a existing Kubernetes: - -- `gen-k8s-env.ps1` Script to create a ACS with Kubernetes in Azure -- `deploy.ps1` Script to deploy eShopOnContainers in a existing k8s - -Refer to file [README.k8s.md](./README.k8s.md) for detailed information - -Refer to file [README.CICD.k8s.md](./README.CICD.k8s.md) for information about how to set a VSTS build for deploying on k8s - -Refer to file [conf-files.md](./conf-files.md) for a brief description of every YAML file in this folder \ No newline at end of file diff --git a/obsolete/cli-linux/build-bits-linux.sh b/obsolete/cli-linux/build-bits-linux.sh deleted file mode 100644 index ac68031e0f..0000000000 --- a/obsolete/cli-linux/build-bits-linux.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash - -declare -x path=$1 - -if [ -z "$path" ]; then - $path="$(pwd)/../src"; - echo -e "\e[33mNo path passed. Will use $path" -fi - -declare -a projectList=( - "$path/Web/WebSPA" - "$path/Services/Catalog/Catalog.API" - "$path/Services/Basket/Basket.API" - "$path/Services/Ordering/Ordering.API" - "$path/Services/Identity/Identity.API" - "$path/Services/Location/Locations.API" - "$path/Services/Marketing/Marketing.API" - "$path/Services/Payment/Payment.API" - "$path/Web/WebMVC" - "$path/Web/WebStatus" -) - -# Build SPA app -# pushd $(pwd)../src/Web/WebSPA -# npm run build:prod - -for project in "${projectList[@]}" -do - echo -e "\e[33mWorking on $path/$project" - echo -e "\e[33m\tRemoving old publish output" - pushd $path/$project - rm -rf obj/Docker/publish - echo -e "\e[33m\tBuilding and publishing $project" - dotnet publish -c Release -o obj/Docker/publish --verbosity quiet - popd -done - -## remove old docker images: -#images=$(docker images --filter=reference="eshop/*" -q) -#if [ -n "$images" ]; then -# docker rm $(docker ps -a -q) -f -# echo "Deleting eShop images in local Docker repo" -# echo $images -# docker rmi $(docker images --filter=reference="eshop/*" -q) -f -#fi - - -# No need to build the images, docker build or docker compose will -# do that using the images and containers defined in the docker-compose.yml file. -# -# \ No newline at end of file diff --git a/obsolete/cli-linux/docker-compose.local.build.yml b/obsolete/cli-linux/docker-compose.local.build.yml deleted file mode 100644 index a05c090893..0000000000 --- a/obsolete/cli-linux/docker-compose.local.build.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: '2' - -services: - ci-build: - image: microsoft/aspnetcore-build-nightly:1.0-1.1 - volumes: - - .:/src - working_dir: /src - command: /bin/bash -c "chmod -x ./cli-linux/build-bits-linux.sh && ./cli-linux/build-bits-linux.sh" - \ No newline at end of file diff --git a/obsolete/cli-linux/prepare-spa-app.sh b/obsolete/cli-linux/prepare-spa-app.sh deleted file mode 100644 index 4227301161..0000000000 --- a/obsolete/cli-linux/prepare-spa-app.sh +++ /dev/null @@ -1,4 +0,0 @@ -# Build SPA app -pushd $(pwd)/src/Web/WebSPA -npm rebuild node-sass -#npm run build:prod diff --git a/obsolete/cli-linux/run.sh b/obsolete/cli-linux/run.sh deleted file mode 100644 index d46f0a0490..0000000000 --- a/obsolete/cli-linux/run.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -docker stop $(docker ps -a -q) -docker rm $(docker ps -a -q) -docker images |grep -v REPOSITORY|awk '{print $1}'|xargs -L1 docker pull -export ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP=$(curl ipinfo.io/ip) -docker-compose -f docker-compose.images.yml -f docker-compose.prod.yml up -d --force-recreate diff --git a/obsolete/cli-mac/build-bits.sh b/obsolete/cli-mac/build-bits.sh deleted file mode 100644 index 8b4917144e..0000000000 --- a/obsolete/cli-mac/build-bits.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh - -# List of microservices here needs to be updated to include all the new microservices (Marketing, etc.) - -projectList=( - "../src/Web/WebMVC" - "../src/Web/WebSPA" - "../src/Services/Identity/Identity.API" - "../src/Services/Catalog/Catalog.API" - "../src/Services/Ordering/Ordering.API" - "../src/Services/Basket/Basket.API" - "../src/Services/Location/Locations.API" - "../src/Services/Marketing/Marketing.API" - "../src/Services/Payment/Payment.API" - "../src/Web/WebStatus" -) - - -pushd $(pwd)/../src/Web/WebSPA -npm install -npm rebuild node-sass -popd - -for project in "${projectList[@]}" -do - echo -e "\e[33mWorking on $(pwd)/$project" - echo -e "\e[33m\tRemoving old publish output" - pushd $(pwd)/$project - rm -rf obj/Docker/publish - echo -e "\e[33m\tBuilding and publishing projects" - dotnet publish -o obj/Docker/publish -c Release - popd -done - -# remove old docker images: -images=$(docker images --filter=reference="eshop/*" -q) -if [ -n "$images" ]; then - docker rm $(docker ps -a -q) -f - echo "Deleting eShop images in local Docker repo" - echo $images - docker rmi $(docker images --filter=reference="eshop/*" -q) -f -fi - -# No need to build the images, docker build or docker compose will -# do that using the images and containers defined in the docker-compose.yml file. -# -# diff --git a/obsolete/cli-windows/build-bits-simple.ps1 b/obsolete/cli-windows/build-bits-simple.ps1 deleted file mode 100644 index 008f4f599c..0000000000 --- a/obsolete/cli-windows/build-bits-simple.ps1 +++ /dev/null @@ -1,17 +0,0 @@ -# This approach still has issues, but would be the simplest approach for this script -# See: https://github.com/dotnet/eShopOnContainers/issues/74 - -Param([string] $rootPath) -$scriptPath = Split-Path $script:MyInvocation.MyCommand.Path - -Write-Host "Current script directory is $scriptPath" -ForegroundColor Yellow - -if ([string]::IsNullOrEmpty($rootPath)) { - $rootPath = "$scriptPath\.." -} -Write-Host "Root path used is $rootPath" -ForegroundColor Yellow - -$SolutionFilePath = [IO.Path]::Combine($rootPath, "eShopOnContainers-ServicesAndWebApps.sln") - -dotnet publish $SolutionFilePath -c Release -o .\obj\Docker\publish - diff --git a/obsolete/cli-windows/build-bits.ps1 b/obsolete/cli-windows/build-bits.ps1 deleted file mode 100644 index 3b3d8da3fd..0000000000 --- a/obsolete/cli-windows/build-bits.ps1 +++ /dev/null @@ -1,59 +0,0 @@ -Param([string] $rootPath) -$scriptPath = Split-Path $script:MyInvocation.MyCommand.Path - -Write-Host "Current script directory is $scriptPath" -ForegroundColor Yellow - -if ([string]::IsNullOrEmpty($rootPath)) { - $rootPath = "$scriptPath\.." -} -Write-Host "Root path used is $rootPath" -ForegroundColor Yellow - -workflow BuildAndPublish { - param ([string] $rootPath - ) -$projectPaths = - @{Path="$rootPath\src\Web\WebMVC";Prj="WebMVC.csproj"}, - @{Path="$rootPath\src\Web\WebSPA";Prj="WebSPA.csproj"}, - @{Path="$rootPath\src\Services\Identity\Identity.API";Prj="Identity.API.csproj"}, - @{Path="$rootPath\src\Services\Catalog\Catalog.API";Prj="Catalog.API.csproj"}, - @{Path="$rootPath\src\Services\Ordering\Ordering.API";Prj="Ordering.API.csproj"}, - @{Path="$rootPath\src\Services\Basket\Basket.API";Prj="Basket.API.csproj"}, - @{Path="$rootPath\src\Services\Location\Locations.API";Prj="Locations.API.csproj"}, - @{Path="$rootPath\src\Services\Marketing\Marketing.API";Prj="Marketing.API.csproj"}, - @{Path="$rootPath\src\Services\Payment\Payment.API";Prj="Payment.API.csproj"}, - @{Path="$rootPath\src\Web\WebStatus";Prj="WebStatus.csproj"} - - foreach -parallel ($item in $projectPaths) { - $projectPath = $item.Path - $projectFile = $item.Prj - $outPath = $item.Path + "\obj\Docker\publish" - $projectPathAndFile = "$projectPath\$projectFile" - #Write-Host "Deleting old publish files in $outPath" -ForegroundColor Yellow - remove-item -path $outPath -Force -Recurse -ErrorAction SilentlyContinue - #Write-Host "Publishing $projectPathAndFile to $outPath" -ForegroundColor Yellow - dotnet publish $projectPathAndFile -o $outPath -c Release - } -} - -BuildAndPublish $rootPath - -######################################################################################## -# Delete old eShop Docker images -######################################################################################## - -$imagesToDelete = docker images --filter=reference="eshop/*" -q - -If (-Not $imagesToDelete) {Write-Host "Not deleting eShop images as there are no eShop images in the current local Docker repo."} -Else -{ - # Delete all containers - Write-Host "Deleting all containers in local Docker Host" - docker rm $(docker ps -a -q) -f - - # Delete all eshop images - Write-Host "Deleting eShop images in local Docker repo" - Write-Host $imagesToDelete - docker rmi $(docker images --filter=reference="eshop/*" -q) -f -} - -# WE DON'T NEED DOCKER BUILD AS WE CAN RUN "DOCKER-COMPOSE BUILD" OR "DOCKER-COMPOSE UP" AND IT WILL BUILD ALL THE IMAGES IN THE .YML FOR US diff --git a/obsolete/cli-windows/build-images.ps1 b/obsolete/cli-windows/build-images.ps1 deleted file mode 100644 index bfd6e478bf..0000000000 --- a/obsolete/cli-windows/build-images.ps1 +++ /dev/null @@ -1,11 +0,0 @@ -Param([string] $imageTag) - -$scriptPath = Split-Path $script:MyInvocation.MyCommand.Path - -if ([string]::IsNullOrEmpty($imageTag)) { - $imageTag = $(git rev-parse --abbrev-ref HEAD) -} - -Write-Host "Building images with tag $imageTag" -ForegroundColor Yellow -$env:TAG=$imageTag -docker-compose -f "$scriptPath\..\docker-compose.yml" -f "$scriptPath\..\docker-compose.windows.yml" build \ No newline at end of file diff --git a/obsolete/cli-windows/delete-images.ps1 b/obsolete/cli-windows/delete-images.ps1 deleted file mode 100644 index 954faa37d2..0000000000 --- a/obsolete/cli-windows/delete-images.ps1 +++ /dev/null @@ -1,27 +0,0 @@ -$imagesToDelete = docker images --filter=reference="eshop/*" -q - -If (-Not $imagesToDelete) {Write-Host "Not deleting eShop images as there are no eShop images in the current local Docker repo."} -Else -{ - # Delete all containers - Write-Host "Deleting all containers in local Docker Host" - docker rm $(docker ps -a -q) -f - - # Delete all eshop images - Write-Host "Deleting eShop images in local Docker repo" - Write-Host $imagesToDelete - docker rmi $(docker images --filter=reference="eshop/*" -q) -f -} - - -# DELETE ALL IMAGES AND CONTAINERS - -# Delete all containers -# docker rm $(docker ps -a -q) -f - -# Delete all images -# docker rmi $(docker images -q) - -#Filter by image name (Has to be complete, cannot be a wildcard) -#docker ps -q --filter=ancestor=eshop/identity.api:dev - diff --git a/obsolete/cli-windows/delete-vs-and-eshop-images.ps1 b/obsolete/cli-windows/delete-vs-and-eshop-images.ps1 deleted file mode 100644 index f37dc6ea4c..0000000000 --- a/obsolete/cli-windows/delete-vs-and-eshop-images.ps1 +++ /dev/null @@ -1,46 +0,0 @@ - # Delete all containers - Write-Host "Deleting all running containers in the local Docker Host" - docker rm $(docker ps -a -q) -f - -$eShopImagesToDelete = docker images --filter=reference="eshop/*" -q -If (-Not $eShopImagesToDelete) {Write-Host "Not deleting eShop images as there are no eShop images in the current local Docker repo."} -Else -{ - # Delete all eshop images - Write-Host "Deleting eShop images in local Docker repo" - Write-Host $eShopImagesToDelete - docker rmi $(docker images --filter=reference="eshop/*" -q) -f -} - -$VSImagesToDelete = docker images --filter=reference="catalog.api:dev" -q -If (-Not $VSImagesToDelete) {Write-Host "Not deleting VS images as there are no VS images in the current local Docker repo."} -Else -{ - # Delete all eshop images - Write-Host "Deleting images created by VS in local Docker repo" - Write-Host $VSImagesToDelete - docker rmi $(docker images --filter=reference="*:dev" -q) -f - - #docker rmi $(docker images --filter=reference="eshop/payment.api:dev" -q) -f - #docker rmi $(docker images --filter=reference="eshop/webspa:dev" -q) -f - #docker rmi $(docker images --filter=reference="eshop/webmvc:dev" -q) -f - #docker rmi $(docker images --filter=reference="eshop/catalog.api:dev" -q) -f - #docker rmi $(docker images --filter=reference="eshop/marketing.api:dev" -q) -f - #docker rmi $(docker images --filter=reference="eshop/ordering.api:dev" -q) -f - #docker rmi $(docker images --filter=reference="eshop/basket.api:dev" -q) -f - #docker rmi $(docker images --filter=reference="eshop/identity.api:dev" -q) -f - #docker rmi $(docker images --filter=reference="eshop/locations.api:dev" -q) -f - #docker rmi $(docker images --filter=reference="eshop/webstatus:dev" -q) -f -} - -# DELETE ALL IMAGES AND CONTAINERS - -# Delete all containers -# docker rm $(docker ps -a -q) -f - -# Delete all images -# docker rmi $(docker images -q) - -#Filter by image name (Has to be complete, cannot be a wildcard) -#docker ps -q --filter=ancestor=eshop/identity.api:dev - diff --git a/obsolete/cli-windows/start-external.ps1 b/obsolete/cli-windows/start-external.ps1 deleted file mode 100644 index 514b7af7fa..0000000000 --- a/obsolete/cli-windows/start-external.ps1 +++ /dev/null @@ -1,11 +0,0 @@ -Param([string] $rootPath) -$scriptPath = Split-Path $script:MyInvocation.MyCommand.Path - -Write-Host "Current script directory is $scriptPath" -ForegroundColor Yellow - -if ([string]::IsNullOrEmpty($rootPath)) { - $rootPath = "$scriptPath\.." -} -Write-Host "Root path used is $rootPath" -ForegroundColor Yellow - -docker-compose -f "$rootPath\docker-compose-external.yml" -f "$rootPath\docker-compose-external.override.yml" up diff --git a/obsolete/cli-windows/start-windows-containers.ps1 b/obsolete/cli-windows/start-windows-containers.ps1 deleted file mode 100644 index 31e2653223..0000000000 --- a/obsolete/cli-windows/start-windows-containers.ps1 +++ /dev/null @@ -1,33 +0,0 @@ -# rootPath: Root path of the repo (where docker-compose*.yml are). If not passed ../cli-windows/ is assumed -# buildBits: If the projects must be built before. Default value: $true -# customEventBusLoginPassword: If a custom RabbitMQ image is used that do not use the default user login/pwd. Default: $false (means assume use default spring2/rabbitmq image) - -Param( - [parameter(Mandatory=$false)][string] $rootPath, - [parameter(Mandatory=$false)][bool] $customEventBusLoginPassword=$false, - [parameter(Mandatory=$false)][bool]$buildBits=$false -) - -$scriptPath = Split-Path $script:MyInvocation.MyCommand.Path -if ([string]::IsNullOrEmpty($rootPath)) { - $rootPath = "$scriptPath\.." -} -Write-Host "Root path used is $rootPath" -ForegroundColor Yellow - - -if ($buildBits) { - & $scriptPath\build-bits.ps1 -rootPath $rootPath -} - - -$env:ESHOP_EXTERNAL_DNS_NAME_OR_IP = "10.0.75.1" -$env:ESHOP_AZURE_STORAGE_CATALOG_URL ="http://10.0.75.1:5101/api/v1/catalog/items/[0]/pic/" -$env:ESHOP_AZURE_STORAGE_MARKETING_URL ="http://10.0.75.1:5110/api/v1/campaigns/[0]/pic/" -$env:ESHOP_OCELOT_VOLUME_SPEC ="C:\app\configuration" - -if (-Not $customEventBusLoginPassword) { - docker-compose -f "$rootPath\docker-compose.yml" -f "$rootPath\docker-compose.override.yml" -f "$rootPath\docker-compose.windows.yml" -f "$rootPath\docker-compose.override.windows.yml" up -} -else { - docker-compose -f "$rootPath\docker-compose.yml" -f "$rootPath\docker-compose.override.yml" -f "$rootPath\docker-compose.windows.yml" up -} diff --git a/obsolete/cli-windows/vsts/build-bits-no-parallel.ps1 b/obsolete/cli-windows/vsts/build-bits-no-parallel.ps1 deleted file mode 100644 index 4344bdcc81..0000000000 --- a/obsolete/cli-windows/vsts/build-bits-no-parallel.ps1 +++ /dev/null @@ -1,56 +0,0 @@ -Param([string] $rootPath) -$scriptPath = Split-Path $script:MyInvocation.MyCommand.Path - -Write-Host "Current script directory is $scriptPath" -ForegroundColor Yellow - -if ([string]::IsNullOrEmpty($rootPath)) { - $rootPath = "$scriptPath\..\.." -} -Write-Host "Root path used is $rootPath" -ForegroundColor Yellow - - -$projectPaths = - @{Path="$rootPath\src\Web\WebMVC";Prj="WebMVC.csproj"}, - @{Path="$rootPath\src\Web\WebSPA";Prj="WebSPA.csproj"}, - @{Path="$rootPath\src\Services\Identity\Identity.API";Prj="Identity.API.csproj"}, - @{Path="$rootPath\src\Services\Catalog\Catalog.API";Prj="Catalog.API.csproj"}, - @{Path="$rootPath\src\Services\Ordering\Ordering.API";Prj="Ordering.API.csproj"}, - @{Path="$rootPath\src\Services\Basket\Basket.API";Prj="Basket.API.csproj"}, - @{Path="$rootPath\src\Services\Location\Locations.API";Prj="Locations.API.csproj"}, - @{Path="$rootPath\src\Services\Marketing\Marketing.API";Prj="Marketing.API.csproj"}, - @{Path="$rootPath\src\Services\Payment\Payment.API";Prj="Payment.API.csproj"}, - @{Path="$rootPath\src\Web\WebStatus";Prj="WebStatus.csproj"} - -$projectPaths | foreach { - $projectPath = $_.Path - $projectFile = $_.Prj - $outPath = $_.Path + "\obj\Docker\publish" - $projectPathAndFile = "$projectPath\$projectFile" - Write-Host "Deleting old publish files in $outPath" -ForegroundColor Yellow - remove-item -path $outPath -Force -Recurse -ErrorAction SilentlyContinue - Write-Host "Publishing $projectPathAndFile to $outPath" -ForegroundColor Yellow - dotnet restore $projectPathAndFile - dotnet build $projectPathAndFile - dotnet publish $projectPathAndFile -o $outPath - } - -######################################################################################## -# Delete old eShop Docker images -######################################################################################## - -$imagesToDelete = docker images --filter=reference="eshop/*" -q - -If (-Not $imagesToDelete) {Write-Host "Not deleting eShop images as there are no eShop images in the current local Docker repo."} -Else -{ - # Delete all containers - Write-Host "Deleting all containers in local Docker Host" - docker rm $(docker ps -a -q) -f - - # Delete all eshop images - Write-Host "Deleting eShop images in local Docker repo" - Write-Host $imagesToDelete - docker rmi $(docker images --filter=reference="eshop/*" -q) -f -} - -# WE DON'T NEED DOCKER BUILD AS WE CAN RUN "DOCKER-COMPOSE BUILD" OR "DOCKER-COMPOSE UP" AND IT WILL BUILD ALL THE IMAGES IN THE .YML FOR US From 2e769370a99e99668b029c0792cddff3e0047ee4 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Thu, 21 Nov 2019 10:48:59 +0000 Subject: [PATCH 142/149] Relocate mobile solutions, remove obsolete ones. --- .../Mobile}/eShopOnContainers-Android.sln | 8 +- .../Mobile}/eShopOnContainers-MobileApps.sln | 16 +- .../Mobile}/eShopOnContainers-iOS.sln | 8 +- to-fix/eShopOnContainers-AzureFunctions.sln | 96 - to-fix/eShopOnContainers.sln | 2175 ----------------- 5 files changed, 16 insertions(+), 2287 deletions(-) rename {to-fix => src/Mobile}/eShopOnContainers-Android.sln (97%) rename {to-fix => src/Mobile}/eShopOnContainers-MobileApps.sln (96%) rename {to-fix => src/Mobile}/eShopOnContainers-iOS.sln (96%) delete mode 100644 to-fix/eShopOnContainers-AzureFunctions.sln delete mode 100644 to-fix/eShopOnContainers.sln diff --git a/to-fix/eShopOnContainers-Android.sln b/src/Mobile/eShopOnContainers-Android.sln similarity index 97% rename from to-fix/eShopOnContainers-Android.sln rename to src/Mobile/eShopOnContainers-Android.sln index b3324f5401..1ef76e7728 100644 --- a/to-fix/eShopOnContainers-Android.sln +++ b/src/Mobile/eShopOnContainers-Android.sln @@ -16,9 +16,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile Apps", "Mobile Apps" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{A857AD10-40FF-4303-BEC2-FF1C58D5735E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Core", "src\Mobile\eShopOnContainers\eShopOnContainers.Core\eShopOnContainers.Core.csproj", "{67F9D3A8-F71E-4428-913F-C37AE82CDB24}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Core", "eShopOnContainers\eShopOnContainers.Core\eShopOnContainers.Core.csproj", "{67F9D3A8-F71E-4428-913F-C37AE82CDB24}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Droid", "src\Mobile\eShopOnContainers\eShopOnContainers.Droid\eShopOnContainers.Droid.csproj", "{62DBB163-9CA9-4818-B48B-13233DF37C24}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Droid", "eShopOnContainers\eShopOnContainers.Droid\eShopOnContainers.Droid.csproj", "{62DBB163-9CA9-4818-B48B-13233DF37C24}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared Code", "Shared Code", "{778289CA-31F7-4464-8C2A-612EE846F8A7}" EndProject @@ -26,9 +26,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Targets", "Targets", "{9CC7 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile Apps", "Mobile Apps", "{B7B1D395-4E06-4036-BE86-C216756B9367}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.UnitTests", "src\Mobile\eShopOnContainers\eShopOnContainers.UnitTests\eShopOnContainers.UnitTests.csproj", "{F7B6A162-BC4D-4924-B16A-713F9B0344E7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.UnitTests", "eShopOnContainers\eShopOnContainers.UnitTests\eShopOnContainers.UnitTests.csproj", "{F7B6A162-BC4D-4924-B16A-713F9B0344E7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.Droid", "src\Mobile\eShopOnContainers\eShopOnContainers.TestRunner.Droid\eShopOnContainers.TestRunner.Droid.csproj", "{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.Droid", "eShopOnContainers\eShopOnContainers.TestRunner.Droid\eShopOnContainers.TestRunner.Droid.csproj", "{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/to-fix/eShopOnContainers-MobileApps.sln b/src/Mobile/eShopOnContainers-MobileApps.sln similarity index 96% rename from to-fix/eShopOnContainers-MobileApps.sln rename to src/Mobile/eShopOnContainers-MobileApps.sln index e6b289a53a..04a0fa223f 100644 --- a/to-fix/eShopOnContainers-MobileApps.sln +++ b/src/Mobile/eShopOnContainers-MobileApps.sln @@ -16,11 +16,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile Apps", "Mobile Apps" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{A857AD10-40FF-4303-BEC2-FF1C58D5735E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Droid", "src\Mobile\eShopOnContainers\eShopOnContainers.Droid\eShopOnContainers.Droid.csproj", "{62DBB163-9CA9-4818-B48B-13233DF37C24}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Droid", "eShopOnContainers\eShopOnContainers.Droid\eShopOnContainers.Droid.csproj", "{62DBB163-9CA9-4818-B48B-13233DF37C24}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.iOS", "src\Mobile\eShopOnContainers\eShopOnContainers.iOS\eShopOnContainers.iOS.csproj", "{6EEB23DC-7063-4444-9AF8-90DF24F549C0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.iOS", "eShopOnContainers\eShopOnContainers.iOS\eShopOnContainers.iOS.csproj", "{6EEB23DC-7063-4444-9AF8-90DF24F549C0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Windows", "src\Mobile\eShopOnContainers\eShopOnContainers.Windows\eShopOnContainers.Windows.csproj", "{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Windows", "eShopOnContainers\eShopOnContainers.Windows\eShopOnContainers.Windows.csproj", "{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared Code", "Shared Code", "{778289CA-31F7-4464-8C2A-612EE846F8A7}" EndProject @@ -28,15 +28,15 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Targets", "Targets", "{9CC7 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile Apps", "Mobile Apps", "{B7B1D395-4E06-4036-BE86-C216756B9367}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.Droid", "src\Mobile\eShopOnContainers\eShopOnContainers.TestRunner.Droid\eShopOnContainers.TestRunner.Droid.csproj", "{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.Droid", "eShopOnContainers\eShopOnContainers.TestRunner.Droid\eShopOnContainers.TestRunner.Droid.csproj", "{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.iOS", "src\Mobile\eShopOnContainers\eShopOnContainers.TestRunner.iOS\eShopOnContainers.TestRunner.iOS.csproj", "{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.iOS", "eShopOnContainers\eShopOnContainers.TestRunner.iOS\eShopOnContainers.TestRunner.iOS.csproj", "{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.Windows", "src\Mobile\eShopOnContainers\eShopOnContainers.TestRunner.Windows\eShopOnContainers.TestRunner.Windows.csproj", "{A7337243-33B8-463A-87AD-944B75EFD820}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.Windows", "eShopOnContainers\eShopOnContainers.TestRunner.Windows\eShopOnContainers.TestRunner.Windows.csproj", "{A7337243-33B8-463A-87AD-944B75EFD820}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.UnitTests", "src\Mobile\eShopOnContainers\eShopOnContainers.UnitTests\eShopOnContainers.UnitTests.csproj", "{FDD910BC-DF0F-483D-B7D5-C7D831855172}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.UnitTests", "eShopOnContainers\eShopOnContainers.UnitTests\eShopOnContainers.UnitTests.csproj", "{FDD910BC-DF0F-483D-B7D5-C7D831855172}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Core", "src\Mobile\eShopOnContainers\eShopOnContainers.Core\eShopOnContainers.Core.csproj", "{76C5F2A7-6CD5-49EA-9F33-EC44DE6539C7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Core", "eShopOnContainers\eShopOnContainers.Core\eShopOnContainers.Core.csproj", "{76C5F2A7-6CD5-49EA-9F33-EC44DE6539C7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/to-fix/eShopOnContainers-iOS.sln b/src/Mobile/eShopOnContainers-iOS.sln similarity index 96% rename from to-fix/eShopOnContainers-iOS.sln rename to src/Mobile/eShopOnContainers-iOS.sln index e220e7c4e0..87b7db9ec8 100644 --- a/to-fix/eShopOnContainers-iOS.sln +++ b/src/Mobile/eShopOnContainers-iOS.sln @@ -16,9 +16,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile Apps", "Mobile Apps" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{A857AD10-40FF-4303-BEC2-FF1C58D5735E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Core", "src\Mobile\eShopOnContainers\eShopOnContainers.Core\eShopOnContainers.Core.csproj", "{67F9D3A8-F71E-4428-913F-C37AE82CDB24}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Core", "eShopOnContainers\eShopOnContainers.Core\eShopOnContainers.Core.csproj", "{67F9D3A8-F71E-4428-913F-C37AE82CDB24}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.iOS", "src\Mobile\eShopOnContainers\eShopOnContainers.iOS\eShopOnContainers.iOS.csproj", "{6EEB23DC-7063-4444-9AF8-90DF24F549C0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.iOS", "eShopOnContainers\eShopOnContainers.iOS\eShopOnContainers.iOS.csproj", "{6EEB23DC-7063-4444-9AF8-90DF24F549C0}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared Code", "Shared Code", "{778289CA-31F7-4464-8C2A-612EE846F8A7}" EndProject @@ -26,9 +26,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Targets", "Targets", "{9CC7 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile Apps", "Mobile Apps", "{B7B1D395-4E06-4036-BE86-C216756B9367}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.UnitTests", "src\Mobile\eShopOnContainers\eShopOnContainers.UnitTests\eShopOnContainers.UnitTests.csproj", "{F7B6A162-BC4D-4924-B16A-713F9B0344E7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.UnitTests", "eShopOnContainers\eShopOnContainers.UnitTests\eShopOnContainers.UnitTests.csproj", "{F7B6A162-BC4D-4924-B16A-713F9B0344E7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.iOS", "src\Mobile\eShopOnContainers\eShopOnContainers.TestRunner.iOS\eShopOnContainers.TestRunner.iOS.csproj", "{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.iOS", "eShopOnContainers\eShopOnContainers.TestRunner.iOS\eShopOnContainers.TestRunner.iOS.csproj", "{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/to-fix/eShopOnContainers-AzureFunctions.sln b/to-fix/eShopOnContainers-AzureFunctions.sln deleted file mode 100644 index d129fc0fee..0000000000 --- a/to-fix/eShopOnContainers-AzureFunctions.sln +++ /dev/null @@ -1,96 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26730.8 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Infrastructure", "Infrastructure", "{5B1011EC-CEE5-47AA-B336-99381D573679}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AzureFunctions", "AzureFunctions", "{106B787C-2CFF-4484-8C07-D14589859E94}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "marketing-functions", "src\Services\Marketing\Infrastructure\AzureFunctions\marketing-functions.csproj", "{B363EF31-DD1A-46C8-ADDF-CD30A756E97B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Ad-Hoc|Any CPU = Ad-Hoc|Any CPU - Ad-Hoc|ARM = Ad-Hoc|ARM - Ad-Hoc|iPhone = Ad-Hoc|iPhone - Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator - Ad-Hoc|x64 = Ad-Hoc|x64 - Ad-Hoc|x86 = Ad-Hoc|x86 - AppStore|Any CPU = AppStore|Any CPU - AppStore|ARM = AppStore|ARM - AppStore|iPhone = AppStore|iPhone - AppStore|iPhoneSimulator = AppStore|iPhoneSimulator - AppStore|x64 = AppStore|x64 - AppStore|x86 = AppStore|x86 - Debug|Any CPU = Debug|Any CPU - Debug|ARM = Debug|ARM - Debug|iPhone = Debug|iPhone - Debug|iPhoneSimulator = Debug|iPhoneSimulator - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|ARM = Release|ARM - Release|iPhone = Release|iPhone - Release|iPhoneSimulator = Release|iPhoneSimulator - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.AppStore|ARM.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.AppStore|iPhone.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.AppStore|x64.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.AppStore|x64.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.AppStore|x86.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.AppStore|x86.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Debug|ARM.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Debug|ARM.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Debug|iPhone.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Debug|x64.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Debug|x64.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Debug|x86.ActiveCfg = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Debug|x86.Build.0 = Debug|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Release|Any CPU.Build.0 = Release|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Release|ARM.ActiveCfg = Release|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Release|ARM.Build.0 = Release|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Release|iPhone.ActiveCfg = Release|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Release|iPhone.Build.0 = Release|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Release|x64.ActiveCfg = Release|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Release|x64.Build.0 = Release|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Release|x86.ActiveCfg = Release|Any CPU - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {106B787C-2CFF-4484-8C07-D14589859E94} = {5B1011EC-CEE5-47AA-B336-99381D573679} - {B363EF31-DD1A-46C8-ADDF-CD30A756E97B} = {106B787C-2CFF-4484-8C07-D14589859E94} - EndGlobalSection -EndGlobal diff --git a/to-fix/eShopOnContainers.sln b/to-fix/eShopOnContainers.sln deleted file mode 100644 index 658eb26d7f..0000000000 --- a/to-fix/eShopOnContainers.sln +++ /dev/null @@ -1,2175 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29123.88 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{FEA0C318-FFED-4D39-8781-265718CA43DD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{932D8224-11F6-4D07-B109-DA28AD288A63}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{3AF739CD-81D8-428D-A08A-0A58372DEBF6}" - ProjectSection(SolutionItems) = preProject - Local.testsettings = Local.testsettings - NuGet.config = NuGet.config - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Services", "Services", "{91CF7717-08AB-4E65-B10E-0B426F01E2E8}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web Apps", "Web Apps", "{E279BF0F-7F66-4F3A-A3AB-2CDA66C1CD04}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Catalog", "Catalog", "{326A7FB3-5295-468C-A4FE-67DCB823E1E5}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Basket", "Basket", "{BF3EF4F3-E4F5-41DA-9D2D-57223687D1A8}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Ordering", "Ordering", "{0BD0DB92-2D98-44D9-9AC0-C59186D59B0B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{A857AD10-40FF-4303-BEC2-FF1C58D5735E}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ServicesTests", "ServicesTests", "{EF0337F2-ED00-4643-89FD-EE10863F1870}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Identity", "Identity", "{24CD3B53-141E-4A07-9B0D-796641E1CF78}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.API", "src\Services\Basket\Basket.API\Basket.API.csproj", "{2110CBB0-3B38-4EE4-A743-DF6968D80D90}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.API", "src\Services\Catalog\Catalog.API\Catalog.API.csproj", "{42681D9D-750A-4DF7-BD9F-9292CFD5C253}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.API", "src\Services\Ordering\Ordering.API\Ordering.API.csproj", "{231226CE-690B-4979-8870-9A79D80928E2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.Domain", "src\Services\Ordering\Ordering.Domain\Ordering.Domain.csproj", "{F5598DCB-6DDE-4661-AD9D-A55612DA7E76}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebMVC", "src\Web\WebMVC\WebMVC.csproj", "{F0333D8E-0B27-42B7-B2C6-78F3657624E2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.Infrastructure", "src\Services\Ordering\Ordering.Infrastructure\Ordering.Infrastructure.csproj", "{95F1F07C-4D92-4742-BD07-E5B805AAB651}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Identity.API", "src\Services\Identity\Identity.API\Identity.API.csproj", "{A579E108-5445-403D-A407-339AC4D1611B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebSPA", "src\Web\WebSPA\WebSPA.csproj", "{F16E3C6A-1C94-4EAB-BE91-099618060B68}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BuildingBlocks", "BuildingBlocks", "{DB0EFB20-B024-4E5E-A75C-52143C131D25}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EventBus", "EventBus", "{807BB76E-B2BB-47A2-A57B-3D1B20FF5E7F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventBus", "src\BuildingBlocks\EventBus\EventBus\EventBus.csproj", "{0044B293-1DCC-4224-B948-00CF6DC7F510}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventBusRabbitMQ", "src\BuildingBlocks\EventBus\EventBusRabbitMQ\EventBusRabbitMQ.csproj", "{8088F3FC-6787-45FA-A924-816EC81CBFAC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IntegrationEventLogEF", "src\BuildingBlocks\EventBus\IntegrationEventLogEF\IntegrationEventLogEF.csproj", "{9EE28E45-1533-472B-8267-56C48855BA0E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebStatus", "src\Web\WebStatus\WebStatus.csproj", "{C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Payment", "Payment", "{022E145D-1593-47EE-9608-8E323D3C63F5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Payment.API", "src\Services\Payment\Payment.API\Payment.API.csproj", "{1A01AF82-6FCB-464C-B39C-F127AEBD315D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Location", "Location", "{41139F64-4046-4F16-96B7-D941D96FA9C6}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Locations.API", "src\Services\Location\Locations.API\Locations.API.csproj", "{E7581357-FC34-474C-B8F5-307EE3CE05EF}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Marketing", "Marketing", "{A5260DE0-1FDD-467E-9CC1-A028AB081CEE}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Marketing.API", "src\Services\Marketing\Marketing.API\Marketing.API.csproj", "{DF395F85-B010-465D-857A-7EBCC512C0C2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventBusServiceBus", "src\BuildingBlocks\EventBus\EventBusServiceBus\EventBusServiceBus.csproj", "{69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebHost", "WebHost", "{1815B651-941C-466B-AE33-D1D7EEB8F77F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebHost.Customization", "src\BuildingBlocks\WebHostCustomization\WebHost.Customization\WebHost.Customization.csproj", "{15F4B3AA-89B6-4A0D-9051-414305974781}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile Apps", "Mobile Apps", "{EF3EDC78-E864-43FF-8E80-CF33DD9508A3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared Code", "Shared Code", "{F7B757E3-D3F2-4E60-B183-D67CDEC96F76}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Targets", "Targets", "{2BB81612-8D04-49CD-B17F-38DAB176E583}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "eShopOnContainers.Core", "src\Mobile\eShopOnContainers\eShopOnContainers.Core\eShopOnContainers.Core.csproj", "{BA96A12C-4EE3-46C4-BB3F-F811B554CD01}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Droid", "src\Mobile\eShopOnContainers\eShopOnContainers.Droid\eShopOnContainers.Droid.csproj", "{62DBB163-9CA9-4818-B48B-13233DF37C24}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.iOS", "src\Mobile\eShopOnContainers\eShopOnContainers.iOS\eShopOnContainers.iOS.csproj", "{6EEB23DC-7063-4444-9AF8-90DF24F549C0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Windows", "src\Mobile\eShopOnContainers\eShopOnContainers.Windows\eShopOnContainers.Windows.csproj", "{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile Apps", "Mobile Apps", "{0AAED9FF-3260-43BB-B586-9AAF1E010A90}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "eShopOnContainers.UnitTests", "src\Mobile\eShopOnContainers\eShopOnContainers.UnitTests\eShopOnContainers.UnitTests.csproj", "{6E4285E7-7611-4440-A1B5-3513EBB13807}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.Droid", "src\Mobile\eShopOnContainers\eShopOnContainers.TestRunner.Droid\eShopOnContainers.TestRunner.Droid.csproj", "{A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.iOS", "src\Mobile\eShopOnContainers\eShopOnContainers.TestRunner.iOS\eShopOnContainers.TestRunner.iOS.csproj", "{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.Windows", "src\Mobile\eShopOnContainers\eShopOnContainers.TestRunner.Windows\eShopOnContainers.TestRunner.Windows.csproj", "{A7337243-33B8-463A-87AD-944B75EFD820}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.FunctionalTests", "src\Services\Basket\Basket.FunctionalTests\Basket.FunctionalTests.csproj", "{9F00E62F-E180-4A9C-8794-98A72AFAC2DB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.UnitTests", "src\Services\Basket\Basket.UnitTests\Basket.UnitTests.csproj", "{63417272-1E6A-406A-AD11-C738558D89C0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.FunctionalTests", "src\Services\Catalog\Catalog.FunctionalTests\Catalog.FunctionalTests.csproj", "{56E0E455-731E-41CB-AF46-C1A70F8A140B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.UnitTests", "src\Services\Catalog\Catalog.UnitTests\Catalog.UnitTests.csproj", "{1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Locations.FunctionalTests", "src\Services\Location\Locations.FunctionalTests\Locations.FunctionalTests.csproj", "{4F0E5CB2-5795-4040-8637-1D395914C944}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Marketing.FunctionalTests", "src\Services\Marketing\Marketing.FunctionalTests\Marketing.FunctionalTests.csproj", "{22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.FunctionalTests", "src\Services\Ordering\Ordering.FunctionalTests\Ordering.FunctionalTests.csproj", "{5A155B15-D8E7-47FE-8D17-8E641726158C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.UnitTests", "src\Services\Ordering\Ordering.UnitTests\Ordering.UnitTests.csproj", "{0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoadTest", "test\ServicesTests\LoadTest\LoadTest.csproj", "{969E793C-C413-490E-9C9D-B2B46DA5AF32}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Application.FunctionalTests", "test\ServicesTests\Application.FunctionalTests\Application.FunctionalTests.csproj", "{3572B4E2-4399-4797-B5C2-3720D870E0C3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{7BA332A2-189D-4D03-9935-FDFF81C42496}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{2F0DEF71-84AC-4212-86D4-E36E8896BDBF}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{2B26A7AA-6D61-42FA-8AB7-C0F05AAE7F1C}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{DA1786E4-30AB-434E-A827-92896390B79D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{30308DE0-8128-4613-BCAD-B0BEFFB20E38}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ApiGateways", "ApiGateways", "{79C64C7A-ED74-4F01-921F-92F4F9FC1E1D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ApiGw-Base", "ApiGw-Base", "{56AD1FCA-6E16-4798-BF29-941C5B3277D2}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile.Bff.Marketing", "Mobile.Bff.Marketing", "{34ED3311-2B30-4C8B-823B-312B50FFC32A}" - ProjectSection(SolutionItems) = preProject - src\ApiGateways\Mobile.Bff.Marketing\apigw\configuration.json = src\ApiGateways\Mobile.Bff.Marketing\apigw\configuration.json - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile.Bff.Shopping", "Mobile.Bff.Shopping", "{A32A5254-BA36-46FC-8C75-F7B8FFE8FCD0}" - ProjectSection(SolutionItems) = preProject - src\ApiGateways\Mobile.Bff.Shopping\apigw\configuration.json = src\ApiGateways\Mobile.Bff.Shopping\apigw\configuration.json - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web.Bff.Marketing", "Web.Bff.Marketing", "{696D2B7E-6B75-401D-964A-BFE6F4D7AF73}" - ProjectSection(SolutionItems) = preProject - src\ApiGateways\Web.Bff.Marketing\apigw\configuration.json = src\ApiGateways\Web.Bff.Marketing\apigw\configuration.json - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web.Bff.Shopping", "Web.Bff.Shopping", "{424BC53E-17EA-4E12-BC07-64BAA927ABCB}" - ProjectSection(SolutionItems) = preProject - src\ApiGateways\Web.Bff.Shopping\apigw\configuration.json = src\ApiGateways\Web.Bff.Shopping\apigw\configuration.json - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OcelotApiGw", "src\ApiGateways\ApiGw-Base\OcelotApiGw.csproj", "{0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mobile.Shopping.HttpAggregator", "src\ApiGateways\Mobile.Bff.Shopping\aggregator\Mobile.Shopping.HttpAggregator.csproj", "{98E0B3BA-6601-4C59-A9AA-24A00A17D835}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Web.Shopping.HttpAggregator", "src\ApiGateways\Web.Bff.Shopping\aggregator\Web.Shopping.HttpAggregator.csproj", "{E39BD762-BC86-459D-B818-B6BF2D9F1352}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Devspaces.Support", "Devspaces.Support", "{ABBA561B-499B-48C0-8299-85D41E6E9E98}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Devspaces.Support", "src\BuildingBlocks\Devspaces.Support\Devspaces.Support.csproj", "{CB6D01A4-E597-4348-9570-FC8DB03B4267}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Clients", "Clients", "{8449B293-5949-4832-8612-6BCE2962BCB1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Clients.Grpc.Caller", "src\Clients\Clients.Grpc.Caller\Clients.Grpc.Caller.csproj", "{7C8FA264-ED49-4ACA-9629-FCE5462B30AB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Ad-Hoc|Any CPU = Ad-Hoc|Any CPU - Ad-Hoc|ARM = Ad-Hoc|ARM - Ad-Hoc|iPhone = Ad-Hoc|iPhone - Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator - Ad-Hoc|x64 = Ad-Hoc|x64 - Ad-Hoc|x86 = Ad-Hoc|x86 - AppStore|Any CPU = AppStore|Any CPU - AppStore|ARM = AppStore|ARM - AppStore|iPhone = AppStore|iPhone - AppStore|iPhoneSimulator = AppStore|iPhoneSimulator - AppStore|x64 = AppStore|x64 - AppStore|x86 = AppStore|x86 - Debug|Any CPU = Debug|Any CPU - Debug|ARM = Debug|ARM - Debug|iPhone = Debug|iPhone - Debug|iPhoneSimulator = Debug|iPhoneSimulator - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|ARM = Release|ARM - Release|iPhone = Release|iPhone - Release|iPhoneSimulator = Release|iPhoneSimulator - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|ARM.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|iPhone.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|x64.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|x64.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|x86.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|x86.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|ARM.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|ARM.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|iPhone.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|x64.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|x64.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|x86.ActiveCfg = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|x86.Build.0 = Debug|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|Any CPU.Build.0 = Release|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|ARM.ActiveCfg = Release|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|ARM.Build.0 = Release|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|iPhone.ActiveCfg = Release|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|iPhone.Build.0 = Release|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|x64.ActiveCfg = Release|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|x64.Build.0 = Release|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|x86.ActiveCfg = Release|Any CPU - {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|x86.Build.0 = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.AppStore|ARM.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.AppStore|x64.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.AppStore|x86.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Debug|ARM.ActiveCfg = Debug|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Debug|x64.ActiveCfg = Debug|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Debug|x86.ActiveCfg = Debug|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Release|Any CPU.Build.0 = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Release|ARM.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Release|iPhone.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Release|x64.ActiveCfg = Release|Any CPU - {2110CBB0-3B38-4EE4-A743-DF6968D80D90}.Release|x86.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.AppStore|ARM.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.AppStore|x64.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.AppStore|x86.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Debug|Any CPU.Build.0 = Debug|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Debug|ARM.ActiveCfg = Debug|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Debug|x64.ActiveCfg = Debug|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Debug|x86.ActiveCfg = Debug|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Release|Any CPU.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Release|Any CPU.Build.0 = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Release|ARM.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Release|iPhone.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Release|x64.ActiveCfg = Release|Any CPU - {42681D9D-750A-4DF7-BD9F-9292CFD5C253}.Release|x86.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.AppStore|ARM.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.AppStore|x64.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.AppStore|x86.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Debug|ARM.ActiveCfg = Debug|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Debug|x64.ActiveCfg = Debug|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Debug|x86.ActiveCfg = Debug|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Release|Any CPU.Build.0 = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Release|ARM.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Release|iPhone.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Release|x64.ActiveCfg = Release|Any CPU - {231226CE-690B-4979-8870-9A79D80928E2}.Release|x86.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.AppStore|ARM.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.AppStore|x64.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.AppStore|x86.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Debug|ARM.ActiveCfg = Debug|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Debug|x64.ActiveCfg = Debug|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Debug|x86.ActiveCfg = Debug|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Release|Any CPU.Build.0 = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Release|ARM.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Release|iPhone.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Release|x64.ActiveCfg = Release|Any CPU - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76}.Release|x86.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.AppStore|ARM.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.AppStore|x64.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.AppStore|x86.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Debug|ARM.ActiveCfg = Debug|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Debug|x64.ActiveCfg = Debug|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Debug|x86.ActiveCfg = Debug|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Release|Any CPU.Build.0 = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Release|ARM.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Release|iPhone.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Release|x64.ActiveCfg = Release|Any CPU - {F0333D8E-0B27-42B7-B2C6-78F3657624E2}.Release|x86.ActiveCfg = Release|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.AppStore|ARM.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.AppStore|iPhone.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.AppStore|x64.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.AppStore|x64.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.AppStore|x86.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.AppStore|x86.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Debug|Any CPU.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Debug|ARM.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Debug|ARM.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Debug|iPhone.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Debug|x64.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Debug|x64.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Debug|x86.ActiveCfg = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Debug|x86.Build.0 = Debug|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Release|Any CPU.ActiveCfg = Release|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Release|Any CPU.Build.0 = Release|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Release|ARM.ActiveCfg = Release|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Release|ARM.Build.0 = Release|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Release|iPhone.ActiveCfg = Release|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Release|iPhone.Build.0 = Release|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Release|x64.ActiveCfg = Release|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Release|x64.Build.0 = Release|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Release|x86.ActiveCfg = Release|Any CPU - {95F1F07C-4D92-4742-BD07-E5B805AAB651}.Release|x86.Build.0 = Release|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.AppStore|ARM.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.AppStore|iPhone.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.AppStore|x64.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.AppStore|x64.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.AppStore|x86.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.AppStore|x86.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Debug|ARM.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Debug|ARM.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Debug|iPhone.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Debug|x64.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Debug|x64.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Debug|x86.ActiveCfg = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Debug|x86.Build.0 = Debug|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Release|Any CPU.Build.0 = Release|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Release|ARM.ActiveCfg = Release|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Release|ARM.Build.0 = Release|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Release|iPhone.ActiveCfg = Release|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Release|iPhone.Build.0 = Release|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Release|x64.ActiveCfg = Release|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Release|x64.Build.0 = Release|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Release|x86.ActiveCfg = Release|Any CPU - {A579E108-5445-403D-A407-339AC4D1611B}.Release|x86.Build.0 = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Ad-Hoc|x64.Build.0 = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Ad-Hoc|x86.Build.0 = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.AppStore|ARM.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.AppStore|iPhone.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.AppStore|x64.ActiveCfg = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.AppStore|x64.Build.0 = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.AppStore|x86.ActiveCfg = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.AppStore|x86.Build.0 = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Debug|ARM.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Debug|ARM.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Debug|iPhone.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Debug|x64.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Debug|x64.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Debug|x86.ActiveCfg = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Debug|x86.Build.0 = Debug|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Release|Any CPU.Build.0 = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Release|ARM.ActiveCfg = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Release|ARM.Build.0 = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Release|iPhone.ActiveCfg = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Release|iPhone.Build.0 = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Release|x64.ActiveCfg = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Release|x64.Build.0 = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Release|x86.ActiveCfg = Release|Any CPU - {F16E3C6A-1C94-4EAB-BE91-099618060B68}.Release|x86.Build.0 = Release|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.AppStore|ARM.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.AppStore|iPhone.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.AppStore|x64.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.AppStore|x64.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.AppStore|x86.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.AppStore|x86.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Debug|ARM.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Debug|ARM.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Debug|iPhone.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Debug|x64.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Debug|x64.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Debug|x86.ActiveCfg = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Debug|x86.Build.0 = Debug|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Release|Any CPU.Build.0 = Release|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Release|ARM.ActiveCfg = Release|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Release|ARM.Build.0 = Release|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Release|iPhone.ActiveCfg = Release|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Release|iPhone.Build.0 = Release|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Release|x64.ActiveCfg = Release|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Release|x64.Build.0 = Release|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Release|x86.ActiveCfg = Release|Any CPU - {0044B293-1DCC-4224-B948-00CF6DC7F510}.Release|x86.Build.0 = Release|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.AppStore|ARM.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.AppStore|iPhone.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.AppStore|x64.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.AppStore|x64.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.AppStore|x86.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.AppStore|x86.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Debug|ARM.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Debug|ARM.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Debug|iPhone.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Debug|x64.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Debug|x64.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Debug|x86.ActiveCfg = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Debug|x86.Build.0 = Debug|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Release|Any CPU.Build.0 = Release|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Release|ARM.ActiveCfg = Release|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Release|ARM.Build.0 = Release|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Release|iPhone.ActiveCfg = Release|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Release|iPhone.Build.0 = Release|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Release|x64.ActiveCfg = Release|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Release|x64.Build.0 = Release|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Release|x86.ActiveCfg = Release|Any CPU - {8088F3FC-6787-45FA-A924-816EC81CBFAC}.Release|x86.Build.0 = Release|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.AppStore|ARM.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.AppStore|iPhone.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.AppStore|x64.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.AppStore|x64.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.AppStore|x86.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.AppStore|x86.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Debug|ARM.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Debug|ARM.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Debug|iPhone.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Debug|x64.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Debug|x64.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Debug|x86.ActiveCfg = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Debug|x86.Build.0 = Debug|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Release|Any CPU.Build.0 = Release|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Release|ARM.ActiveCfg = Release|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Release|ARM.Build.0 = Release|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Release|iPhone.ActiveCfg = Release|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Release|iPhone.Build.0 = Release|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Release|x64.ActiveCfg = Release|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Release|x64.Build.0 = Release|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Release|x86.ActiveCfg = Release|Any CPU - {9EE28E45-1533-472B-8267-56C48855BA0E}.Release|x86.Build.0 = Release|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.AppStore|ARM.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.AppStore|iPhone.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.AppStore|x64.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.AppStore|x64.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.AppStore|x86.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.AppStore|x86.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Debug|ARM.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Debug|ARM.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Debug|iPhone.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Debug|x64.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Debug|x64.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Debug|x86.ActiveCfg = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Debug|x86.Build.0 = Debug|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Release|Any CPU.Build.0 = Release|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Release|ARM.ActiveCfg = Release|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Release|ARM.Build.0 = Release|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Release|iPhone.ActiveCfg = Release|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Release|iPhone.Build.0 = Release|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Release|x64.ActiveCfg = Release|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Release|x64.Build.0 = Release|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Release|x86.ActiveCfg = Release|Any CPU - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F}.Release|x86.Build.0 = Release|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.AppStore|ARM.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.AppStore|iPhone.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.AppStore|x64.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.AppStore|x64.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.AppStore|x86.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.AppStore|x86.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Debug|ARM.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Debug|ARM.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Debug|iPhone.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Debug|x64.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Debug|x64.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Debug|x86.ActiveCfg = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Debug|x86.Build.0 = Debug|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Release|Any CPU.Build.0 = Release|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Release|ARM.ActiveCfg = Release|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Release|ARM.Build.0 = Release|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Release|iPhone.ActiveCfg = Release|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Release|iPhone.Build.0 = Release|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Release|x64.ActiveCfg = Release|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Release|x64.Build.0 = Release|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Release|x86.ActiveCfg = Release|Any CPU - {1A01AF82-6FCB-464C-B39C-F127AEBD315D}.Release|x86.Build.0 = Release|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.AppStore|ARM.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.AppStore|iPhone.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.AppStore|x64.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.AppStore|x64.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.AppStore|x86.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.AppStore|x86.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Debug|ARM.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Debug|ARM.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Debug|iPhone.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Debug|x64.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Debug|x64.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Debug|x86.ActiveCfg = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Debug|x86.Build.0 = Debug|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Release|Any CPU.Build.0 = Release|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Release|ARM.ActiveCfg = Release|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Release|ARM.Build.0 = Release|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Release|iPhone.ActiveCfg = Release|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Release|iPhone.Build.0 = Release|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Release|x64.ActiveCfg = Release|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Release|x64.Build.0 = Release|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Release|x86.ActiveCfg = Release|Any CPU - {E7581357-FC34-474C-B8F5-307EE3CE05EF}.Release|x86.Build.0 = Release|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.AppStore|ARM.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.AppStore|iPhone.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.AppStore|x64.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.AppStore|x64.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.AppStore|x86.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.AppStore|x86.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Debug|ARM.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Debug|ARM.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Debug|iPhone.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Debug|x64.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Debug|x64.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Debug|x86.ActiveCfg = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Debug|x86.Build.0 = Debug|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Release|Any CPU.Build.0 = Release|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Release|ARM.ActiveCfg = Release|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Release|ARM.Build.0 = Release|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Release|iPhone.ActiveCfg = Release|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Release|iPhone.Build.0 = Release|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Release|x64.ActiveCfg = Release|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Release|x64.Build.0 = Release|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Release|x86.ActiveCfg = Release|Any CPU - {DF395F85-B010-465D-857A-7EBCC512C0C2}.Release|x86.Build.0 = Release|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.AppStore|ARM.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.AppStore|iPhone.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.AppStore|x64.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.AppStore|x64.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.AppStore|x86.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.AppStore|x86.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Debug|ARM.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Debug|ARM.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Debug|iPhone.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Debug|x64.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Debug|x64.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Debug|x86.ActiveCfg = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Debug|x86.Build.0 = Debug|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Release|Any CPU.Build.0 = Release|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Release|ARM.ActiveCfg = Release|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Release|ARM.Build.0 = Release|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Release|iPhone.ActiveCfg = Release|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Release|iPhone.Build.0 = Release|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Release|x64.ActiveCfg = Release|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Release|x64.Build.0 = Release|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Release|x86.ActiveCfg = Release|Any CPU - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8}.Release|x86.Build.0 = Release|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.AppStore|ARM.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.AppStore|iPhone.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.AppStore|x64.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.AppStore|x64.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.AppStore|x86.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.AppStore|x86.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Debug|Any CPU.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Debug|ARM.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Debug|ARM.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Debug|iPhone.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Debug|x64.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Debug|x64.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Debug|x86.ActiveCfg = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Debug|x86.Build.0 = Debug|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Release|Any CPU.ActiveCfg = Release|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Release|Any CPU.Build.0 = Release|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Release|ARM.ActiveCfg = Release|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Release|ARM.Build.0 = Release|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Release|iPhone.ActiveCfg = Release|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Release|iPhone.Build.0 = Release|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Release|x64.ActiveCfg = Release|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Release|x64.Build.0 = Release|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Release|x86.ActiveCfg = Release|Any CPU - {15F4B3AA-89B6-4A0D-9051-414305974781}.Release|x86.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Ad-Hoc|ARM.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Ad-Hoc|x64.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Ad-Hoc|x86.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.AppStore|Any CPU.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.AppStore|ARM.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.AppStore|ARM.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.AppStore|iPhone.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.AppStore|x64.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.AppStore|x64.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.AppStore|x86.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.AppStore|x86.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Debug|ARM.ActiveCfg = Debug|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Debug|ARM.Build.0 = Debug|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Debug|iPhone.Build.0 = Debug|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Debug|x64.ActiveCfg = Debug|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Debug|x64.Build.0 = Debug|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Debug|x86.ActiveCfg = Debug|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Debug|x86.Build.0 = Debug|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Release|Any CPU.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Release|ARM.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Release|ARM.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Release|iPhone.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Release|iPhone.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Release|x64.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Release|x64.Build.0 = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Release|x86.ActiveCfg = Release|Any CPU - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01}.Release|x86.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|ARM.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x64.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x86.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|Any CPU.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|Any CPU.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|ARM.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|ARM.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|ARM.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhone.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhone.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x64.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x64.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x64.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x86.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x86.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.AppStore|x86.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|Any CPU.Build.0 = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|ARM.ActiveCfg = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|ARM.Build.0 = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|ARM.Deploy.0 = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhone.Build.0 = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhone.Deploy.0 = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x64.ActiveCfg = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x64.Build.0 = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x64.Deploy.0 = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x86.ActiveCfg = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x86.Build.0 = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Debug|x86.Deploy.0 = Debug|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|Any CPU.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|Any CPU.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|Any CPU.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|ARM.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|ARM.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|ARM.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhone.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhone.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhone.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x64.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x64.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x64.Deploy.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x86.ActiveCfg = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x86.Build.0 = Release|Any CPU - {62DBB163-9CA9-4818-B48B-13233DF37C24}.Release|x86.Deploy.0 = Release|Any CPU - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|ARM.ActiveCfg = AppStore|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|iPhone.ActiveCfg = AppStore|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|iPhone.Build.0 = AppStore|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|x64.ActiveCfg = AppStore|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.AppStore|x86.ActiveCfg = AppStore|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|Any CPU.ActiveCfg = Debug|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|ARM.ActiveCfg = Debug|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|iPhone.ActiveCfg = Debug|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|iPhone.Build.0 = Debug|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|x64.ActiveCfg = Debug|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|x86.ActiveCfg = Debug|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|Any CPU.ActiveCfg = Release|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|ARM.ActiveCfg = Release|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhone.ActiveCfg = Release|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhone.Build.0 = Release|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|x64.ActiveCfg = Release|iPhone - {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|x86.ActiveCfg = Release|iPhone - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|Any CPU.ActiveCfg = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|Any CPU.Build.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|Any CPU.Deploy.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|ARM.ActiveCfg = Release|ARM - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|ARM.Build.0 = Release|ARM - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|ARM.Deploy.0 = Release|ARM - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhone.ActiveCfg = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhone.Build.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhone.Deploy.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x64.ActiveCfg = Release|x64 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x64.Build.0 = Release|x64 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x64.Deploy.0 = Release|x64 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x86.ActiveCfg = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x86.Build.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Ad-Hoc|x86.Deploy.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|Any CPU.ActiveCfg = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|Any CPU.Build.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|Any CPU.Deploy.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|ARM.ActiveCfg = Release|ARM - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|ARM.Build.0 = Release|ARM - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|ARM.Deploy.0 = Release|ARM - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhone.ActiveCfg = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhone.Build.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhone.Deploy.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhoneSimulator.ActiveCfg = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhoneSimulator.Build.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|iPhoneSimulator.Deploy.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x64.ActiveCfg = Release|x64 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x64.Build.0 = Release|x64 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x64.Deploy.0 = Release|x64 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x86.ActiveCfg = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x86.Build.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.AppStore|x86.Deploy.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|Any CPU.ActiveCfg = Debug|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|ARM.ActiveCfg = Debug|ARM - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|ARM.Build.0 = Debug|ARM - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|ARM.Deploy.0 = Debug|ARM - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhone.ActiveCfg = Debug|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x64.ActiveCfg = Debug|x64 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x64.Build.0 = Debug|x64 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x64.Deploy.0 = Debug|x64 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.ActiveCfg = Debug|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.Build.0 = Debug|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.Deploy.0 = Debug|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|Any CPU.ActiveCfg = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.ActiveCfg = Release|ARM - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.Build.0 = Release|ARM - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.Deploy.0 = Release|ARM - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|iPhone.ActiveCfg = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|iPhoneSimulator.ActiveCfg = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x64.ActiveCfg = Release|x64 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x64.Build.0 = Release|x64 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x64.Deploy.0 = Release|x64 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x86.ActiveCfg = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x86.Build.0 = Release|x86 - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|x86.Deploy.0 = Release|x86 - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Ad-Hoc|ARM.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Ad-Hoc|x64.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Ad-Hoc|x86.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.AppStore|Any CPU.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.AppStore|ARM.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.AppStore|ARM.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.AppStore|iPhone.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.AppStore|x64.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.AppStore|x64.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.AppStore|x86.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.AppStore|x86.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Debug|ARM.ActiveCfg = Debug|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Debug|ARM.Build.0 = Debug|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Debug|iPhone.Build.0 = Debug|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Debug|x64.ActiveCfg = Debug|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Debug|x64.Build.0 = Debug|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Debug|x86.ActiveCfg = Debug|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Debug|x86.Build.0 = Debug|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Release|Any CPU.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Release|ARM.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Release|ARM.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Release|iPhone.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Release|iPhone.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Release|x64.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Release|x64.Build.0 = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Release|x86.ActiveCfg = Release|Any CPU - {6E4285E7-7611-4440-A1B5-3513EBB13807}.Release|x86.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|ARM.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|x64.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|x86.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|Any CPU.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|Any CPU.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|ARM.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|ARM.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|ARM.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|iPhone.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|iPhone.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|x64.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|x64.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|x64.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|x86.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|x86.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.AppStore|x86.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|ARM.ActiveCfg = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|ARM.Build.0 = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|ARM.Deploy.0 = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|iPhone.Build.0 = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|iPhone.Deploy.0 = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|x64.ActiveCfg = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|x64.Build.0 = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|x64.Deploy.0 = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|x86.ActiveCfg = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|x86.Build.0 = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Debug|x86.Deploy.0 = Debug|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|Any CPU.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|Any CPU.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|ARM.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|ARM.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|ARM.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|iPhone.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|iPhone.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|iPhone.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|x64.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|x64.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|x64.Deploy.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|x86.ActiveCfg = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|x86.Build.0 = Release|Any CPU - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1}.Release|x86.Deploy.0 = Release|Any CPU - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|ARM.ActiveCfg = AppStore|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|iPhone.ActiveCfg = AppStore|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|iPhone.Build.0 = AppStore|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|x64.ActiveCfg = AppStore|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.AppStore|x86.ActiveCfg = AppStore|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|Any CPU.ActiveCfg = Debug|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|ARM.ActiveCfg = Debug|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|iPhone.ActiveCfg = Debug|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|iPhone.Build.0 = Debug|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|x64.ActiveCfg = Debug|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|x86.ActiveCfg = Debug|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|Any CPU.ActiveCfg = Release|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|ARM.ActiveCfg = Release|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|iPhone.ActiveCfg = Release|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|iPhone.Build.0 = Release|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|x64.ActiveCfg = Release|iPhone - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|x86.ActiveCfg = Release|iPhone - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|Any CPU.ActiveCfg = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|Any CPU.Build.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|Any CPU.Deploy.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|ARM.ActiveCfg = Release|ARM - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|ARM.Build.0 = Release|ARM - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|ARM.Deploy.0 = Release|ARM - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|iPhone.ActiveCfg = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|iPhone.Build.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|iPhone.Deploy.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|x64.ActiveCfg = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|x64.Build.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|x64.Deploy.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|x86.ActiveCfg = Release|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|x86.Build.0 = Release|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Ad-Hoc|x86.Deploy.0 = Release|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|Any CPU.ActiveCfg = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|Any CPU.Build.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|Any CPU.Deploy.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|ARM.ActiveCfg = Release|ARM - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|ARM.Build.0 = Release|ARM - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|ARM.Deploy.0 = Release|ARM - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|iPhone.ActiveCfg = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|iPhone.Build.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|iPhone.Deploy.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|iPhoneSimulator.ActiveCfg = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|iPhoneSimulator.Build.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|iPhoneSimulator.Deploy.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|x64.ActiveCfg = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|x64.Build.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|x64.Deploy.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|x86.ActiveCfg = Release|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|x86.Build.0 = Release|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.AppStore|x86.Deploy.0 = Release|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Debug|Any CPU.ActiveCfg = Debug|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Debug|ARM.ActiveCfg = Debug|ARM - {A7337243-33B8-463A-87AD-944B75EFD820}.Debug|ARM.Build.0 = Debug|ARM - {A7337243-33B8-463A-87AD-944B75EFD820}.Debug|ARM.Deploy.0 = Debug|ARM - {A7337243-33B8-463A-87AD-944B75EFD820}.Debug|iPhone.ActiveCfg = Debug|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Debug|x64.ActiveCfg = Debug|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Debug|x64.Build.0 = Debug|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Debug|x64.Deploy.0 = Debug|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Debug|x86.ActiveCfg = Debug|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Debug|x86.Build.0 = Debug|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Debug|x86.Deploy.0 = Debug|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Release|Any CPU.ActiveCfg = Release|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Release|ARM.ActiveCfg = Release|ARM - {A7337243-33B8-463A-87AD-944B75EFD820}.Release|ARM.Build.0 = Release|ARM - {A7337243-33B8-463A-87AD-944B75EFD820}.Release|ARM.Deploy.0 = Release|ARM - {A7337243-33B8-463A-87AD-944B75EFD820}.Release|iPhone.ActiveCfg = Release|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Release|iPhoneSimulator.ActiveCfg = Release|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Release|x64.ActiveCfg = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Release|x64.Build.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Release|x64.Deploy.0 = Release|x64 - {A7337243-33B8-463A-87AD-944B75EFD820}.Release|x86.ActiveCfg = Release|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Release|x86.Build.0 = Release|x86 - {A7337243-33B8-463A-87AD-944B75EFD820}.Release|x86.Deploy.0 = Release|x86 - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.AppStore|ARM.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.AppStore|iPhone.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.AppStore|x64.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.AppStore|x64.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.AppStore|x86.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.AppStore|x86.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Debug|ARM.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Debug|ARM.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Debug|iPhone.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Debug|x64.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Debug|x64.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Debug|x86.ActiveCfg = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Debug|x86.Build.0 = Debug|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Release|Any CPU.Build.0 = Release|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Release|ARM.ActiveCfg = Release|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Release|ARM.Build.0 = Release|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Release|iPhone.ActiveCfg = Release|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Release|iPhone.Build.0 = Release|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Release|x64.ActiveCfg = Release|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Release|x64.Build.0 = Release|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Release|x86.ActiveCfg = Release|Any CPU - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB}.Release|x86.Build.0 = Release|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.AppStore|ARM.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.AppStore|iPhone.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.AppStore|x64.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.AppStore|x64.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.AppStore|x86.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.AppStore|x86.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Debug|ARM.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Debug|ARM.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Debug|iPhone.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Debug|x64.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Debug|x64.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Debug|x86.ActiveCfg = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Debug|x86.Build.0 = Debug|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Release|Any CPU.Build.0 = Release|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Release|ARM.ActiveCfg = Release|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Release|ARM.Build.0 = Release|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Release|iPhone.ActiveCfg = Release|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Release|iPhone.Build.0 = Release|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Release|x64.ActiveCfg = Release|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Release|x64.Build.0 = Release|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Release|x86.ActiveCfg = Release|Any CPU - {63417272-1E6A-406A-AD11-C738558D89C0}.Release|x86.Build.0 = Release|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.AppStore|ARM.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.AppStore|iPhone.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.AppStore|x64.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.AppStore|x64.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.AppStore|x86.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.AppStore|x86.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Debug|ARM.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Debug|ARM.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Debug|iPhone.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Debug|x64.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Debug|x64.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Debug|x86.ActiveCfg = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Debug|x86.Build.0 = Debug|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Release|Any CPU.Build.0 = Release|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Release|ARM.ActiveCfg = Release|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Release|ARM.Build.0 = Release|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Release|iPhone.ActiveCfg = Release|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Release|iPhone.Build.0 = Release|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Release|x64.ActiveCfg = Release|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Release|x64.Build.0 = Release|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Release|x86.ActiveCfg = Release|Any CPU - {56E0E455-731E-41CB-AF46-C1A70F8A140B}.Release|x86.Build.0 = Release|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.AppStore|ARM.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.AppStore|iPhone.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.AppStore|x64.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.AppStore|x64.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.AppStore|x86.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.AppStore|x86.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Debug|ARM.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Debug|ARM.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Debug|iPhone.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Debug|x64.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Debug|x64.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Debug|x86.ActiveCfg = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Debug|x86.Build.0 = Debug|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Release|Any CPU.Build.0 = Release|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Release|ARM.ActiveCfg = Release|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Release|ARM.Build.0 = Release|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Release|iPhone.ActiveCfg = Release|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Release|iPhone.Build.0 = Release|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Release|x64.ActiveCfg = Release|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Release|x64.Build.0 = Release|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Release|x86.ActiveCfg = Release|Any CPU - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5}.Release|x86.Build.0 = Release|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.AppStore|ARM.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.AppStore|iPhone.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.AppStore|x64.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.AppStore|x64.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.AppStore|x86.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.AppStore|x86.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Debug|ARM.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Debug|ARM.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Debug|iPhone.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Debug|x64.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Debug|x64.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Debug|x86.ActiveCfg = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Debug|x86.Build.0 = Debug|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Release|Any CPU.Build.0 = Release|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Release|ARM.ActiveCfg = Release|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Release|ARM.Build.0 = Release|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Release|iPhone.ActiveCfg = Release|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Release|iPhone.Build.0 = Release|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Release|x64.ActiveCfg = Release|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Release|x64.Build.0 = Release|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Release|x86.ActiveCfg = Release|Any CPU - {4F0E5CB2-5795-4040-8637-1D395914C944}.Release|x86.Build.0 = Release|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.AppStore|ARM.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.AppStore|iPhone.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.AppStore|x64.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.AppStore|x64.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.AppStore|x86.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.AppStore|x86.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Debug|ARM.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Debug|ARM.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Debug|iPhone.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Debug|x64.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Debug|x64.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Debug|x86.ActiveCfg = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Debug|x86.Build.0 = Debug|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Release|Any CPU.Build.0 = Release|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Release|ARM.ActiveCfg = Release|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Release|ARM.Build.0 = Release|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Release|iPhone.ActiveCfg = Release|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Release|iPhone.Build.0 = Release|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Release|x64.ActiveCfg = Release|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Release|x64.Build.0 = Release|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Release|x86.ActiveCfg = Release|Any CPU - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8}.Release|x86.Build.0 = Release|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.AppStore|ARM.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.AppStore|iPhone.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.AppStore|x64.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.AppStore|x64.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.AppStore|x86.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.AppStore|x86.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Debug|ARM.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Debug|ARM.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Debug|iPhone.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Debug|x64.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Debug|x64.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Debug|x86.ActiveCfg = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Debug|x86.Build.0 = Debug|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Release|Any CPU.Build.0 = Release|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Release|ARM.ActiveCfg = Release|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Release|ARM.Build.0 = Release|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Release|iPhone.ActiveCfg = Release|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Release|iPhone.Build.0 = Release|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Release|x64.ActiveCfg = Release|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Release|x64.Build.0 = Release|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Release|x86.ActiveCfg = Release|Any CPU - {5A155B15-D8E7-47FE-8D17-8E641726158C}.Release|x86.Build.0 = Release|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.AppStore|ARM.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.AppStore|iPhone.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.AppStore|x64.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.AppStore|x64.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.AppStore|x86.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.AppStore|x86.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Debug|ARM.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Debug|ARM.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Debug|iPhone.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Debug|x64.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Debug|x64.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Debug|x86.ActiveCfg = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Debug|x86.Build.0 = Debug|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Release|Any CPU.Build.0 = Release|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Release|ARM.ActiveCfg = Release|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Release|ARM.Build.0 = Release|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Release|iPhone.ActiveCfg = Release|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Release|iPhone.Build.0 = Release|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Release|x64.ActiveCfg = Release|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Release|x64.Build.0 = Release|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Release|x86.ActiveCfg = Release|Any CPU - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A}.Release|x86.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Ad-Hoc|ARM.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Ad-Hoc|x64.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Ad-Hoc|x86.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.AppStore|Any CPU.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.AppStore|ARM.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.AppStore|ARM.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.AppStore|iPhone.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.AppStore|x64.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.AppStore|x64.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.AppStore|x86.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.AppStore|x86.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Debug|Any CPU.Build.0 = Debug|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Debug|ARM.ActiveCfg = Debug|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Debug|ARM.Build.0 = Debug|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Debug|iPhone.Build.0 = Debug|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Debug|x64.ActiveCfg = Debug|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Debug|x64.Build.0 = Debug|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Debug|x86.ActiveCfg = Debug|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Debug|x86.Build.0 = Debug|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Release|Any CPU.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Release|Any CPU.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Release|ARM.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Release|ARM.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Release|iPhone.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Release|iPhone.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Release|x64.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Release|x64.Build.0 = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Release|x86.ActiveCfg = Release|Any CPU - {969E793C-C413-490E-9C9D-B2B46DA5AF32}.Release|x86.Build.0 = Release|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.AppStore|ARM.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.AppStore|iPhone.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.AppStore|x64.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.AppStore|x64.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.AppStore|x86.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.AppStore|x86.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Debug|ARM.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Debug|ARM.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Debug|iPhone.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Debug|x64.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Debug|x64.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Debug|x86.ActiveCfg = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Debug|x86.Build.0 = Debug|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Release|Any CPU.Build.0 = Release|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Release|ARM.ActiveCfg = Release|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Release|ARM.Build.0 = Release|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Release|iPhone.ActiveCfg = Release|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Release|iPhone.Build.0 = Release|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Release|x64.ActiveCfg = Release|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Release|x64.Build.0 = Release|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Release|x86.ActiveCfg = Release|Any CPU - {3572B4E2-4399-4797-B5C2-3720D870E0C3}.Release|x86.Build.0 = Release|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.AppStore|ARM.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.AppStore|iPhone.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.AppStore|x64.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.AppStore|x64.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.AppStore|x86.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.AppStore|x86.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Debug|ARM.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Debug|ARM.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Debug|iPhone.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Debug|x64.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Debug|x64.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Debug|x86.ActiveCfg = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Debug|x86.Build.0 = Debug|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Release|Any CPU.Build.0 = Release|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Release|ARM.ActiveCfg = Release|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Release|ARM.Build.0 = Release|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Release|iPhone.ActiveCfg = Release|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Release|iPhone.Build.0 = Release|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Release|x64.ActiveCfg = Release|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Release|x64.Build.0 = Release|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Release|x86.ActiveCfg = Release|Any CPU - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC}.Release|x86.Build.0 = Release|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.AppStore|ARM.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.AppStore|iPhone.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.AppStore|x64.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.AppStore|x64.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.AppStore|x86.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.AppStore|x86.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Debug|Any CPU.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Debug|ARM.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Debug|ARM.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Debug|iPhone.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Debug|x64.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Debug|x64.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Debug|x86.ActiveCfg = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Debug|x86.Build.0 = Debug|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Release|Any CPU.ActiveCfg = Release|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Release|Any CPU.Build.0 = Release|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Release|ARM.ActiveCfg = Release|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Release|ARM.Build.0 = Release|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Release|iPhone.ActiveCfg = Release|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Release|iPhone.Build.0 = Release|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Release|x64.ActiveCfg = Release|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Release|x64.Build.0 = Release|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Release|x86.ActiveCfg = Release|Any CPU - {98E0B3BA-6601-4C59-A9AA-24A00A17D835}.Release|x86.Build.0 = Release|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.AppStore|ARM.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.AppStore|iPhone.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.AppStore|x64.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.AppStore|x64.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.AppStore|x86.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.AppStore|x86.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Debug|ARM.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Debug|ARM.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Debug|iPhone.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Debug|x64.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Debug|x64.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Debug|x86.ActiveCfg = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Debug|x86.Build.0 = Debug|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Release|Any CPU.Build.0 = Release|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Release|ARM.ActiveCfg = Release|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Release|ARM.Build.0 = Release|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Release|iPhone.ActiveCfg = Release|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Release|iPhone.Build.0 = Release|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Release|x64.ActiveCfg = Release|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Release|x64.Build.0 = Release|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Release|x86.ActiveCfg = Release|Any CPU - {E39BD762-BC86-459D-B818-B6BF2D9F1352}.Release|x86.Build.0 = Release|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.AppStore|ARM.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.AppStore|iPhone.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.AppStore|x64.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.AppStore|x64.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.AppStore|x86.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.AppStore|x86.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Debug|ARM.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Debug|ARM.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Debug|iPhone.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Debug|x64.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Debug|x64.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Debug|x86.ActiveCfg = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Debug|x86.Build.0 = Debug|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|Any CPU.Build.0 = Release|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|ARM.ActiveCfg = Release|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|ARM.Build.0 = Release|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|iPhone.ActiveCfg = Release|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|iPhone.Build.0 = Release|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|x64.ActiveCfg = Release|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|x64.Build.0 = Release|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|x86.ActiveCfg = Release|Any CPU - {CB6D01A4-E597-4348-9570-FC8DB03B4267}.Release|x86.Build.0 = Release|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|ARM.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|iPhone.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|x64.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|x64.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|x86.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.AppStore|x86.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|ARM.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|ARM.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|iPhone.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|x64.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|x64.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|x86.ActiveCfg = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Debug|x86.Build.0 = Debug|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|Any CPU.Build.0 = Release|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|ARM.ActiveCfg = Release|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|ARM.Build.0 = Release|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|iPhone.ActiveCfg = Release|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|iPhone.Build.0 = Release|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|x64.ActiveCfg = Release|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|x64.Build.0 = Release|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|x86.ActiveCfg = Release|Any CPU - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {91CF7717-08AB-4E65-B10E-0B426F01E2E8} = {932D8224-11F6-4D07-B109-DA28AD288A63} - {E279BF0F-7F66-4F3A-A3AB-2CDA66C1CD04} = {932D8224-11F6-4D07-B109-DA28AD288A63} - {326A7FB3-5295-468C-A4FE-67DCB823E1E5} = {91CF7717-08AB-4E65-B10E-0B426F01E2E8} - {BF3EF4F3-E4F5-41DA-9D2D-57223687D1A8} = {91CF7717-08AB-4E65-B10E-0B426F01E2E8} - {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} = {91CF7717-08AB-4E65-B10E-0B426F01E2E8} - {EF0337F2-ED00-4643-89FD-EE10863F1870} = {A857AD10-40FF-4303-BEC2-FF1C58D5735E} - {24CD3B53-141E-4A07-9B0D-796641E1CF78} = {91CF7717-08AB-4E65-B10E-0B426F01E2E8} - {2110CBB0-3B38-4EE4-A743-DF6968D80D90} = {BF3EF4F3-E4F5-41DA-9D2D-57223687D1A8} - {42681D9D-750A-4DF7-BD9F-9292CFD5C253} = {326A7FB3-5295-468C-A4FE-67DCB823E1E5} - {231226CE-690B-4979-8870-9A79D80928E2} = {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} - {F5598DCB-6DDE-4661-AD9D-A55612DA7E76} = {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} - {F0333D8E-0B27-42B7-B2C6-78F3657624E2} = {E279BF0F-7F66-4F3A-A3AB-2CDA66C1CD04} - {95F1F07C-4D92-4742-BD07-E5B805AAB651} = {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} - {A579E108-5445-403D-A407-339AC4D1611B} = {24CD3B53-141E-4A07-9B0D-796641E1CF78} - {F16E3C6A-1C94-4EAB-BE91-099618060B68} = {E279BF0F-7F66-4F3A-A3AB-2CDA66C1CD04} - {DB0EFB20-B024-4E5E-A75C-52143C131D25} = {932D8224-11F6-4D07-B109-DA28AD288A63} - {807BB76E-B2BB-47A2-A57B-3D1B20FF5E7F} = {DB0EFB20-B024-4E5E-A75C-52143C131D25} - {0044B293-1DCC-4224-B948-00CF6DC7F510} = {807BB76E-B2BB-47A2-A57B-3D1B20FF5E7F} - {8088F3FC-6787-45FA-A924-816EC81CBFAC} = {807BB76E-B2BB-47A2-A57B-3D1B20FF5E7F} - {9EE28E45-1533-472B-8267-56C48855BA0E} = {807BB76E-B2BB-47A2-A57B-3D1B20FF5E7F} - {C0A7918D-B4F2-4E7F-8DE2-1E5279EF079F} = {E279BF0F-7F66-4F3A-A3AB-2CDA66C1CD04} - {022E145D-1593-47EE-9608-8E323D3C63F5} = {91CF7717-08AB-4E65-B10E-0B426F01E2E8} - {1A01AF82-6FCB-464C-B39C-F127AEBD315D} = {022E145D-1593-47EE-9608-8E323D3C63F5} - {41139F64-4046-4F16-96B7-D941D96FA9C6} = {91CF7717-08AB-4E65-B10E-0B426F01E2E8} - {E7581357-FC34-474C-B8F5-307EE3CE05EF} = {41139F64-4046-4F16-96B7-D941D96FA9C6} - {A5260DE0-1FDD-467E-9CC1-A028AB081CEE} = {91CF7717-08AB-4E65-B10E-0B426F01E2E8} - {DF395F85-B010-465D-857A-7EBCC512C0C2} = {A5260DE0-1FDD-467E-9CC1-A028AB081CEE} - {69AF10D3-AA76-4FF7-B187-EC7E8CC5F5B8} = {807BB76E-B2BB-47A2-A57B-3D1B20FF5E7F} - {1815B651-941C-466B-AE33-D1D7EEB8F77F} = {DB0EFB20-B024-4E5E-A75C-52143C131D25} - {15F4B3AA-89B6-4A0D-9051-414305974781} = {1815B651-941C-466B-AE33-D1D7EEB8F77F} - {EF3EDC78-E864-43FF-8E80-CF33DD9508A3} = {932D8224-11F6-4D07-B109-DA28AD288A63} - {F7B757E3-D3F2-4E60-B183-D67CDEC96F76} = {EF3EDC78-E864-43FF-8E80-CF33DD9508A3} - {2BB81612-8D04-49CD-B17F-38DAB176E583} = {EF3EDC78-E864-43FF-8E80-CF33DD9508A3} - {BA96A12C-4EE3-46C4-BB3F-F811B554CD01} = {F7B757E3-D3F2-4E60-B183-D67CDEC96F76} - {62DBB163-9CA9-4818-B48B-13233DF37C24} = {2BB81612-8D04-49CD-B17F-38DAB176E583} - {6EEB23DC-7063-4444-9AF8-90DF24F549C0} = {2BB81612-8D04-49CD-B17F-38DAB176E583} - {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B} = {2BB81612-8D04-49CD-B17F-38DAB176E583} - {0AAED9FF-3260-43BB-B586-9AAF1E010A90} = {A857AD10-40FF-4303-BEC2-FF1C58D5735E} - {6E4285E7-7611-4440-A1B5-3513EBB13807} = {0AAED9FF-3260-43BB-B586-9AAF1E010A90} - {A289A7F0-ACD8-42AE-87B6-AB1AFD310BF1} = {0AAED9FF-3260-43BB-B586-9AAF1E010A90} - {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3} = {0AAED9FF-3260-43BB-B586-9AAF1E010A90} - {A7337243-33B8-463A-87AD-944B75EFD820} = {0AAED9FF-3260-43BB-B586-9AAF1E010A90} - {9F00E62F-E180-4A9C-8794-98A72AFAC2DB} = {7BA332A2-189D-4D03-9935-FDFF81C42496} - {63417272-1E6A-406A-AD11-C738558D89C0} = {7BA332A2-189D-4D03-9935-FDFF81C42496} - {56E0E455-731E-41CB-AF46-C1A70F8A140B} = {2F0DEF71-84AC-4212-86D4-E36E8896BDBF} - {1EB6680D-4AC8-47EF-A026-E4EEEE93CAD5} = {2F0DEF71-84AC-4212-86D4-E36E8896BDBF} - {4F0E5CB2-5795-4040-8637-1D395914C944} = {2B26A7AA-6D61-42FA-8AB7-C0F05AAE7F1C} - {22F59DDE-D0BC-4D58-BCDE-240C7EEBECB8} = {DA1786E4-30AB-434E-A827-92896390B79D} - {5A155B15-D8E7-47FE-8D17-8E641726158C} = {30308DE0-8128-4613-BCAD-B0BEFFB20E38} - {0A9643F2-FF99-4DA0-BC2B-D62D5D3C317A} = {30308DE0-8128-4613-BCAD-B0BEFFB20E38} - {969E793C-C413-490E-9C9D-B2B46DA5AF32} = {EF0337F2-ED00-4643-89FD-EE10863F1870} - {3572B4E2-4399-4797-B5C2-3720D870E0C3} = {EF0337F2-ED00-4643-89FD-EE10863F1870} - {7BA332A2-189D-4D03-9935-FDFF81C42496} = {BF3EF4F3-E4F5-41DA-9D2D-57223687D1A8} - {2F0DEF71-84AC-4212-86D4-E36E8896BDBF} = {326A7FB3-5295-468C-A4FE-67DCB823E1E5} - {2B26A7AA-6D61-42FA-8AB7-C0F05AAE7F1C} = {41139F64-4046-4F16-96B7-D941D96FA9C6} - {DA1786E4-30AB-434E-A827-92896390B79D} = {A5260DE0-1FDD-467E-9CC1-A028AB081CEE} - {30308DE0-8128-4613-BCAD-B0BEFFB20E38} = {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} - {79C64C7A-ED74-4F01-921F-92F4F9FC1E1D} = {932D8224-11F6-4D07-B109-DA28AD288A63} - {56AD1FCA-6E16-4798-BF29-941C5B3277D2} = {79C64C7A-ED74-4F01-921F-92F4F9FC1E1D} - {34ED3311-2B30-4C8B-823B-312B50FFC32A} = {79C64C7A-ED74-4F01-921F-92F4F9FC1E1D} - {A32A5254-BA36-46FC-8C75-F7B8FFE8FCD0} = {79C64C7A-ED74-4F01-921F-92F4F9FC1E1D} - {696D2B7E-6B75-401D-964A-BFE6F4D7AF73} = {79C64C7A-ED74-4F01-921F-92F4F9FC1E1D} - {424BC53E-17EA-4E12-BC07-64BAA927ABCB} = {79C64C7A-ED74-4F01-921F-92F4F9FC1E1D} - {0A328C44-4C4E-49BE-9FB4-9D851CEC28AC} = {56AD1FCA-6E16-4798-BF29-941C5B3277D2} - {98E0B3BA-6601-4C59-A9AA-24A00A17D835} = {A32A5254-BA36-46FC-8C75-F7B8FFE8FCD0} - {E39BD762-BC86-459D-B818-B6BF2D9F1352} = {424BC53E-17EA-4E12-BC07-64BAA927ABCB} - {ABBA561B-499B-48C0-8299-85D41E6E9E98} = {DB0EFB20-B024-4E5E-A75C-52143C131D25} - {CB6D01A4-E597-4348-9570-FC8DB03B4267} = {ABBA561B-499B-48C0-8299-85D41E6E9E98} - {8449B293-5949-4832-8612-6BCE2962BCB1} = {932D8224-11F6-4D07-B109-DA28AD288A63} - {7C8FA264-ED49-4ACA-9629-FCE5462B30AB} = {8449B293-5949-4832-8612-6BCE2962BCB1} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {25728519-5F0F-4973-8A64-0A81EB4EA8D9} - EndGlobalSection -EndGlobal From aafd8893d901cb36c2b64466e987f1cd8d4bda06 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Thu, 21 Nov 2019 10:49:36 +0000 Subject: [PATCH 143/149] Rename script to create aks resource --- deploy/k8s/{gen-k8s-env-aks.ps1 => create-aks.ps1} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename deploy/k8s/{gen-k8s-env-aks.ps1 => create-aks.ps1} (100%) diff --git a/deploy/k8s/gen-k8s-env-aks.ps1 b/deploy/k8s/create-aks.ps1 similarity index 100% rename from deploy/k8s/gen-k8s-env-aks.ps1 rename to deploy/k8s/create-aks.ps1 From 7faa1a40cff48c56dab554eb585fea58c9095487 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Thu, 21 Nov 2019 11:02:09 +0000 Subject: [PATCH 144/149] Add comment to Create-DockerfileSolutionRestore.ps1 script --- src/Create-DockerfileSolutionRestore.ps1 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Create-DockerfileSolutionRestore.ps1 b/src/Create-DockerfileSolutionRestore.ps1 index 8c6714bd5c..c5deb5013b 100644 --- a/src/Create-DockerfileSolutionRestore.ps1 +++ b/src/Create-DockerfileSolutionRestore.ps1 @@ -4,6 +4,12 @@ param ( $outfile = "DockerfileSolutionRestore.txt" +# This script creates the $outfile file, with Dockerfile commands to restore all the packages for the solution, +# so you can insert them (by hand) into Dockerfiles right before the "COPY . ." line +# to increase build speed by optimizing the use of docker build images cache. + +# This script is only needed when adding or removing projects from the solution. + Write-Output "COPY ""$solution"" ""$solution""" > $outfile Add-Content -Path $outfile "" From b24c48c840331dfec16160ad5b2243b4c1220700 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Thu, 21 Nov 2019 11:04:31 +0000 Subject: [PATCH 145/149] Remove deleted folder from .gitignore --- .gitignore | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitignore b/.gitignore index f3fdf2b8f1..2be2528096 100644 --- a/.gitignore +++ b/.gitignore @@ -26,9 +26,6 @@ bld/ # Visual Studio 2015 cache/options directory .vs/ -# Dockerfile projects folder for restore-packages script -csproj-files/ - # .js files created on build: src/Web/WebMVC/wwwroot/js/site* From fd69625578ecec9113a4c45a6b199c19b1aa6091 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Fri, 22 Nov 2019 10:33:39 +0000 Subject: [PATCH 146/149] Remove obsolete files --- obsolete/Local.testsettings | 13 - obsolete/docker-compose.override.yml | 418 -------------------------- obsolete/docker-compose.yml | 240 --------------- obsolete/run-docker-compose-build.ps1 | 14 - 4 files changed, 685 deletions(-) delete mode 100644 obsolete/Local.testsettings delete mode 100644 obsolete/docker-compose.override.yml delete mode 100644 obsolete/docker-compose.yml delete mode 100644 obsolete/run-docker-compose-build.ps1 diff --git a/obsolete/Local.testsettings b/obsolete/Local.testsettings deleted file mode 100644 index 4e1e6ab7f5..0000000000 --- a/obsolete/Local.testsettings +++ /dev/null @@ -1,13 +0,0 @@ - - - These are default test settings for a local test run. - - - - - - - - - - \ No newline at end of file diff --git a/obsolete/docker-compose.override.yml b/obsolete/docker-compose.override.yml deleted file mode 100644 index 1ec7879b3c..0000000000 --- a/obsolete/docker-compose.override.yml +++ /dev/null @@ -1,418 +0,0 @@ -version: '3.4' - -# The default docker-compose.override file can use the "localhost" as the external name for testing web apps within the same dev machine. -# The ESHOP_EXTERNAL_DNS_NAME_OR_IP environment variable is taken, by default, from the ".env" file defined like: -# ESHOP_EXTERNAL_DNS_NAME_OR_IP=localhost -# but values present in the environment vars at runtime will always override those defined inside the .env file -# An external IP or DNS name has to be used (instead localhost and the 10.0.75.1 IP) when testing the Web apps and the Xamarin apps from remote machines/devices using the same WiFi, for instance. - -services: - seq: - environment: - - ACCEPT_EULA=Y - ports: - - "5340:80" - - sql.data: - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5433:1433" # Important: In a production environment your should remove the external port - - nosql.data: - ports: - - "27017:27017" # Important: In a production environment your should remove the external port - - basket.data: - ports: - - "6379:6379" # Important: In a production environment your should remove the external port - - rabbitmq: - ports: - - "15672:15672" # Important: In a production environment your should remove the external port - - "5672:5672" # Important: In a production environment your should remove the external port - - identity.api: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - SpaClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5104 - - XamarinCallback=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105/xamarincallback #localhost do not work for UWP login, so we have to use "external" IP always - - ConnectionString=${ESHOP_AZURE_IDENTITY_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word} - - MvcClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5100 #Local: You need to open your local dev-machine firewall at range 5100-5110. - - LocationApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5109 - - MarketingApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5110 - - BasketApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5103 - - OrderingApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5102 - - MobileShoppingAggClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5120 - - WebShoppingAggClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5121 - - WebhooksApiClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5113 - - WebhooksWebClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5114 - - UseCustomizationData=True - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - ports: - - "5105:80" - - basket.api: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_REDIS_BASKET_DB:-basket.data} - - identityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. - - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - AzureServiceBusEnabled=False - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - UseLoadTest=${USE_LOADTEST:-False} - - ports: - - "5103:80" # Important: In a production environment your should remove the external port (5103) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). - - catalog.api: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_CATALOG_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word} - - PicBaseUrl=${ESHOP_AZURE_STORAGE_CATALOG_URL:-http://localhost:5202/api/v1/c/catalog/items/[0]/pic/} #Local: You need to open your local dev-machine firewall at range 5100-5110. - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - AzureStorageAccountName=${ESHOP_AZURE_STORAGE_CATALOG_NAME} - - AzureStorageAccountKey=${ESHOP_AZURE_STORAGE_CATALOG_KEY} - - UseCustomizationData=True - - AzureServiceBusEnabled=False - - AzureStorageEnabled=False - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - ports: - - "5101:80" # Important: In a production environment your should remove the external port (5101) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). - - ordering.api: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} - - identityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. - - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - UseCustomizationData=True - - AzureServiceBusEnabled=False - - CheckUpdateTime=30000 - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - UseLoadTest=${USE_LOADTEST:-False} - - Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose - - Serilog__MinimumLevel__Override__Ordering.API=Verbose - ports: - - "5102:80" # Important: In a production environment your should remove the external port (5102) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). - - - ordering.backgroundtasks: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_ORDERING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word} - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - UseCustomizationData=True - - AzureServiceBusEnabled=False - - CheckUpdateTime=30000 - - GracePeriodTime=1 - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - UseLoadTest=${USE_LOADTEST:-False} - - Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose - ports: - - "5111:80" - - marketing.api: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_MARKETING_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.MarketingDb;User Id=sa;Password=Pass@word} - - MongoConnectionString=${ESHOP_AZURE_COSMOSDB:-mongodb://nosql.data} - - MongoDatabase=MarketingDb - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - identityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. - - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - - CampaignDetailFunctionUri=${ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI} - - PicBaseUrl=${ESHOP_AZURE_STORAGE_MARKETING_URL:-http://localhost:5110/api/v1/campaigns/[0]/pic/} - - AzureStorageAccountName=${ESHOP_AZURE_STORAGE_MARKETING_NAME} - - AzureStorageAccountKey=${ESHOP_AZURE_STORAGE_MARKETING_KEY} - - AzureServiceBusEnabled=False - - AzureStorageEnabled=False - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - UseLoadTest=${USE_LOADTEST:-False} - ports: - - "5110:80" # Important: In a production environment your should remove the external port (5110) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). - - payment.api: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - AzureServiceBusEnabled=False - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - Serilog__MinimumLevel__Override__Payment.API.IntegrationEvents.EventHandling=Verbose - - Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose - ports: - - "5108:80" # Important: In a production environment your should remove the external port (5108) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). - - locations.api: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_COSMOSDB:-mongodb://nosql.data} - - Database=LocationsDb - - identityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. - - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - AzureServiceBusEnabled=False - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - UseLoadTest=${USE_LOADTEST:-False} - ports: - - "5109:80" # Important: In a production environment your should remove the external port (5109) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). - webhooks.api: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - ConnectionString=${ESHOP_AZURE_WEBHOOKS_DB:-Server=sql.data;Database=Microsoft.eShopOnContainers.Services.WebhooksDb;User Id=sa;Password=Pass@word} - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - IdentityUrl=http://identity.api - - IdentityUrlExternal=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 - ports: - - "5113:80" # Important: In a production environment your should remove the external port (5109) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). - - mobileshoppingapigw: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - IdentityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. - - urls__basket=http://basket.api - - urls__catalog=http://catalog.api - - urls__orders=http://ordering.api - - urls__identity=http://identity.api - - CatalogUrlHC=http://catalog.api/hc - - OrderingUrlHC=http://ordering.api/hc - - IdentityUrlHC=http://identity.api/hc - - BasketUrlHC=http://basket.api/hc - - MarketingUrlHC=http://marketing.api/hc - - PaymentUrlHC=http://payment.api/hc - - LocationUrlHC=http://locations.api/hc - ports: - - "5200:80" - volumes: - - ./src/ApiGateways/Mobile.Bff.Shopping/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration} - - mobilemarketingapigw: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - IdentityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. - - CatalogUrlHC=http://catalog.api/hc - - OrderingUrlHC=http://ordering.api/hc - - IdentityUrlHC=http://identity.api/hc - - BasketUrlHC=http://basket.api/hc - - MarketingUrlHC=http://marketing.api/hc - - PaymentUrlHC=http://payment.api/hc - - LocationUrlHC=http://locations.api/hc - ports: - - "5201:80" - volumes: - - ./src/ApiGateways/Mobile.Bff.Marketing/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration} - - webshoppingapigw: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - IdentityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. - - CatalogUrlHC=http://catalog.api/hc - - OrderingUrlHC=http://ordering.api/hc - - IdentityUrlHC=http://identity.api/hc - - BasketUrlHC=http://basket.api/hc - - MarketingUrlHC=http://marketing.api/hc - - PaymentUrlHC=http://payment.api/hc - - LocationUrlHC=http://locations.api/hc - ports: - - "5202:80" - volumes: - - ./src/ApiGateways/Web.Bff.Shopping/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration} - - webmarketingapigw: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - IdentityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. - - CatalogUrlHC=http://catalog.api/hc - - OrderingUrlHC=http://ordering.api/hc - - IdentityUrlHC=http://identity.api/hc - - BasketUrlHC=http://basket.api/hc - - MarketingUrlHC=http://marketing.api/hc - - PaymentUrlHC=http://payment.api/hc - - LocationUrlHC=http://locations.api/hc - ports: - - "5203:80" - volumes: - - ./src/ApiGateways/Web.Bff.Marketing/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration} - - mobileshoppingagg: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - urls__basket=http://basket.api - - urls__catalog=http://catalog.api - - urls__orders=http://ordering.api - - urls__identity=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. - - CatalogUrlHC=http://catalog.api/hc - - OrderingUrlHC=http://ordering.api/hc - - IdentityUrlHC=http://identity.api/hc - - BasketUrlHC=http://basket.api/hc - - MarketingUrlHC=http://marketing.api/hc - - PaymentUrlHC=http://payment.api/hc - - LocationUrlHC=http://locations.api/hc - ports: - - "5120:80" # Important: In a production environment your should remove the external port (5120) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). - - webshoppingagg: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - urls__basket=http://basket.api - - urls__catalog=http://catalog.api - - urls__orders=http://ordering.api - - urls__identity=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. - - CatalogUrlHC=http://catalog.api/hc - - OrderingUrlHC=http://ordering.api/hc - - IdentityUrlHC=http://identity.api/hc - - BasketUrlHC=http://basket.api/hc - - MarketingUrlHC=http://marketing.api/hc - - PaymentUrlHC=http://payment.api/hc - - LocationUrlHC=http://locations.api/hc - ports: - - "5121:80" # Important: In a production environment your should remove the external port (5121) kept here for microservice debugging purposes. - # The API Gateway redirects and access through the internal port (80). - - ordering.signalrhub: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - EventBusConnection=${ESHOP_AZURE_SERVICE_BUS:-rabbitmq} - - EventBusUserName=${ESHOP_SERVICE_BUS_USERNAME} - - EventBusPassword=${ESHOP_SERVICE_BUS_PASSWORD} - - AzureServiceBusEnabled=False - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - identityUrl=http://identity.api #Local: You need to open your local dev-machine firewall at range 5100-5110. - ports: - - "5112:80" - - webstatus: - environment: - - ASPNETCORE_ENVIRONMENT=Production - - ASPNETCORE_URLS=http://0.0.0.0:80 - - HealthChecksUI__HealthChecks__0__Name=WebMVC HTTP Check - - HealthChecksUI__HealthChecks__0__Uri=http://webmvc/hc - - HealthChecksUI__HealthChecks__1__Name=WebSPA HTTP Check - - HealthChecksUI__HealthChecks__1__Uri=http://webspa/hc - - HealthChecksUI__HealthChecks__2__Name=Web Shopping Aggregator GW HTTP Check - - HealthChecksUI__HealthChecks__2__Uri=http://webshoppingagg/hc - - HealthChecksUI__HealthChecks__3__Name=Mobile Shopping Aggregator HTTP Check - - HealthChecksUI__HealthChecks__3__Uri=http://mobileshoppingagg/hc - - HealthChecksUI__HealthChecks__4__Name=Mobile Shopping API GW HTTP Check - - HealthChecksUI__HealthChecks__4__Uri=http://mobileshoppingapigw/hc - - HealthChecksUI__HealthChecks__5__Name=Mobile Marketing API GW HTTP Check - - HealthChecksUI__HealthChecks__5__Uri=http://mobilemarketingapigw/hc - - HealthChecksUI__HealthChecks__6__Name=Web Shopping API GW HTTP Check - - HealthChecksUI__HealthChecks__6__Uri=http://webshoppingapigw/hc - - HealthChecksUI__HealthChecks__7__Name=Web Marketing API GW HTTP Check - - HealthChecksUI__HealthChecks__7__Uri=http://webmarketingapigw/hc - - HealthChecksUI__HealthChecks__8__Name=Ordering HTTP Check - - HealthChecksUI__HealthChecks__8__Uri=http://ordering.api/hc - - HealthChecksUI__HealthChecks__9__Name=Ordering HTTP Background Check - - HealthChecksUI__HealthChecks__9__Uri=http://ordering.backgroundtasks/hc - - HealthChecksUI__HealthChecks__10__Name=Basket HTTP Check - - HealthChecksUI__HealthChecks__10__Uri=http://basket.api/hc - - HealthChecksUI__HealthChecks__11__Name=Catalog HTTP Check - - HealthChecksUI__HealthChecks__11__Uri=http://catalog.api/hc - - HealthChecksUI__HealthChecks__12__Name=Identity HTTP Check - - HealthChecksUI__HealthChecks__12__Uri=http://identity.api/hc - - HealthChecksUI__HealthChecks__13__Name=Marketing HTTP Check - - HealthChecksUI__HealthChecks__13__Uri=http://marketing.api/hc - - HealthChecksUI__HealthChecks__14__Name=Locations HTTP Check - - HealthChecksUI__HealthChecks__14__Uri=http://locations.api/hc - - HealthChecksUI__HealthChecks__15__Name=Payments HTTP Check - - HealthChecksUI__HealthChecks__15__Uri=http://payment.api/hc - - HealthChecksUI__HealthChecks__16__Name=Ordering SignalRHub HTTP Check - - HealthChecksUI__HealthChecks__16__Uri=http://ordering.signalrhub/hc - - OrderingBackgroundTasksUrl=http://ordering.backgroundtasks/hc - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - ports: - - "5107:80" - - webspa: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - IdentityUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. - - PurchaseUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5202 - - MarketingUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5203 - - PurchaseUrlHC=http://webshoppingapigw/hc - - MarketingUrlHC=http://webmarketingapigw/hc - - IdentityUrlHC=http://identity.api/hc - - UseCustomizationData=True - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - SignalrHubUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5202 - ports: - - "5104:80" - - webmvc: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - PurchaseUrl=http://webshoppingapigw - - IdentityUrl=http://10.0.75.1:5105 # Local Mac: Use http://docker.for.mac.localhost:5105 || Local Windows: Use 10.0.75.1 in a "Docker for Windows" environment, if using "localhost" from browser. || #Remote access: Use ${ESHOP_EXTERNAL_DNS_NAME_OR_IP} if using external IP or DNS name from browser. - - MarketingUrl=http://webmarketingapigw - - SignalrHubUrl=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5202 - - IdentityUrlHC=http://identity.api/hc - - PurchaseUrlHC=http://webshoppingapigw/hc - - MarketingUrlHC=http://webmarketingapigw/hc - - UseCustomizationData=True - - ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY} - - OrchestratorType=${ORCHESTRATOR_TYPE} - - UseLoadTest=${USE_LOADTEST:-False} - ports: - - "5100:80" - - webhooks.client: - environment: - - ASPNETCORE_URLS=http://0.0.0.0:80 - - Token=6168DB8D-DC58-4094-AF24-483278923590 # Webhooks are registered with this token (any value is valid) but the client won't check it - - IdentityUrl=http://10.0.75.1:5105 - - CallBackUrl=http://localhost:5114 - - WebhooksUrl=http://webhooks.api - - SelfUrl=http://webhooks.client/ - ports: - - "5114:80" \ No newline at end of file diff --git a/obsolete/docker-compose.yml b/obsolete/docker-compose.yml deleted file mode 100644 index 6094f2ca27..0000000000 --- a/obsolete/docker-compose.yml +++ /dev/null @@ -1,240 +0,0 @@ -version: '3.4' - -services: - - seq: - image: datalust/seq:latest - - sql.data: - image: mcr.microsoft.com/mssql/server:2017-latest - - nosql.data: - image: mongo - - basket.data: - image: redis:alpine - - rabbitmq: - image: rabbitmq:3-management-alpine - - identity.api: - image: ${REGISTRY:-eshop}/identity.api:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Services/Identity/Identity.API/Dockerfile - depends_on: - - sql.data - - basket.api: - image: ${REGISTRY:-eshop}/basket.api:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Services/Basket/Basket.API/Dockerfile - depends_on: - - basket.data - - identity.api - - rabbitmq - - catalog.api: - image: ${REGISTRY:-eshop}/catalog.api:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Services/Catalog/Catalog.API/Dockerfile - depends_on: - - sql.data - - rabbitmq - - ordering.api: - image: ${REGISTRY:-eshop}/ordering.api:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Services/Ordering/Ordering.API/Dockerfile - depends_on: - - sql.data - - rabbitmq - - ordering.backgroundtasks: - image: ${REGISTRY:-eshop}/ordering.backgroundtasks:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile - depends_on: - - sql.data - - rabbitmq - - marketing.api: - image: ${REGISTRY:-eshop}/marketing.api:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Services/Marketing/Marketing.API/Dockerfile - depends_on: - - sql.data - - nosql.data - - identity.api - - rabbitmq - - payment.api: - image: ${REGISTRY:-eshop}/payment.api:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Services/Payment/Payment.API/Dockerfile - depends_on: - - rabbitmq - - locations.api: - image: ${REGISTRY:-eshop}/locations.api:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Services/Location/Locations.API/Dockerfile - depends_on: - - nosql.data - - rabbitmq - - webhooks.api: - image: ${REGISTRY:-eshop}/webhooks.api:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Services/Webhooks/Webhooks.API/Dockerfile - depends_on: - - sql.data - - mobileshoppingapigw: - image: ${REGISTRY:-eshop}/ocelotapigw:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/ApiGateways/ApiGw-Base/Dockerfile - depends_on: - - nosql.data - - sql.data - - identity.api - - rabbitmq - - ordering.api - - marketing.api - - catalog.api - - basket.api - - mobilemarketingapigw: - image: ${REGISTRY:-eshop}/ocelotapigw:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/ApiGateways/ApiGw-Base/Dockerfile - depends_on: - - nosql.data - - sql.data - - identity.api - - rabbitmq - - ordering.api - - marketing.api - - catalog.api - - basket.api - - webshoppingapigw: - image: ${REGISTRY:-eshop}/ocelotapigw:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/ApiGateways/ApiGw-Base/Dockerfile - depends_on: - - nosql.data - - sql.data - - identity.api - - rabbitmq - - ordering.api - - marketing.api - - catalog.api - - basket.api - - webmarketingapigw: - image: ${REGISTRY:-eshop}/ocelotapigw:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/ApiGateways/ApiGw-Base/Dockerfile - depends_on: - - nosql.data - - sql.data - - identity.api - - rabbitmq - - ordering.api - - marketing.api - - catalog.api - - basket.api - - mobileshoppingagg: - image: ${REGISTRY:-eshop}/mobileshoppingagg:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile - depends_on: - - nosql.data - - sql.data - - identity.api - - rabbitmq - - ordering.api - - marketing.api - - catalog.api - - basket.api - - webshoppingagg: - image: ${REGISTRY:-eshop}/webshoppingagg:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile - depends_on: - - nosql.data - - sql.data - - identity.api - - rabbitmq - - ordering.api - - marketing.api - - catalog.api - - basket.api - - ordering.signalrhub: - image: ${REGISTRY:-eshop}/ordering.signalrhub:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Services/Ordering/Ordering.SignalrHub/Dockerfile - depends_on: - - nosql.data - - sql.data - - identity.api - - rabbitmq - - ordering.api - - marketing.api - - catalog.api - - basket.api - - webstatus: - image: ${REGISTRY:-eshop}/webstatus:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Web/WebStatus/Dockerfile - - webspa: - image: ${REGISTRY:-eshop}/webspa:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Web/WebSPA/Dockerfile - args: - NODE_IMAGE: ${NODE_IMAGE:-node:8.11} -# depends_on: -# - webshoppingagg -# - webshoppingapigw -# - webmarketingapigw - - webmvc: - image: ${REGISTRY:-eshop}/webmvc:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Web/WebMVC/Dockerfile - depends_on: - - webshoppingagg - - webshoppingapigw - - webmarketingapigw - - webhooks.client: - image: ${REGISTRY:-eshop}/webhooks.client:${PLATFORM:-linux}-${TAG:-latest} - build: - context: . - dockerfile: src/Web/WebhookClient/Dockerfile - depends_on: - - webhooks.api \ No newline at end of file diff --git a/obsolete/run-docker-compose-build.ps1 b/obsolete/run-docker-compose-build.ps1 deleted file mode 100644 index 7d99ee0e75..0000000000 --- a/obsolete/run-docker-compose-build.ps1 +++ /dev/null @@ -1,14 +0,0 @@ -$startTime = $(Get-Date) - -docker-compose build - -$elapsedTime = $(Get-Date) - $startTime - -$elapsedTime - -# "Beep" from: http://jeffwouters.nl/index.php/2012/03/get-your-geek-on-with-powershell-and-some-music/ -[console]::beep(900,400) -[console]::beep(1000,400) -[console]::beep(800,400) -[console]::beep(400,400) -[console]::beep(600,1600) From 025d13e4ca8e2ea41db0caab4344aded0ffdc0d6 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Sat, 23 Nov 2019 12:37:28 +0000 Subject: [PATCH 147/149] Make installation work in local kubernetes --- deploy/k8s/deploy-ingress-dockerlocal.ps1 | 2 + deploy/k8s/deploy-ingress.ps1 | 2 + deploy/k8s/helm/app.yaml | 61 ++++++------ deploy/k8s/helm/deploy-all-istio.ps1 | 116 ---------------------- deploy/k8s/nodeports/rabbitmq-admin.yaml | 12 +++ deploy/k8s/nodeports/sql-service.yaml | 12 +++ 6 files changed, 58 insertions(+), 147 deletions(-) create mode 100644 deploy/k8s/deploy-ingress-dockerlocal.ps1 create mode 100644 deploy/k8s/deploy-ingress.ps1 delete mode 100644 deploy/k8s/helm/deploy-all-istio.ps1 create mode 100644 deploy/k8s/nodeports/rabbitmq-admin.yaml create mode 100644 deploy/k8s/nodeports/sql-service.yaml diff --git a/deploy/k8s/deploy-ingress-dockerlocal.ps1 b/deploy/k8s/deploy-ingress-dockerlocal.ps1 new file mode 100644 index 0000000000..43bf5704df --- /dev/null +++ b/deploy/k8s/deploy-ingress-dockerlocal.ps1 @@ -0,0 +1,2 @@ +kubectl apply -f nginx-ingress\cm.yaml +kubectl apply -f nginx-ingress\cloud-generic.yaml diff --git a/deploy/k8s/deploy-ingress.ps1 b/deploy/k8s/deploy-ingress.ps1 new file mode 100644 index 0000000000..5949867454 --- /dev/null +++ b/deploy/k8s/deploy-ingress.ps1 @@ -0,0 +1,2 @@ +# Deploy nginx-ingress core files +kubectl apply -f nginx-ingress\mandatory.yaml diff --git a/deploy/k8s/helm/app.yaml b/deploy/k8s/helm/app.yaml index d57fd88369..e83ea28232 100644 --- a/deploy/k8s/helm/app.yaml +++ b/deploy/k8s/helm/app.yaml @@ -1,36 +1,35 @@ # This helm values file defines app-based settings # Charts use those values, so this file **MUST** be included in all chart releases - -app: # app global settings - name: "my-eshop" # Override for custom app name - ingress: # ingress related settings +app: # app global settings + name: "my-eshop" # Override for custom app name + ingress: # ingress related settings entries: - basket: basket-api # ingress entry for basket api - catalog: catalog-api # ingress entry for catalog api - ordering: ordering-api # ingress entry for ordering api - identity: identity # ingress entry for identity api - mvc: webmvc # ingress entry for web mvc - spa: "" # ingress entry for web spa - status: webstatus # ingress entry for web status - webshoppingapigw: webshoppingapigw # ingress entry for web shopping Agw - webmarketingapigw: webmarketingapigw # ingress entry for web mkg Agw - mobilemarketingapigw: mobilemarketingapigw # ingress entry for mobile mkg Agw - mobileshoppingapigw: mobileshoppingapigw # ingress entry for mobile shopping Agw - webshoppingagg: webshoppingagg # ingress entry for web shopping aggregator - mobileshoppingagg: mobileshoppingagg # ingress entry for mobile shopping aggregator - payment: payment-api # ingress entry for payment api - locations: locations-api # ingress entry for locations api - marketing: marketing-api # ingress entry for marketing api - webhooks: webhooks-api # ingress entry for webhooks api - webhooksweb: webhooks-web # ingress entry for webhooks web demo client + basket: basket-api # ingress entry for basket api + catalog: catalog-api # ingress entry for catalog api + ordering: ordering-api # ingress entry for ordering api + identity: identity # ingress entry for identity api + mvc: webmvc # ingress entry for web mvc + spa: "" # ingress entry for web spa + status: webstatus # ingress entry for web status + webshoppingapigw: webshoppingapigw # ingress entry for web shopping Agw + webmarketingapigw: webmarketingapigw # ingress entry for web mkg Agw + mobilemarketingapigw: mobilemarketingapigw # ingress entry for mobile mkg Agw + mobileshoppingapigw: mobileshoppingapigw # ingress entry for mobile shopping Agw + webshoppingagg: webshoppingagg # ingress entry for web shopping aggregator + mobileshoppingagg: mobileshoppingagg # ingress entry for mobile shopping aggregator + payment: payment-api # ingress entry for payment api + locations: locations-api # ingress entry for locations api + marketing: marketing-api # ingress entry for marketing api + webhooks: webhooks-api # ingress entry for webhooks api + webhooksweb: webhooks-web # ingress entry for webhooks web demo client svc: - basket: basket-api # service name for basket api - catalog: catalog-api # service name for catalog api - ordering: ordering-api # service name for ordering api - orderingbackgroundtasks: ordering-backgroundtasks # service name for orderingbackgroundtasks + basket: basket-api # service name for basket api + catalog: catalog-api # service name for catalog api + ordering: ordering-api # service name for ordering api + orderingbackgroundtasks: ordering-backgroundtasks # service name for orderingbackgroundtasks orderingsignalrhub: ordering-signalrhub # service name for orderingsignalrhub - identity: identity-api # service name for identity api + identity: identity-api # service name for identity api mvc: webmvc # service name for web mvc spa: webspa # service name for web spa status: webstatus # service name for web status @@ -40,8 +39,8 @@ app: # app global settings mobileshoppingapigw: mobileshoppingapigw # service name for mobile shopping Agw webshoppingagg: webshoppingagg # service name for web shopping aggregator mobileshoppingagg: mobileshoppingagg # service name for mobile shopping aggregator - payment: payment-api # service name for payment api - locations: locations-api # service name for locations api + payment: payment-api # service name for payment api + locations: locations-api # service name for locations api marketing: marketing-api # service name for marketing ap - webhooks: webhooks-api # service name for webhooks api - webhooksweb: webhooks-client # service name for webhooks web + webhooks: webhooks-api # service name for webhooks api + webhooksweb: webhooks-client # service name for webhooks web diff --git a/deploy/k8s/helm/deploy-all-istio.ps1 b/deploy/k8s/helm/deploy-all-istio.ps1 deleted file mode 100644 index 5e05c6dbbd..0000000000 --- a/deploy/k8s/helm/deploy-all-istio.ps1 +++ /dev/null @@ -1,116 +0,0 @@ -Param( - [parameter(Mandatory=$false)][string]$registry, - [parameter(Mandatory=$false)][bool]$installIstioOnSystem=$false, - [parameter(Mandatory=$false)][string]$dockerUser, - [parameter(Mandatory=$false)][string]$dockerPassword, - [parameter(Mandatory=$false)][string]$externalDns="aks", - [parameter(Mandatory=$false)][string]$dnsname="eshoptestistio", - [parameter(Mandatory=$false)][string]$appName="eshop", - [parameter(Mandatory=$false)][bool]$deployInfrastructure=$true, - [parameter(Mandatory=$false)][string]$kialiuser="admin", - [parameter(Mandatory=$false)][string]$kialipasswrd="admin", - [parameter(Mandatory=$false)][bool]$clean=$true, - [parameter(Mandatory=$false)][string]$aksName="", - [parameter(Mandatory=$false)][string]$aksRg="", - [parameter(Mandatory=$false)][string]$imageTag="latest", - [parameter(Mandatory=$false)][bool]$useLocalk8s=$false - ) - -$dns = $externalDns - -# Instalamos Istio -# Specify the Istio version that will be leveraged throughout these instructions -$ISTIO_VERSION="1.0.6" - -# Windows -$ProgressPreference = 'SilentlyContinue'; -[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -Invoke-WebRequest -URI "https://github.com/istio/istio/releases/download/$ISTIO_VERSION/istio-$ISTIO_VERSION-win.zip" -OutFile "istio-$ISTIO_VERSION.zip" -Remove-Item istio-$ISTIO_VERSION -Recurse -ErrorAction Ignore -Expand-Archive -Path "istio-$ISTIO_VERSION.zip" -DestinationPath . - -if($installIstioOnSystem -eq $true) { - New-Item -ItemType Directory -Force -Path "C:\Program Files\Istio" - mv ./istio-$ISTIO_VERSION/bin/istioctl.exe "C:\Program Files/Istio/" - $PATH = [environment]::GetEnvironmentVariable("PATH", "User") - [environment]::SetEnvironmentVariable("PATH", $PATH + "; C:\Program Files\Istio", "User") -} -# Primero Desinstalamos cualquier cosa que haya en el cluster -if ($clean -eq $true) { - Write-Host "Cleaning previous helm releases..." -ForegroundColor Green - helm delete --purge $(helm ls -q) - kubectl delete -f istio-$ISTIO_VERSION/install/kubernetes/helm/istio/templates/crds.yaml -n istio-system - Write-Host "Previous releases deleted" -ForegroundColor Green -} - -Write-Host "Generating Kiali Credentials" -ForegroundColor Green -#generamos la credenciales para que kiali arranque sin problemas -kubectl -n istio-system create secret generic kiali --from-literal=username=$kialiuser --from-literal=passphrase=$kialipasswrd - - -Write-Host "Deploying Istio in the cluster" -ForegroundColor Green -helm install istio-$ISTIO_VERSION/install/kubernetes/helm/istio --wait --name istio --namespace istio-system --set global.controlPlaneSecurityEnabled=true --set grafana.enabled=true --set tracing.enabled=true --set kiali.enabled=true - -Write-Host "Setting Up Gateway" -kubectl delete gateway istio-autogenerated-k8s-ingress -n istio-system -kubectl apply -f ./istio/gateway.yml - -if ($useLocalk8s -eq $true) { - $dns="localhost" - $externalDns="localhost" -} -else { - Write-Host "Resolving DNS to Gateway public IP" -ForegroundColor Green - $ipaddress = $(kubectl get service istio-ingressgateway -n istio-system)[1] | %{ $_.Split(' ')[9];} - $query = "[?ipAddress!=null]|[?contains([ipAddress], '$ipaddress')].[id]" - $resid = az network public-ip list --query $query --output tsv - $jsonresponse = az network public-ip update --ids $resid --dns-name $dnsname - $externalDns = ($jsonresponse | ConvertFrom-Json).dnsSettings.fqdn - Write-Host "$externalDns is pointing to Cluster public ip $ipaddress" -} - -$useCustomRegistry=$false -if (-not [string]::IsNullOrEmpty($registry)) { - $useCustomRegistry=$true - if ([string]::IsNullOrEmpty($dockerUser) -or [string]::IsNullOrEmpty($dockerPassword)) { - Write-Host "Error: Must use -dockerUser AND -dockerPassword if specifying custom registry" -ForegroundColor Red - exit 1 - } -} -Write-Host "Begin eShopOnContainers installation using Helm" -ForegroundColor Green - -$infras = ("sql-data", "nosql-data", "rabbitmq", "keystore-data", "basket-data") -$charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-api","catalog-api", "identity-api", "locations-api", "marketing-api", "mobileshoppingagg","ordering-api","ordering-backgroundtasks","ordering-signalrhub", "payment-api", "webmvc", "webshoppingagg", "webspa", "webstatus", "webhooks-api", "webhooks-web") - -if ($deployInfrastructure) { - foreach ($infra in $infras) { - Write-Host "Installing infrastructure: $infra" -ForegroundColor Green - helm install --values app.yaml --values inf.yaml --set app.name=$appName --set inf.k8s.dns=$externalDns --name="$appName-$infra" $infra - } -} - -foreach ($chart in $charts) { - Write-Host "Installing: $chart" -ForegroundColor Green - if ($useCustomRegistry) { - helm install --set inf.registry.server=$registry --set inf.registry.login=$dockerUser --set inf.registry.pwd=$dockerPassword --set inf.registry.secretName=eshop-docker-scret --values app.yaml --values inf.yaml --values $ingressValuesFile --set app.name=$appName --set inf.k8s.dns=$dns --set image.tag=$imageTag --set image.pullPolicy=Always --name="$appName-$chart" $chart - } - else { - if ($chart -ne "eshop-common") { # eshop-common is ignored when no secret must be deployed - helm install --values app.yaml --values inf.yaml --set app.name=$appName --set inf.k8s.dns=$externalDns --set image.tag=$imageTag --set image.pullPolicy=Always --name="$appName-$chart" $chart - } - } -} - -Write-Host "helm charts installed." -ForegroundColor Green -Write-Host "Appling Virtual Services for routing." -ForegroundColor Green -kubectl apply -f ./istio/virtualservices.yml - -Remove-Item istio-$ISTIO_VERSION -Recurse -ErrorAction Ignore -Remove-Item istio-$ISTIO_VERSION.zip -Recurse -ErrorAction Ignore - - - - - - - diff --git a/deploy/k8s/nodeports/rabbitmq-admin.yaml b/deploy/k8s/nodeports/rabbitmq-admin.yaml new file mode 100644 index 0000000000..30d2facf16 --- /dev/null +++ b/deploy/k8s/nodeports/rabbitmq-admin.yaml @@ -0,0 +1,12 @@ +kind: Service +apiVersion: v1 +metadata: + name: rabbitmq-admin +spec: + type: NodePort + selector: + app: rabbitmq + ports: + - port: 15672 + nodePort: 31672 + name: rabbitmq-port diff --git a/deploy/k8s/nodeports/sql-service.yaml b/deploy/k8s/nodeports/sql-service.yaml new file mode 100644 index 0000000000..7b0233b68e --- /dev/null +++ b/deploy/k8s/nodeports/sql-service.yaml @@ -0,0 +1,12 @@ +kind: Service +apiVersion: v1 +metadata: + name: sql-service +spec: + type: NodePort + selector: + app: sql-data + ports: + - port: 1433 + nodePort: 31433 + name: sql-port From a4ef680e04e97f6a287a563c87a68e2952a3e3c5 Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Tue, 26 Nov 2019 16:46:40 +0000 Subject: [PATCH 148/149] Update README --- README.md | 150 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 101 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index ac253887c3..d34764f2b9 100644 --- a/README.md +++ b/README.md @@ -1,123 +1,174 @@ # eShopOnContainers - Microservices Architecture and Containers based Reference Application (**BETA state** - Visual Studio and CLI environments compatible) + Sample .NET Core reference application, powered by Microsoft, based on a simplified microservices architecture and Docker containers. ## Linux Build Status for 'dev' branch Dev branch contains the latest "stable" code, and their images are tagged with `:dev` in our [Docker Hub](https://cloud.docker.com/u/eshop/repository/list): -| Basket API | Catalog API | Identity API | Location API | +| Basket API | Catalog API | Identity API | Location API | | ------------- | ------------- | ------------- | ------------- | | [![Basket API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/basket?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=199&branchName=dev) | [![Catalog API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/catalog?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=197&branchName=dev) | [![Identity API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/identity?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=200&branchName=dev) | [![Location API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/location?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=202&branchName=dev) | | Marketing API | Ordering API | Payment API | Api Gateways base image | | ------------- | ------------- | ------------- | ------------- | -| [![Marketing API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/marketing?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=203&branchName=dev) | [![Ordering API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/ordering?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=198&branchName=dev) | [![Payment API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/payment?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=205&branchName=dev) | [![Api Gateways base image](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/apigws?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=201&branchName=dev) +| [![Marketing API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/marketing?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=203&branchName=dev) | [![Ordering API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/ordering?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=198&branchName=dev) | [![Payment API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/payment?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=205&branchName=dev) | [![Api Gateways base image](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/apigws?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=201&branchName=dev) | Web Shopping Aggregator | Mobile Shopping Aggregator | WebMVC Client | WebSPA Client | | ------------- | ------------- | ------------- | ------------- | | [![Web Shopping Aggregator](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/web-shopping-agg?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=206&branchName=dev) | [![Mobile Shopping Aggregator](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/mobile-shopping-agg?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=204&branchName=dev) | [![WebMVC Client](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webmvc?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=209&branchName=dev) | [![WebSPA Client](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webspa?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=210&branchName=dev) | -| Web Status | Webhooks API | Webbhooks demo client | +| Web Status | Webhooks API | Webhooks demo client | | ------------- | ------------- | ------------- | [![Web Status](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webstatus?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=211&branchName=dev) | [![Webhooks API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webhooks?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=207&branchName=dev) | [![Webhooks demo client](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webhooks-client?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=208&branchName=dev) | ## Getting Started -eShopOnContainers is provided in "two flavours": +eShopOnContainers is provided in "two flavors": -* Basic scenario: Can be run locally using docker compose, and also deployed to a local Kubernetes cluster -* Production scenario: Can only be deployed on a Kubernetes cluster (local or in the cloud like AKS), and enable production features like the use of a Service Mesh. +- Basic scenario: Can be run locally using docker compose, and also deployed to a local Kubernetes cluster +- Production scenario: Can only be deployed on a Kubernetes cluster (local or in the cloud like AKS), and enable production features like the use of a Service Mesh. ### Basic scenario You can run eShop locally: -* [Using Visual Studio](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Windows-setup) -* Using CLI or Visual Studio Code -* Using docker compose -* Using local Kubernetes +- [Using Visual Studio](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Windows-setup) +- Using CLI or Visual Studio Code +- Using docker compose +- Using local Kubernetes ### Advanced scenario The Advanced scenario can be run only in a Kubernetes cluster. Currently this scenario is the same as basic scenario with the following differences: -* Use of a Service Mesh for Resiliency +- Use of a Service Mesh for Resiliency In the future more features will be implemented in the advanced scenario. ## IMPORTANT NOTES! -**You can use either the latest version of Visual Studio or simply Docker CLI and .NET CLI for Windows, Mac and Linux**. +**You can use either the latest version of Visual Studio or simply Docker CLI and .NET CLI for Windows, Mac and Linux**. -**Note for Pull Requests (PRs)**: We accept pull request from the community. When doing it, please do it onto the **DEV branch** which is the consolidated work-in-progress branch. Do not request it onto Master branch, if possible. +**Note for Pull Requests (PRs)**: We accept pull request from the community. When doing it, please do it onto the **DEV branch** which is the consolidated work-in-progress branch. Do not request it onto **master** branch. **NEWS / ANNOUNCEMENTS** -Do you want to be up-to-date on .NET Architecture guidance and reference apps like eShopOnContainers? --> Subscribe by "WATCHING" this new GitHub repo: https://github.com/dotnet-architecture/News +Do you want to be up-to-date on .NET Architecture guidance and reference apps like eShopOnContainers? --> Subscribe by "WATCHING" this new GitHub repo: https://github.com/dotnet-architecture/News ## Updated for .NET Core 3.0 + eShopOnContainers is updated to .NET Core 3.0 "wave" of technologies. Not just compilation but also new recommended code in EF Core, ASP.NET Core, and other new related versions. -The **dockerfiles** in the solution have also been updated and now support [**Docker Multi-Stage**](https://blogs.msdn.microsoft.com/stevelasker/2017/09/11/net-and-multistage-dockerfiles/) since mid-December 2017. +### Details on the latest mayor release ->**PLEASE** Read our [branch guide](./branch-guide.md) to know about our branching policy +- Migrate solution from ASP.NET Core 2.2 to 3.0 and update all projects to use the latest .NET Core 3.0 templates. + +- Implement the new .NET Core 3.0 WorkerService in Ordering.API and other background processes. + +- Improve Ordering.API + - Group order items + - apply discounts from Marketing.API + +- Handle two deployment scenarios + - Basic deployment, better for learning: + - Docker compose + - Local Kubernetes + - Visual Studio F5 experience + + - Advanced deployment, complex but more real-life: + - Sidecar implementation with Envoy/Linkerd + - Improved API Gateway and resilience + - gRPC for inter-service communications + - Test and Support Azure Dev Spaces + +### New folder structure + +The repo also has a new, simpler, folder structure, as shown in the following image: +![](img/new-folder-structure.png) + +In the above image you can see that the first folder level contains, basically: + +- **build**: Scripts for building Docker images. +- **deploy**: Scripts for deployment. +- **src**: All source projects, including tests. + - **ApiGateways**: Envoy configuration and Aggregators source code. + - **BuildBlocks**: Common components used by several projects. + - **Mobile**: Mobile apps projects. + - **Services**: Backend for all services. Including unit and functional tests for some projects. + - Basket + - Catalog + - Identity + - Location + - Marketing + - Ordering + - Payment + - Webhooks + - **Tests**: General functional application tests. + - **test-results**: Test results + - **Web**: Web applications + +>**PLEASE** Read our [branch guide](./branch-guide.md) to know about our branching policy +> > ### DISCLAIMER > > **IMPORTANT:** The current state of this sample application is **BETA**, because we are constantly evolving towards newly released technologies. Therefore, many areas could be improved and change significantly while refactoring the current code and implementing new features. Feedback with improvements and pull requests from the community will be highly appreciated and accepted. > > This reference application proposes a simplified microservice oriented architecture implementation to introduce technologies like .NET Core with Docker containers through a comprehensive application. The chosen domain is eShop/eCommerce but simply because it is a well-known domain by most people/developers. However, this sample application should not be considered as an "eCommerce reference model" at all. The implemented business domain might not be ideal from an eCommerce business point of view. It is neither trying to solve all the problems in a large, scalable and mission-critical distributed system. It is just a bootstrap for developers to easily get started in the world of Docker containers and microservices with .NET Core. ->

For example, the next step after running the solution in the local dev PC and understanding Docker containers and microservices development with .NET Core, is to select a microservice cluster/orchestrator like Kubernetes in Azure (AKS) or Azure Service Fabric, both environments tested and supported by this solution. +> +> For example, the next step after running the solution in the local dev PC and understanding Docker containers and microservices development with .NET Core, is to select a microservice cluster/orchestrator like Kubernetes in Azure (AKS) or Azure Service Fabric, both environments tested and supported by this solution. > Additional steps would be to move your databases to HA cloud services (like Azure SQL Database) or switch your EventBus to use Azure Service Bus (instead of bare-bone RabbitMQ) or any other production-ready Service Bus in the market. ![image](https://user-images.githubusercontent.com/1712635/40397331-059a7ec6-5de7-11e8-8542-a597eca16fef.png) -> Read the planned Roadmap within the Wiki for further info about possible new implementations and provide feedback at the ISSUES section if you'd like to see any specific scenario implemented or improved. Also, feel free to discuss on any current issue. +> Read the planned [Roadmap](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Roadmap) within the Wiki for further info about possible new implementations and provide feedback at the [ISSUES section](https://github.com/dotnet/eShopOnContainers/issues) if you'd like to see any specific scenario implemented or improved. Also, feel free to discuss on any current issue. + +### Architecture overview -### Architecture overview This reference application is cross-platform at the server and client side, thanks to .NET Core services capable of running on Linux or Windows containers depending on your Docker host, and to Xamarin for mobile apps running on Android, iOS or Windows/UWP plus any browser for the client web apps. -The architecture proposes a microservice oriented architecture implementation with multiple autonomous microservices (each one owning its own data/db) and implementing different approaches within each microservice (simple CRUD vs. DDD/CQRS patterns) using Http as the communication protocol between the client apps and the microservices and supports asynchronous communication for data updates propagation across multiple services based on Integration Events and an Event Bus (a light message broker, to choose between RabbitMQ or Azure Service Bus, underneath) plus other features defined at the roadmap. -

- - -

+The architecture proposes a microservice oriented architecture implementation with multiple autonomous microservices (each one owning its own data/db) and implementing different approaches within each microservice (simple CRUD vs. DDD/CQRS patterns) using Http as the communication protocol between the client apps and the microservices and supports asynchronous communication for data updates propagation across multiple services based on Integration Events and an Event Bus (a light message broker, to choose between RabbitMQ or Azure Service Bus, underneath) plus other features defined at the [roadmap](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Roadmap). -> ### Important Note on API Gateways and published APIs -> Since April 2018, we have introduced the implementation of the [API Gateway pattern](http://microservices.io/patterns/apigateway.html) and [Backend-For-Front-End (BFF) pattern](https://samnewman.io/patterns/architectural/bff/) in eShopOnContainers architecture, so you can filter and publish simplified APIs and URIs and apply additional security in that tier while hiding/securing the internal microservices to the client apps or outside consumers. These sample API Gateways in eShopOnContainers are based on [Ocelot](https://github.com/ThreeMammals/Ocelot), an OSS lightweight API Gateway solution explained [here](http://threemammals.com/ocelot). The deployed API Gateways are autonomous and can be deployed as your own custom microservices/containers, as it is currently done in eShopOnContainers, so you can test it even in a simple development environment with just Docker engine or deploy it into orchestrators like Kubernetes in AKS or Service Fabric. +![](img/eshop_logo.png) +![](https://user-images.githubusercontent.com/1712635/38758862-d4b42498-3f27-11e8-8dad-db60b0fa05d3.png) -> For your production-ready architecture you can either keep using [Ocelot](https://github.com/ThreeMammals/Ocelot) which is simple and easy to use and used in production by significant companies or if you need further functionality and a much richer set of features suitable for commercial APIs, you can also substitute those API Gateways and use [Azure API Management](https://azure.microsoft.com/en-us/services/api-management/) or any other commercial API Gateway, as shown in the following image. +> ### Important Note on API Gateways and published APIs +> +> Since April 2018, we have introduced the implementation of the [API Gateway pattern](http://microservices.io/patterns/apigateway.html) and [Backend-For-Front-End (BFF) pattern](https://samnewman.io/patterns/architectural/bff/) in eShopOnContainers architecture, so you can filter and publish simplified APIs and URIs and apply additional security in that tier while hiding/securing the internal microservices to the client apps or outside consumers. These sample API Gateways in eShopOnContainers are based on [Envoy](https://www.envoyproxy.io/), an OSS, production-grade API Gateway and proxy [described in the official documentation page](https://www.envoyproxy.io/docs/envoy/latest/). The deployed API Gateways are autonomous and can be deployed as your own custom microservices/containers, as it is currently done in eShopOnContainers, so you can test it even in a simple development environment with just Docker engine or deploy it into orchestrators like Kubernetes in AKS or Service Fabric. +> +> For your production-ready architecture you can either keep using Envoy or, if you need further functionality and a much richer set of features suitable for commercial APIs, you can also substitute those API Gateways and use [Azure API Management](https://azure.microsoft.com/services/api-management/) or any other commercial API Gateway. -

- -

+![](img/eShopOnContainers-Architecture-With-Azure-API-Management.png) > The sample code in this repo is NOT making use of Azure API Management in order to be able to provide an "F5 experience" in Visual Studio (or CLI) of the sample with no up-front dependencies in Azure. But you could evaluate API Gateways alternatives when building for production. - +> > ### Internal architecture and design of the microservices - +> > The microservices are different in type, meaning different internal architecture pattern approaches depending on its purpose, as shown in the image below. -

- -

-

+ +![](img/eShopOnContainers_Types_Of_Microservices.png) > ### Important Note on Database Servers/Containers +> > In this solution's current configuration for a development environment, the SQL databases are automatically deployed with sample data into a single SQL Server container (a single shared Docker container for SQL databases) so the whole solution can be up and running without any dependency to any cloud or a specific server. Each database could also be deployed as a single Docker container, but then you'd need more than 8GB of RAM assigned to Docker in your development machine in order to be able to run 3 SQL Server Docker containers in your Docker Linux host in "Docker for Windows" or "Docker for Mac" development environments. ->

A similar case is defined in regard to Redis cache running as a container for the development environment. Or a No-SQL database (MongoDB) running as a container. ->

However, in a real production environment it is recommended to have your databases (SQL Server, Redis, and the NO-SQL database, in this case) in HA (High Available) services like Azure SQL Database, Redis as a service and Azure CosmosDB instead the MongoDB container (as both systems share the same access protocol). If you want to change to a production configuration, you'll just need to change the connection strings once you have set up the servers in an HA cloud or on-premises. - +> +> A similar case is defined in regard to Redis cache running as a container for the development environment. Or a No-SQL database (MongoDB) running as a container. +> +> However, in a real production environment it is recommended to have your databases (SQL Server, Redis, and the NO-SQL database, in this case) in HA (High Available) services like Azure SQL Database, Redis as a service and Azure CosmosDB instead the MongoDB container (as both systems share the same access protocol). If you want to change to a production configuration, you'll just need to change the connection strings once you have set up the servers in an HA cloud or on-premises. +> > ### Important Note on EventBus -> In this solution's current EventBus is a simplified implementation, mainly used for learning purposes (development and testing), so it doesn't handle all production scenarios, most notably on error handling.

-> The following forks provide production environment level implementation examples with eShopOnContainers : -> * Implementation with [NServiceBus](https://github.com/Particular/NServiceBus) : https://github.com/Particular/eShopOnContainers -> * Implementation with [CAP](https://github.com/dotnetcore/CAP) : https://github.com/yang-xiaodong/eShopOnContainers +> +> In this solution's current EventBus is a simplified implementation, mainly used for learning purposes (development and testing), so it doesn't handle all production scenarios, most notably on error handling. +> The following fork provides production environment level implementation examples with eShopOnContainers: +> +> - Implementation with [NServiceBus](https://github.com/Particular/NServiceBus) : ## Related documentation and guidance -While developing this reference application, we've been creating a reference Guide/eBook focusing on architecting and developing containerized and microservice based .NET Applications (download link available below) which explains in detail how to develop this kind of architectural style (microservices, Docker containers, Domain-Driven Design for certain microservices) plus other simpler architectural styles, like monolithic apps that can also live as Docker containers. -

+ +You can find the related reference **Guide/eBook** focusing on **architecting and developing containerized and microservice based .NET Applications** (download link available below) which explains in detail how to develop this kind of architectural style (microservices, Docker containers, Domain-Driven Design for certain microservices) plus other simpler architectural styles, like monolithic apps that can also live as Docker containers. + There are also additional eBooks focusing on Containers/Docker lifecycle (DevOps, CI/CD, etc.) with Microsoft Tools, already published plus an additional eBook focusing on Enterprise Apps Patterns with Xamarin.Forms. You can download them and start reviewing these Guides/eBooks here: -

| Architecting & Developing | Containers Lifecycle & CI/CD | App patterns with Xamarin.Forms | | ------------ | ------------| ------------| @@ -131,12 +182,13 @@ Send feedback to [dotnet-architecture-ebooks-feedback@service.microsoft.com](dot However, we encourage you to download and review the [Architecting and Developing Microservices eBook](https://aka.ms/microservicesebook) because the architectural styles and architectural patterns and technologies explained in the guide are using this reference application when explaining many pattern implementations, so you'll understand the context, design and decisions taken in the current architecture and internal designs much better. ## Overview of the application code -In this repo you can find a sample reference application that will help you to understand how to implement a microservice architecture based application using .NET Core and Docker. + +In this repo you can find a sample reference application that will help you to understand how to implement a microservice architecture based application using **.NET Core** and **Docker**. The example business domain or scenario is based on an eShop or eCommerce which is implemented as a multi-container application. Each container is a microservice deployment (like the basket-microservice, catalog-microservice, ordering-microservice and the identity-microservice) which is developed using ASP.NET Core running on .NET Core so they can run either on Linux Containers and Windows Containers. The screenshot below shows the VS Solution structure for those microservices/containers and client apps. -- (*Recommended when getting started*) Open eShopOnContainers-ServicesAndWebApps.sln for a solution containing just the server-side projects related to the microservices and web applications. +- (*Recommended when getting started*) Open **eShopOnContainers-ServicesAndWebApps.sln** for a solution containing just the server-side projects related to the microservices and web applications. - Open eShopOnContainers-MobileApps.sln for a solution containing just the client mobile app projects (Xamarin mobile apps only). It works independently based on mocks, too. - Open eShopOnContainers.sln for a solution containing all the projects (All client apps and services). @@ -160,7 +212,7 @@ Finally, those microservices are consumed by multiple client web and mobile apps -### Mac based (CLI ans Visual Studio for Mac) +### Mac based (CLI and Visual Studio for Mac) From 759c061822e7ae2a9d2c63c6f0f03733e8d7fa7e Mon Sep 17 00:00:00 2001 From: Miguel Veloso Date: Tue, 26 Nov 2019 16:47:12 +0000 Subject: [PATCH 149/149] Move/remove obsolete folders --- .../img}/elk/azure-nsg-inboundportsConfig.png | Bin .../elk/img}/elk/bitnami_splash.png | Bin .../elk/create-vm-elk-azure-last-step.png | Bin .../img}/elk/create-vm-elk-azure-summary.png | Bin .../elk/img}/elk/create-vm-elk-azure.png | Bin .../elk/img}/elk/discover-kibana.png | Bin .../elk/img}/elk/kibana_eshops_index.png | Bin {img => deploy/elk/img}/elk/kibana_result.png | Bin .../elk/img}/elk/kibana_startup.png | Bin .../elk/img}/elk/kibana_working.png | Bin deploy/k8s/README.md | 8 +++ img/Bower_and_Gulp_setup.png | Bin 125835 -> 0 bytes ...cker-Application-Lifecycle-cover-large.png | Bin 81913 -> 0 bytes ...cker-Application-Lifecycle-cover-small.png | Bin 22935 -> 0 bytes img/Generating_Docker_Images.png | Bin 156030 -> 0 bytes img/Microservices-cover.png | Bin 83674 -> 0 bytes img/Multiple-Distributed-Dependencies.png | Bin 113354 -> 0 bytes img/Node_setup_for_npm.png | Bin 54073 -> 0 bytes img/appinsights/appinsights-loggerfactory.PNG | Bin 28488 -> 0 bytes img/appinsights/appinsights-register.PNG | Bin 26263 -> 0 bytes img/appinsights/appinsights-screenshot.PNG | Bin 114271 -> 0 bytes img/appinsights/create-insights.PNG | Bin 27395 -> 0 bytes img/appinsights/settings-insights.PNG | Bin 23770 -> 0 bytes img/appinsights/useappinsights-program.PNG | Bin 28397 -> 0 bytes img/docker-compose-up-1.png | Bin 202500 -> 0 bytes img/docker-compose-up-2.png | Bin 165526 -> 0 bytes img/docker-ps-with-all-microservices.png | Bin 105416 -> 0 bytes img/docker_settings.png | Bin 122496 -> 0 bytes img/docker_settings_shared_drives.png | Bin 108879 -> 0 bytes ...Containers_Architecture_Diagram - Old2.png | Bin 415134 -> 0 bytes ...Containers_Architecture_Diagram - Old3.png | Bin 366599 -> 0 bytes ...eShopOnContainers_Architecture_Diagram.png | Bin 471212 -> 0 bytes ...pOnContainers_Architecture_Diagram_old.png | Bin 437646 -> 0 bytes img/eShopScreen.png | Bin 341696 -> 0 bytes ...ev_microservices_containers_cover-v2.0.png | Bin 42198 -> 0 bytes ...rch_dev_microservices_containers_cover.png | Bin 45897 -> 0 bytes ...v_microservices_containers_cover_LARGE.png | Bin 247854 -> 0 bytes ...dev_microservices_containers_cover_OLD.png | Bin 31800 -> 0 bytes ..._dev_microservices_containers_cover_V1.png | Bin 35644 -> 0 bytes img/ebook_containers_lifecycle.png | Bin 31258 -> 0 bytes img/eshop_cover.png | Bin 754161 -> 0 bytes img/exploring-to-production-ready.png | Bin 235444 -> 0 bytes img/firewall-rule-for-eshop.png | Bin 253070 -> 0 bytes img/list-of-images.png | Bin 61765 -> 0 bytes img/loadtests/k8ssettings.PNG | Bin 67522 -> 0 bytes img/loadtests/loadtestproj_dir.PNG | Bin 9246 -> 0 bytes img/loadtests/runloadtest.PNG | Bin 10315 -> 0 bytes img/loadtests/sfmanifestsettings.PNG | Bin 68026 -> 0 bytes img/login-demo-user.png | Bin 96789 -> 0 bytes img/new-folder-structure.png | Bin 0 -> 11111 bytes img/sf/cloud-config-idsrv.PNG | Bin 46951 -> 0 bytes img/sf/cloud-config-mvc.PNG | Bin 31888 -> 0 bytes img/sf/cloud-config-spa.PNG | Bin 44447 -> 0 bytes img/sf/cloud-config.PNG | Bin 54034 -> 0 bytes img/sf/cloud_publishProfile.PNG | Bin 14374 -> 0 bytes img/sf/create-kv.PNG | Bin 23823 -> 0 bytes img/sf/explorer-apps-status.PNG | Bin 45966 -> 0 bytes img/sf/explorer-deployment-status.PNG | Bin 103354 -> 0 bytes img/sf/install-cert.PNG | Bin 15678 -> 0 bytes img/sf/publish-button.PNG | Bin 12815 -> 0 bytes img/sf/publish-window.PNG | Bin 16348 -> 0 bytes img/sf/set-instrumentationkey.PNG | Bin 46915 -> 0 bytes img/sf/sf-directory.PNG | Bin 8628 -> 0 bytes img/spa/installing_npm_node.png | Bin 178960 -> 0 bytes img/spa/npm-rebuild-node-sass.png | Bin 84158 -> 0 bytes img/spa/npm-run-build.png | Bin 180963 -> 0 bytes img/spa/npm-versions-powershell.png | Bin 32139 -> 0 bytes img/spa/vs-tools-path-custom-node.png | Bin 41219 -> 0 bytes img/spa/vs-tools-path-original.png | Bin 39083 -> 0 bytes img/vs2017/github-clone-branch.png | Bin 137858 -> 0 bytes .../vs2017_additional_mobile_workloads.png | Bin 295884 -> 0 bytes img/vs2017/vs2017_server_workload.png | Bin 288939 -> 0 bytes img/vs2017/xamarin-workload-options.png | Bin 50616 -> 0 bytes img/xamarin-settings.png | Bin 14366 -> 0 bytes ...in-app-minimize-in-vs-android-emulator.png | Bin 46506 -> 0 bytes src/Web/WebSPA/README.md | 47 ------------------ 76 files changed, 8 insertions(+), 47 deletions(-) rename {img => deploy/elk/img}/elk/azure-nsg-inboundportsConfig.png (100%) rename {img => deploy/elk/img}/elk/bitnami_splash.png (100%) rename {img => deploy/elk/img}/elk/create-vm-elk-azure-last-step.png (100%) rename {img => deploy/elk/img}/elk/create-vm-elk-azure-summary.png (100%) rename {img => deploy/elk/img}/elk/create-vm-elk-azure.png (100%) rename {img => deploy/elk/img}/elk/discover-kibana.png (100%) rename {img => deploy/elk/img}/elk/kibana_eshops_index.png (100%) rename {img => deploy/elk/img}/elk/kibana_result.png (100%) rename {img => deploy/elk/img}/elk/kibana_startup.png (100%) rename {img => deploy/elk/img}/elk/kibana_working.png (100%) create mode 100644 deploy/k8s/README.md delete mode 100644 img/Bower_and_Gulp_setup.png delete mode 100644 img/Containerized-Docker-Application-Lifecycle-cover-large.png delete mode 100644 img/Containerized-Docker-Application-Lifecycle-cover-small.png delete mode 100644 img/Generating_Docker_Images.png delete mode 100644 img/Microservices-cover.png delete mode 100644 img/Multiple-Distributed-Dependencies.png delete mode 100644 img/Node_setup_for_npm.png delete mode 100644 img/appinsights/appinsights-loggerfactory.PNG delete mode 100644 img/appinsights/appinsights-register.PNG delete mode 100644 img/appinsights/appinsights-screenshot.PNG delete mode 100644 img/appinsights/create-insights.PNG delete mode 100644 img/appinsights/settings-insights.PNG delete mode 100644 img/appinsights/useappinsights-program.PNG delete mode 100644 img/docker-compose-up-1.png delete mode 100644 img/docker-compose-up-2.png delete mode 100644 img/docker-ps-with-all-microservices.png delete mode 100644 img/docker_settings.png delete mode 100644 img/docker_settings_shared_drives.png delete mode 100644 img/eShopOnContainers_Architecture_Diagram - Old2.png delete mode 100644 img/eShopOnContainers_Architecture_Diagram - Old3.png delete mode 100644 img/eShopOnContainers_Architecture_Diagram.png delete mode 100644 img/eShopOnContainers_Architecture_Diagram_old.png delete mode 100644 img/eShopScreen.png delete mode 100644 img/ebook_arch_dev_microservices_containers_cover-v2.0.png delete mode 100644 img/ebook_arch_dev_microservices_containers_cover.png delete mode 100644 img/ebook_arch_dev_microservices_containers_cover_LARGE.png delete mode 100644 img/ebook_arch_dev_microservices_containers_cover_OLD.png delete mode 100644 img/ebook_arch_dev_microservices_containers_cover_V1.png delete mode 100644 img/ebook_containers_lifecycle.png delete mode 100644 img/eshop_cover.png delete mode 100644 img/exploring-to-production-ready.png delete mode 100644 img/firewall-rule-for-eshop.png delete mode 100644 img/list-of-images.png delete mode 100644 img/loadtests/k8ssettings.PNG delete mode 100644 img/loadtests/loadtestproj_dir.PNG delete mode 100644 img/loadtests/runloadtest.PNG delete mode 100644 img/loadtests/sfmanifestsettings.PNG delete mode 100644 img/login-demo-user.png create mode 100644 img/new-folder-structure.png delete mode 100644 img/sf/cloud-config-idsrv.PNG delete mode 100644 img/sf/cloud-config-mvc.PNG delete mode 100644 img/sf/cloud-config-spa.PNG delete mode 100644 img/sf/cloud-config.PNG delete mode 100644 img/sf/cloud_publishProfile.PNG delete mode 100644 img/sf/create-kv.PNG delete mode 100644 img/sf/explorer-apps-status.PNG delete mode 100644 img/sf/explorer-deployment-status.PNG delete mode 100644 img/sf/install-cert.PNG delete mode 100644 img/sf/publish-button.PNG delete mode 100644 img/sf/publish-window.PNG delete mode 100644 img/sf/set-instrumentationkey.PNG delete mode 100644 img/sf/sf-directory.PNG delete mode 100644 img/spa/installing_npm_node.png delete mode 100644 img/spa/npm-rebuild-node-sass.png delete mode 100644 img/spa/npm-run-build.png delete mode 100644 img/spa/npm-versions-powershell.png delete mode 100644 img/spa/vs-tools-path-custom-node.png delete mode 100644 img/spa/vs-tools-path-original.png delete mode 100644 img/vs2017/github-clone-branch.png delete mode 100644 img/vs2017/vs2017_additional_mobile_workloads.png delete mode 100644 img/vs2017/vs2017_server_workload.png delete mode 100644 img/vs2017/xamarin-workload-options.png delete mode 100644 img/xamarin-settings.png delete mode 100644 img/xamarin/fix-hyperv-for-issue-xamarin-app-minimize-in-vs-android-emulator.png delete mode 100644 src/Web/WebSPA/README.md diff --git a/img/elk/azure-nsg-inboundportsConfig.png b/deploy/elk/img/elk/azure-nsg-inboundportsConfig.png similarity index 100% rename from img/elk/azure-nsg-inboundportsConfig.png rename to deploy/elk/img/elk/azure-nsg-inboundportsConfig.png diff --git a/img/elk/bitnami_splash.png b/deploy/elk/img/elk/bitnami_splash.png similarity index 100% rename from img/elk/bitnami_splash.png rename to deploy/elk/img/elk/bitnami_splash.png diff --git a/img/elk/create-vm-elk-azure-last-step.png b/deploy/elk/img/elk/create-vm-elk-azure-last-step.png similarity index 100% rename from img/elk/create-vm-elk-azure-last-step.png rename to deploy/elk/img/elk/create-vm-elk-azure-last-step.png diff --git a/img/elk/create-vm-elk-azure-summary.png b/deploy/elk/img/elk/create-vm-elk-azure-summary.png similarity index 100% rename from img/elk/create-vm-elk-azure-summary.png rename to deploy/elk/img/elk/create-vm-elk-azure-summary.png diff --git a/img/elk/create-vm-elk-azure.png b/deploy/elk/img/elk/create-vm-elk-azure.png similarity index 100% rename from img/elk/create-vm-elk-azure.png rename to deploy/elk/img/elk/create-vm-elk-azure.png diff --git a/img/elk/discover-kibana.png b/deploy/elk/img/elk/discover-kibana.png similarity index 100% rename from img/elk/discover-kibana.png rename to deploy/elk/img/elk/discover-kibana.png diff --git a/img/elk/kibana_eshops_index.png b/deploy/elk/img/elk/kibana_eshops_index.png similarity index 100% rename from img/elk/kibana_eshops_index.png rename to deploy/elk/img/elk/kibana_eshops_index.png diff --git a/img/elk/kibana_result.png b/deploy/elk/img/elk/kibana_result.png similarity index 100% rename from img/elk/kibana_result.png rename to deploy/elk/img/elk/kibana_result.png diff --git a/img/elk/kibana_startup.png b/deploy/elk/img/elk/kibana_startup.png similarity index 100% rename from img/elk/kibana_startup.png rename to deploy/elk/img/elk/kibana_startup.png diff --git a/img/elk/kibana_working.png b/deploy/elk/img/elk/kibana_working.png similarity index 100% rename from img/elk/kibana_working.png rename to deploy/elk/img/elk/kibana_working.png diff --git a/deploy/k8s/README.md b/deploy/k8s/README.md new file mode 100644 index 0000000000..3e464c3d15 --- /dev/null +++ b/deploy/k8s/README.md @@ -0,0 +1,8 @@ +# Kubernetes deployment + +This folder contains the files required to deploy eShopOnContainers to a Kubernetes cluster. + +For more information see the following articles in the [wiki](https://github.com/dotnet-architecture/eShopOnContainers/wiki): + +- [Deploy to Local Kubernetes](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploy-to-Local-Kubernetes) +- [Deploy to Azure Kubernetes Service (AKS)](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploy-to-Azure-Kubernetes-Service-(AKS)) diff --git a/img/Bower_and_Gulp_setup.png b/img/Bower_and_Gulp_setup.png deleted file mode 100644 index 78470a4c860457ce852ee4e83075f8bca4102a3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125835 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 I&fSUrAMnPDy8r+H diff --git a/img/Containerized-Docker-Application-Lifecycle-cover-large.png b/img/Containerized-Docker-Application-Lifecycle-cover-large.png deleted file mode 100644 index 6130a3bcfc69df54c63b222458e6acf147c7d0a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81913 zcmX6_1z41A(=|{)KuQ|HC6(?DDFG2sx;v!1OKK?*1nGJuL}2O8r8}g%1*E%om;dJb zx%5&LmgkO{Ip@rojrgb}i}Q^9*@FiUaOCBrRUSNe%<

+AEAl;9qJe*tEeP4_#Db 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%0AS=IAc31Vgiq%Fe}d@GQblT2|51 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

*OH$%*qst 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%0DVR6#554q&I7 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

>C>Nh8 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 GZ~iZn!EK!Y diff --git a/img/Microservices-cover.png b/img/Microservices-cover.png deleted file mode 100644 index 8ba0c5e34fa30afc5e3208280c963f401473369c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83674 zcmX`Tby$_n_dTq1cS?6lH^Pw)K|qvFX^`$Xc#!TAq`Rb)MoLOLB&55$yWZjXeBa+6 zTwZYGc4qFq_gZ`HHHNCH$YG+rKzsJ=8K#1~wEDAWaBSdf1O*QKWFfgQAN+w}@ml%y zvu8h}(eI2A!S|>R^4iYNo?*2=eLW{+R{RWpNa7-+}L$%m(m!}|lG zRlHSIhwcm0)7rEAFT``TvdO7hV>U+KB0 z>dnX@?a@r&i2c}|#vDFBzCxTV$Q}K+??rYTi!1EBVY`_9(MeG-{L^S0g*0!B zpuBDJ>6~l{SXJZ5_v$jRs%dzE)UwwdL0+^ky~E72T)yD`D#(n$@#%|F=DRl)4G0XB zk(0BbVt)GYY`ONJf!*z0xZ&DSSkWJTCz7(#*mQ7^u}rM20_E}07YUd$ys9Exo*@O9 z7_rStCm&eAl2U1Tc<=;^{?`3_>zY7NqZotb%%?gw@QHEN^=M{g}2j>rb2j zn^EP1&yVy`n`BQZ1)Eu0B|afw%iCsZq@$&!wO?pT7wO&&t>0rzfsH;ptFi-Y#lU^> z;jljUIV~MsM@I*lpw)M#mC960Bq!vcO|R~Bj5tqx{(H+i30nc(Ks3U$3$bZsKKKUd zuRNqG60K#dznr1kop_WdC++ofvTQb%Q!wlV3B!l0tAKKaULv}Dh5#Af7-!S7AbSe| z0-tSIkp3^Hs{Fps;>Z0Kg@dhC(BlWUT81s&scLjHJ z!L^!axuzRe1=89Hyz;fp>fA~`oXx9IL2OgDwTfTaY>@gsfPe|>OeAeto?Yp-(XE&3 zy{FSPgG0Tq{k~P*n6m2OC=1;)Ao--$gCbnVZQm-?ybcReT7oBJR;8x-8E$}^81N1FnBp!(8i`X>sE_LujnT~5Sqv&mjIW;^!(njr+@*|olubb9D%tQK*6G`4#gW@8S zVOwTPn(VIV$qzrF38$$isoVRT4EY*DEySDWqNw}&ahhY%LBS~4=xloR4kk(T&9pC5 zL(H=@#N2HDcu7pTr(t9h@goNBe*6c^Sz-#s>qUt+-Mp(@YcjHa6~<@w23^q%x`!Z) z+jt$=$J#0Pm#oDq4?i~R{jNYushs>?3PJo-nZC}bz)xMh$%KHbJQa%gv4ks?Uj4XI zrqPu~OQgOC%*7ukm(jNQMKYc35EPn95lHXmX`il(PtrtHNj$G@uu!7$jQ-$q4?J6# zZhLbKg>%kXl<14?r%ctZN}R-ZJl2n^c&q4h8)UOcG2*cQS=P?<^fyv;UiH4Iyx}E;>F5wu6xCoO11JOUC{BRiWV^I+MSzp$6*T-G`;~;Yo`^ zdHhfra5J2DJ}!shDyeZSZ+~?iI}fsdu|N$fj^*E+DaJ#_6%kj378>E@3SCxxN`r@$ zA82-KCuL?yZZOz45>V- zA3j|nrE5`Me4C_WhLL0;w~k@Y$p#6%cc2O8?H24>blUl-+*l%PQHS8ge9E}Nt)nf~ z!M21nQU0#GF;r*}l1zP!8oDpqSsQM(SneCFlD_JzEf7aR%AD&y_nPZ0oT}m#RGO@` zDexm!DYIR&h4W5G7NgiQXEsS1)}&lu&ln5ZYLD{>UZ266XX0)p3n!2c&EJr&aN_QA zPvaS$co;L~MV)VO6fMQaRdzJ<(8%39KGE5_)($k6t#8)d^Gq0g*#q^3@du5E$rhRE z{5BUOsrK0-L=?jev)rnyFG!UnzMWez@_#^}^ZzQy$<R4fs2%(fHFI^quCvxbzUB0^PbltI4!21SwKPRwqLFIRMd_u^sS6%d} zktC-ms${1zcCQOU+Ppk_TocIg)@#57iYvD!9d`I)ttS4&`r0N@Akg=mEd5K6JZ};mK+-BqQ z`?2nBcJbeePq#?PDY0J0>5~*0>IK#fM=!yaWaf8!(oE#QW>be0>GHhcgm5E6Ehs7`@ z^OzWESH)DlN~YgKL$+~uIA`@}`8=_@h>Jy$=rn=FZ%;gXi5*Zn;q^JTLHa&)u$U}cp1^&(9)`!}f!%t4LXZ?rDb>Ma49lL*gR z%tv*8tA9T0eRcV0W0ZbP#<@0*S1EOt4OU}}sA(duI;)JzEZ+i~=j69|N7iVdS(%F; z2%G&(OP0Tw=rp1DXU~{20<7$std7D6*(OW%MQtwjc5lyU zW-D55tb0fE9nLKim$B-$vLXV~`Vk%p}4`gAHYRA9&`pJT3?8 zH@bcDIcyf~j>N}Xk+?hiz1C|pS$^v^Sq}a+=;l!RVbkf5zWY2TYMYmI^Zk%0h>)+W zIE^mbqjif=@9UHG?*^i7drJ<}y7u#2MxTSDYb4WP1|*xo_p*bcwU}G@_7_G8J%U)$ zZFmeO84jmM*J18(vyl`;xkG{d`3oGbRd*uIl^<0S3aBD6WTd5~H8eEz3df%}cG)(> zmZk)HuTN-p;baOsn~y{ahMvL;^>8Q=I;t}n&E>((5vuqv4Vn-p_-&x`CxmPf)Yx1r7qhSQOeiZc z5;*(p$y$={$vU?$=Lq0w96mFAkiKYt?I6vr_JCJ}=%39c8Go0gEnWi$hZo23EB&M> z_`j$p2ke&LZjPSe6}}_a2xc$prn>t&i@T?mr@NC)^0>aIIepX7I~)0)$fl#*Q+>|? zjI)u1;3Rf!)>cE07~|Z`1p&yQ+L?RJS&*W z)AXvWPQTi@s2Kl&#K55+!yc9cLb?7pTi^1d(EOi=e!T;LvL;mTd91uvfcJ)JG4Uef0gUh z=(J}iw%p&Swb$58D)gLkHa)XOtbr5@IkC__Z8VNB67$;y7-1CXd13$!<Bain=I4iR68uyk-@5r z`g}zB%4->>Fy0w@DPT8xmhK+GIsn~aQF%RWGUGngt zk57l-xpcQAZ{i`R7IWVnc~3Oe5_k9>^G<>$N@wJ$V@(}k9(1R;lte-M7e2HvS!h~5 z9zL%nw6L||oc>_wz;viTW6D62Q?XfVCKdxRrH!h*~dsV|Gt1ImNy&$hUuq9mn zOv>-U`C&9)o1@P1HTAh}UB1Yir@p)iD5wRjxKF z`s*8;)#A~-+r!{QdStBtt(sA8!o0{xps1UU?(AjM|?hp>=RV9Gg_P=E#(3c=~Yq zb>`2nk6EO==C#%nFBVriL-ENU0ImE)CwupBdwBP-o@A){N6Kj!;z5Xadk}>AM11W6 zl3^gtp0{Ovo=IQ*qwpQR^;}2X&IWe=;-{ZbwH5=P542pEqho`=k$BOB`5I{7P*=Hqsqc7-(ywgRL@z& zDhw)uT^G9%{D!hdfIFqH0q#89U9Ya`Zp+!L)1M0G4wqrj0)F!OtmLvv=9bsKX1PM=9~5Ui`^Ya_E3KU0JsS0 zzqLSoUwWqs6rW?Ir3B4`%{yI=n?Z|SHYNW)IasdXem+r?NnT zul}2oB~KtwNe<*9r}aKcyQr8NjDYoha;nGk$wqn{+vyV;0{?usVaS^7Os1beV#)q| zBXNs@ii(1wLc{KXH_=Ny1hzZ->Yp!kxp9iA3D2vyx2WU}TP%EbM5^=FQ1KZlC7^ok z7DFk7WV2RXVPCP|Kx54F=;yu9G{_>bNWD&b)E?s(lV0j)h`Jj@XB2<2oGSom@}|9Y zs)eFpS&s-w@l(LK7b&ddLq(9!4K~S0)#SN)6CcACX$bDGF1s6Mb7HxLRJD?#LG<*l zSyht)He7NnOQW`NFH5gwpL*h}2;PHgdlO|;;XDlM&~$dpU{~fJP3hJPiL+8|g|_eC zjz!D1(hn(IQM`SN);?*9>IPmR6-48S{5V)6$iwJFuhBIDm zXnKl2-Z>xVM@_j3O%`TCy{?XoL+}3_P}UrdsQpB_y1!g>KV0zLh&WChPL>!3&7Ye` zwQu(nzs*0zER!sOeUl96j6?13mit?5Dq(-|1O?j^yg3ZMg6KyfV_b(Fyu_zJ(d(&BCIo%f@TK~qJ z`rH-iwjize4ZPsl!I-82?$<*0VrO+XB%Rg;t+Ttnk_rJED8*3s_35T?0JiB{1Q*J0 zV%LJVH;BA$evhv@3ktSd?k{w^AU}BSxbObWj+@vZ3fZoDA1;rC;9uNhOOW7d9<9EW znCG$e=$;Z%Q6|+a*DKDzW`UT0{1dfKu=WhT%+S8c`)uxX7{q@fT+f>p+F`&=`prLv-bQHG%y#49h%w~Q;G z@#kvk2wD_5|JfariiEwa+RnYT`e&a1)66QJ+&%Vp)jsmDlfgQS4#?%!^ln=)rI+o@ z$9TqhQtd{f^tuHdakIXTEmeA9-18U0P6X>r9A_-=>4aTj0R~>%X6j`+H8;hD z89^787z*nK{$F8tm8)1o2vO)CW}7mUr3afrmz?W!h)z#QOz%Pjpgs#9ar=5%mW0DB zLM4SbUAZ}NE+yRtLRobsL9iP=Dcka~v?T1@Np|$Sq#^A_fgj&cEqqYZa-Qzc3B*ag zVa}J5%X??B$~F&l87CA!W`279;R}kH>Ts*ET8hWxYWa|sH%ZxVTg-iNw_sX&`QsWF z`R+x@p{(b7`=TLmkG*ng1t{w@sHhCcE_nuu*(IhXoL?GR?v{=e+ezY3Q@v>0y8ow= z6;W-;)vDsp{HVv`ieDe3lzwIANN`%<5K@xveMif4F6g6L%AgkzSFaPfA8HF_jea5$ z&v28&Y;@|Z;y0xA%z0vn78!a-P;R#>Fc;b1Iu2kft-TY8TG{aw9}4!ALb&@L;rsTacB0f{n>q%)FRxI{!BO0|9hVcGhmyBGyt zhF#cN*HhqYz+BIaQXpfw-nHstzU|0%_N76qC_B0~!hE<$>i4+)v zZ!Mgk&`aJM?b!jYM3LcKR!jPvLTkNv^9p{WLz4DTewQXH9MVaDkbMk-22J9OW6nTj zX6mX&YLh>Zgh_xh{dKYYAL12l3?||qj(90FF(3n?&%TyKP^TdI+n8kVBwfA^`0?Wh z9)lu1Lt%Yph}2O)9KHxs;e$KJae6!+{wn^vm6fr?Aylh0wQzU5Eg(pZN|3b}=Ms8S z9|e25*4!2g;ASIKMd20N7UI7QneW)O}_>iW%O$5_jXLh zV2pbui4&J#6KWObAUT%L45~gt@;!PKnsE190Ji-J1X4LfL_}B`bW`vhb^Ima5@0-b z-4y-i$ce5~8{IM}e9zXu5lTBmCk_{_^YyvM7K*0LJ2K*A2S^M5l9SA|8bUtMkE>H* zP?mVn76zJ^xdvzVh{)5s#(5n$ZMayNd1T+GpQ%s+M;?N1>O=*O>1$b3^Z80!8oB`W z{KFnTbupzZ6#BIc0(Z`kQNWiFMBCfjU-19>@U}BB2!R~_+N?wH(!Zg* zCDqEjZ6dRxmR*-5?wB(f(Bt+Ky}pStiYIyWK-fWf4ul;Zvp&Yct21tcYmmsFDvb2gmVx?kg;`(e}AMv`6S_iSf{3@=9n%5hDsNk*y_oEA z^a%88qOuhcnAw(2E;S-@)T>~>&}V_jZ&29vH~@P0;EN)iA!Pg`Wz5#>Vi+7R3vWXb zw=dtlWdJkn(>N_vz^44a=f%NvCQgT=M0*Yb|E~0DQEr5PD_lxbvCzH<><{R&Uz5ms z+cZ{Iikkh5pyNbOQQQ)NA_ZPQ^eKj`jjN_vKa>{z_nZhAp6<=3Zi;aHkIAz5h=k$u zb)8{7N?D3}!p!1f$@ZpjBP?d%UBfYjDrzqv<6ZW=5*_{S)lCr@gDkH4aEA!^@_EW$ zR${3!wd~eI4%HnQ@4bVi8ieb3BlwkyD?3KOH!9-mmkG}wvWm=yWowNbT>7)9a&VM{ zR(dMT+Y0xlqye(kLZqcTT{(2D1(}N&&`Gvx51_M--FN?@y6Sa1n+V91<=on~@DZ_l zqfocKR^kdE5}#EYs zcUkGKU;rkAvbB;P9$MLwf%uIsU?SSamfQ#7j5wVQvfmJNe2+AR4s23d}DTSv| z2nim(9%D-jsnUWQJemET!`#EBXfW`w{|*0rZ2;(~_5$Tafr?oM4quZe6m}w`Uu9Xj zSS$8hQQkxNc%wsnT`k9llbbP@rE1Cp(ZeVqK&F@Fo&TMy(tTh83_-xP^6|rd80?J z(w8mM7TI(LkwUXYJySIxNt(4Z!;G}W0PL{DZQpL*Tjxz`Vpa@>X;uUX=7L&+Me2FjSWqX;Cto7)E zTixay=`szQ$^7y7SuAkV=q1Yef4BL=aS-_HN@bBPqQktGSg%I6gHWvcKFx!nwIxYN zM8rTWom}I$i(Zy__J7JsOG-gps@;sx*&`0+pSIgU^)pgBJ_WH4xBuogh*>*m6Cv_Z zJoTQ`0ZW-`c$PfPXU=xHVBJz3XkbHi2EJglO49X+G2WcMDByFd%HBWAbr6N{xlX#C zSx7%)DR8M<$hSZE-JVNrc2x9#dvOT+!KK?9mme4R?o3*5BsBAX-IRIMw@W#QgYuD# zMyXht+RueoUXH9ARm{r-Pz&m(`F0Q+=;hb?zLtQ28hG7XotYSX##tcrjwIPDim@6_ z0ujT5*OqynSFHaITS@Cm>T->G$^ZZ`FYG>(jsGyFdxcBvvLcA&wfCXbQ-Z4-Y>+ck z&E~S*QYpbZ*=puH^3$9;Inm+EfOnf&j00MCuvAOP({AaM1Ey{N{>?vUdiO=;t^;z) zcw^BIuZLWd4ntu#c`&g`F;OVbb06-Em_7N;4%&hko^Mh^w#-5x6$(#Xt@?m50n{AK zNIn1vu}p6>rly3zV)Rzn;Mc={nXl(QWM`(I_NN$bslj=As7P)KuDjojMvv8?lG4XS zdU6P*p@m`rWdjlZ6I2mQV6vB40LqnrnxoH81p&c$918mp{V;Qc8RT$d9*sgYcN*A# zMNZ=T^}{QiK62P2k=}JJ&gS~wLfPX#fRUDY=zxOSPFH$)XDs0zlJ-QCwY0rdX{M^G zzrIP!UGnVt!;H`a!2)N7==tx9!V@D$NXE;{%BcclAnoWExWEYXA&*L4lGKZwxQq0TD;`IL zRe=#j8ZHnLpo%g_w>WiS8p+>9blKk+xy^_%ej90R>46FYv&F~rzU>!voC|NvB4|+U zOFkwa&Ul_{D&OD6MUn~s$Po&#$heI6l*Cp*{Bv@UulZkqafYB^4`)jF0W}%C9QHVI zBt_fpM+)~P!X`|VKb0ZcoqI_6m*>JNF5r#YYOrz=KXy$ZLBNTE}ug5*<4Y#u-*yW2yg%uzKY_rPql$$Ky0ZShl* zAEASyzuxzr4<0exqwl{lt9?nBh_7YzW;RKWqf|PEj=6Ge6fYDARz&aecGtCWo0n6A zf~asQDGiE@0JDl9lkKoRtVT%j=!C=vn+`&ALp(JF`~7XXZ+6yGBZ!8?^Zb~Uvb3AB zI)InvUvb{HoK%N>NOi7Ec;XBu8k#~X81N*0y^TyEMd6eVOtskLF|HFtXg{5_ppXV# z+!MdDyrKZHqf@ivl{A`#JjO3>WA-=;?-ia_#ES749eYOoLZd*;$j6-~LOW zFF0V4^$y0RPx0#G*b5nn2IcEm2H@*oDp7XXK#bl_3U{QlP(e}Mw4|zCz(M%nFnMq% zzrQB~FXL(@4MvjTcPII84BNyL%XH!BQ@!S_uNOy}nle14mKymD481ukQzrhY%9*l* zgB(n$0p(>W93P2Qw;hagu3wrXsp~RPF9=h$pfG*S$C2Pky6_mV5|xVy$d8A2*>4K$05-wLL-u6u zQcT!ONyuSZfzt+1yZRsclXsz`m$%F>rJpX#nj)*8+Q{PhGv!J85a_%I7O3pl>!+y# z(488;VSxhyqjlI*qiPpGOIGL~yxc|pqN%3MSc!5ma1>Oh5-hV&7?s8K5z8_AI&@@Y zq{kF^ElL(4Z#xkyr~aHBlieHD(~!srd^;K5{3I+)r&bH62I48 zjHV)qMCfY=8}LWHc%l82%dDWw&<2kvpJI0#Bi4S^_$!C>)RydzejuG4`%p|sQJ++#wCmogR&oOqoRB~y(lh!7lQq+_KG*W;WPjCx>_5iW; zDjqfthtM6p`)!i(Xcn)evuPe{<;)vX9PJJnzE=m{amF+rv0rdKivh0rwB!GmF@j`? z072jZQigG^EI1Y;1}Puv?lQ?iyO`_0;W7g@6^@Ec(D0t(v}siw+(J3Tz85y#`N$60 zbkSb4!0#vbRKRhmpDb#92?{Fz#8p3sNsyvwbJb8XE;wFbj8znM-3wy%JWpSEg+DLx z@ek!w-i}MSy&Xq9DXuCYu(>PevqB0|A!&ml15(m`cmaN=hoH z@&kL+bLI!*tWOmh8qzC$%|Ezen*4LsUmKa5Eh383`Jq)ASvOm`^KaH&JBtGw&!B>@ z-kyWq#|5aPS3f*vBqSK5mg>)(2P6GwVSXfA7Gn?D<#W`$@X4C`bQ_bJ_q3)$paHq| zRacZpDg2Nz0$gj%tkAeog`_8X&gYMK1-V8i2ze_H{E{$6XlfvDtMiVFzY=%M^!aNe zy6}Q%TDDe-;`O@sGQu^})9r6h4wlD4`TyepMw0*Q6)XjrM>_2>Ox?burMPxM6qn$s zHrw2WICnj0lNYNH!g@rjtY2asn>=4wVDQ}47(D~;>kWvSuWXusqy6EO@BTnSrZJu7 zRJ+?DEd!rvx+jSe$AmLbuuFm83pB+pU7p#@O7)wS-meq>D{os*HMmGMyHh%X@}k=s zxyJOXM+XGBOANVcGOk&|!PC^eRoFbY`z)Y1RErPO&0HzuKn!v1GgilNVPB?|x^X|5 zIiBHWQv5G?B0!ys2nn&A{$2y(hgm@oe!tqU3ld^_kbty7%7L&F%iOtQofUe{l=j#% z0$Ky%rDqLZP${7`KETWw$lIKAo-L&N&bvIpm@G~QXa-6?=!3*e$cu)p8MmyEm_jl= zPQ|`?YF~H++dIXRZ}x`Y{~O=|NkG!m?nBh}Jm;BZigwr{LGMqEjGq5>%`e&_fiOcW z6J~V&1OW0kBq)uC^;yr_&ef_6%msUh4ZDkf(^8fjLXede`?2o?ig3G8cAU=JOUa&$ zewG2xz`*6&X1<_oA)CpeGj$U(<&yliss}V_9~TGhMhGS|;Z9VR@G8$^WS(qc2IMfM zwFPG!f&%3TK^l@o&=?hSo_Z7(`kkXZ9N5g!M~1KRT_gUa=Xq! z5kXD3U5{6Xg2q`3_8L-jE;vBWYw|e$ANoK#m5}h->QgoAg$er$D|`tYe>6FmHR1es zRw2MP$0HX-{%N)ghy%}XGfCtTusg)2&2alC!CxJc$w++frqV^6IQmrf0$2earvG|6 zj?W=fB=S#QN6>zLYd}ukKHM*lrMVXs*0=hUn3mdT3(t<*i7`oF539SKk)P1yNQ^&!v> z;9lPiKu{2Vc)7WHwBsE#EH%zaRK5qiulxh|6B4HKPXoT}0A4ib2gn|@g~=IL)c@b1%(r~vOaKhcf>oyYRYG-Ic!DD+i0D!&ddwZm-2$BHp8TqjdtbmRpG2oUk`e{xeumE^ zTcB+?!9X4UgSW0o{TW^91%I8iB!Yh+kSak*`2 zkUdik9q;7ug`FUeea;hd+ad$pDtME;M$r7$jYtW?H3Gb!QW8L9b6seO-SRI!r>1H3 z6P-{qASrwbnVzU8oQ-FCYpcif3OA_+j~U}^An%W)1a0MnKa+ii7e{>X76&#TUnR?v zE4jTrh40goEBOPEW#*drM4WxVJiu3OB69AZK5)Lu)&>olvl+JdXN2_Y^eQ6hi0A%$ zA_ej&Nm~!GWz;l}(3Rym+5gC+?2feFg3q-`Hxtk?wFYt$-^8$N$T;WAefsOwfUol>VvTU zpkU4$m5H9`u>ilcE0foC*r6f zOL!kQjghw?#$VAa3z8qJtzO#&LV#v4(3KA)Lgs8hE_7>cuiK-}cPEM2J`AAq%8A#_ zIfa{6nskMMoG_`36cXLK+!DK(`k1pStW$0IT2eI&0;^l_>PI<$zCT;XB$%s3`8k#7 z9+ys*WV`js{PHu`!+-Ca{lZWVAM-sPTHIw-(UZ3=H zw(i|}^1~sF*8D5ix6zvi_5v`Klx%Vydxh{NLoyJJ!EO7y1aSgG94UsWqk9ZsiNOH{ zQxeNnKzTjm1&vedSTr$N%inq6WV;7;#ux6NDS$WQO+~WQW6SM9{2F*(6&sRHrD^Ea z-T9;;@H@5D7K93Xnu#I&jXYCr6_4x1-?Q@@2LE_}nQ4lp*3jGJyg8Iu*%16KG?)si z#X~H1+=-8Hvx1~hi%!JOjZCBTt+<1aERos899ga%93o z+KmOzM&bIlO|pO)FjeYvinmcNsditN?|btag4FeAO-HVH^g8zl9DE5twm<4C)9 z%zPKg6A6Y=6Xdbw4uY-D{)@(;Y%zx7rBU!!%( z5O2P`mRcBvj%kXo-d(}EMDto_;ggDpan|K+Lfj^B@kcZvj$Qxq# z=F=fjXw!7hcVJiygB^gjWLPPKksZTjV}SJfConS>6)_*GNVDoOvm6DY6AxudaC(aH z;KTqAAa&%3zoRSf?oFTXWWguVW+kf)CB`!87-A*lvru=vfeTQ3V`7qRP5rT))M+xp zqeTx!wh7_&0X74tohJQRH4C(_*)Sd#aq zetukR@jaPkfq!b5U8;0yb^(MAB)u`AM!<_BR*J6Runpz0m)tooBpv!RFx#A7p-VY} zJ2(uRsj*2)NT6?RyE)%ATj?Kh!#wF_#5ik1rYhB~Q-Rvg|N83XDXz(qWp=XOe+i66 z@{GVAD8|9q$`5a4inSF0I=vBK`{qpUhJ@_dE!FSn6l_yxKhfbf^)Wn$B|L*@>1KEAZMO@_ML`ZaFA}0&fL%pm3=U*Sc>|NCmxI2h}4kRB>Tz<`0F*>P%O4wACW;C~tPY z)aTe3jm(-WcJ{f&qEL7#$@tST9S^Tji%$j!_G*waXCHqCR$U+-_6)M+)1K@^uaXs$ zM^XI^V&)X@es=HCvKr+*f<6d@NpE+_Fk;RYzegx4xWI&ghVTMa?^)p9D*XCj>LsxA zBz1t|8?H6{DOhV1oTFac+f;!v#jmW^GHLIS;tKHdrcL@DMyWr|R4cscq$K&>_LU*( z_egDr?NA=Ao+y-8HYz+kzM7kx8{7tR5^Gcp*PN`jdUvID_S)9gHeJM(p3R8f0rUM} z-&Z#Gy{W%F;9!BZhTn1oV#1N$2dAJC`-0yZp+dOGz8+{2R8y92)^7%Dy!79|g#Ksj$j93yu2XPw}vpMrB-OXZD+Gz~ogp_f>#=d}R= zoxo|mL{{aFxJzH?lIn3tKYnwzkE~{{HNL4$PUNVKfN?- zu=gi-E|%XthfX(#HA}T{J2--W$HFXSOC$Ea0UKt})|RCpv48cm7apsTf=A^MZhW-wVP)x{9P0a|Htuc>#w)6eY-z!4dO5qBU}K^C}?*#z&m_*)Peo@ za9fe>g?LtiEpZo98b-tsR*>4yp{@1<)YnH)O=NG_vSKCf&)&_X`J~NQHpu>1I$G{% zfK=8`V}xC9H(<4B1AwlS20iIJfk`x?OfSYf{uch0!F#|w7)y<1Y;UueGVA~xLlTSZJyU%b{GtSdo~{>uAu!DGxwh34n9^4%VM8(TXh5 z)Q7g-U!(>YVTqN7^Z9$h$NpOaUJfi69lWCua3O`>?^d+3Y7`l%;mFh2{42GBHvc7D z>+)vdk~rdu2zk1AkuIFm}( z-m)=hO!#fFXw;BJrmy){!*Afi3Q$`622Xty%9Me_Zy6-@Z6dboa&MaMU_1a7KZ2S# zzY_BDo~@#ZR$;3|GB`^io)Hhl(oZsiPxH$WU|O+X=*Dy%020iM#bF007z3l?8LiYX z;=eN8#WHVft)AEb(}Jkf$=Eyg-^KpD^n?eb{Q%x#u z#)bq3UV2_Ynvi3TdcGof^Lp^<8-uCghz%acIeTp#e!a*-X4G$5J0CyzgmLFf*oQ=qfiD-6MOEK)%7S272yyPPGn03 zgF5|bu0EDkeigr*B*gI#*f@;_wDo4E#5x9x71+yun#dd*39;+emg@8)*V-?t&`eYj zJum#6Z$6w+=B5O9e|yQKsPE3Q438~lByHFd@jB0VpOgfGym|`={YS0%_;}RVYB;Ro z1RftSEouTTt}Tpg<~A0M+uxzmqubA2(I<^My^icm;*>gabaa%)HK>=z6-xzZwFteX06j%uw&OL=+W5)&T6ax z*JLP6stW?(1RpUddbY+!P6!ba?~_L#7e*Bt8k&Rcb$Os1V!DpP0^iBl2ig|~Hn>pQ zxmWONaw$p2narP&seHIV;1t2ecl2S_MQDVq5EXTm2YeovEmgXozP2=P8+u4%2-jd{ z3F{8JwIpwCvU-6%`5$+A{FL$(gK&Q8FLlF%DOe@Dt}5IZ7>nv-AdEc*kqISK$E7{G zFFFtVUd}HzzBMd-=QAzM69B`}M6d8AJ_JKs92aR#41}vl(dfFDKd+=B1P9U35DLO! z;AUgi>#4prJ6Ib-c5I+cj58x|j7FhMIFa>d37;zmL8h;72-5v7=iN^rsSrb;HcK&j zh~+?x%Ud732v7w1$f+3wvG%UnknsH6FAwHd21#Ck@@&xTH4Tm)6e0W-Mbe&au93dv zKWwzp)5qZMuY!<~(E%%)6~wtTfQvP*8n~XU=6~_i#8n}xW2kWS;kdcDR0|72*^uIL zo^HP&{Mvz5bGi9Umg~n!Q*H~t;-?O4d?ReFr|N1Atv9AFrc0pv`OG2;rz#3DPWo%W zV*TeG*grsVWnP;+C$yT&3vEh4BRt<8(~LAve5w2IWxavAnOTRBwKZ!w)=)Ikvq)}?7cZfP7$cyu5XfR_jKoD@~24DAi*QDS= zsYq+q+x*hj043_*yXRa|pEm%Pq^D_$WAs+Qp8H|^h5l!$(OO+H%#?BzGxIqCfT>(0 zi*hdtVi9l!Jm){Sb&FA#QXbv)D(-XK>XEMC!bq-bYHitns9GuST|Wj8%b z;9prjA2?P9SFQ=E1VPH3$zNh1)CX?WP(dx<;Eajl}%Mv~S~m+u~TM=7wYHp>*)_fBz8z7wl6KGT~c>D1X# z(3H=lG4p5r+0wkc;`ObDXlNwp^qu#yRrF|I88&%1x-LIm@6x7=*^rTgi2(ySD{2y_ zp$com%ktk{k`{j=NaIWab>G5gCdD%|r@kC^MOX`s(&>^5av_9^++u?iN(E!(d^Gq% zy;KMCkO$0<)N*<8to&XM6dKTT$fKWsjKfz)c(MXDU#kGfKcoY6-4$WZ2I$ibl2o4~`N^?6UG5?7G1j$*9pXLh^CLRSw zT~mE|j*oE`;2eqsM{8vSaxt9)koKrV<4VZP>t@!oX^YHcj(TtT8Nme)sZpR-ydT9I ziUtOGo%S|B=-00$9O8w40w3JF#e;ZGGY|hzd?v*>`4m)Rf2QcA4F^dcyQ&FOFH$c@5$&ajr4ynK!nE*y=;=>s&G*oy{>avqgjuLXnUn*!`f)h4XcGl3Cg13vprUYI%f=R zO)zvaNT`EvFY!-MK|4=tv=ON_MYY52k@gS!Q$X7`8s#FpKV^MYpP^%*kF-^Dldm?y>pbxz)9L)6SWj7lv#XkIU!jOBKK z-gauZsE+*7w}r7YNZR5Oao2Y`aeFiy-6J@TqlY>HGX_L-yF%h53yWqHYcis$BAPoUo9i31`Xv&4rSn9Yo#zkP1goJp}2PxnJ-UKT^y z(?&i#UoSszeA=H&NfdkOnXOMSy7T+=^yRoa{ZwR?u|o z^klzsopt%`qoY&*iD>9wUl-vAHAW<10nDL|&_%~xI$nsN_HO;r2e4(n5VWIDI=O}oF1 zGJgdp?vGOGJX1fdoJC83A;)* z2jTh?F#<<~(3{%7VV92`ho4G)O{6DIjiF=>uRZZUJ^$UU9`F^Noz1TM-`m#Xu}wYN zHcB-j$z#J&sRn5&LmK>FH6Fj83W{uU%6rU{_<|^jOI7%ys97#1s2|=gZw$D1mkwFe z?xJRrul(+xy7#rbbfmJ1J0Ff>1uYr3QUBRm=>7hfsGRV={1mu6F57z_H3PB?ar=}n zH(lF6|LAbjUku#FmY?V{jMT%_zA7RKou`JSFE{)0aXWL?iXr2|gFeRmwrb`%#S`8$ z{UUsPz2=fsAx`L@M5{1={P1~jk)j{!L(=CtL7F65%PpbSUF@VM<{>q2-tLCBu5P#1 zJ??^XOpK7#^QTHY>NUSTJ*;4tHl1spAR92iM8{*nok;(VHP$xo`FZ6hKhcv(f}smE zhM&8n(&b1InzNE)fH3gQ?j4WO>t%_Yjpgr+;+riyokC}uF&s)2UpXpTVc;{4Ba$Gw zT6(>D3#?0CxvBIwKOf$%-nzdm=0WExJSRgVy1}-gK}Ly`cxKhal-I$5L zv*;B}vYZ_MSO#MGRnbo(-XF=>GAc%E!@9M1&mNT&bJ}Ul_&0MF!1qJrgPLKYQddt7#RT`Hxe(5q`|D{oh`_C@Opg+?9NW} z_0t$|1<^}#ef`izGMda6$J8T$QhFow4v^+QS;(rwXs$x!$iKgIQSxH|+5J}p zsaf@AG|s5CUZyBL^!91EX^*|E;p2m%fNv4iy9X9nU7PHh%b_+-O*>JK3i`F*%*Yi+m;1_1ySkF*QNoipvtR*&_;Gt zyvKaL*4ydV-v>*u7Sm`bfh6=F zOXXeoa(AB3<@ET6@6$7^q-R_cUyvdDL4PzN zQ02p%;Ih@>mU`?koVzI806uCs-9y{VXS!pk_)1xR3%N@@tfq|YcbkS>D~YGJ@95IR z1D))=mzS<{Zaj97Odg91Vm~_zxSwaS#i0wj9Q~870T$)jV47jbT-THZJ)+GG9p5R` z4j$sTKVTRoyI9T0-v~TPc4=;l$y3SB#9G#}^6z_ubvZ`#?iJKJrp67`l>eqmW+->d zqt*kJ!s{JmXwZSMYk5!LEO&_-wJ=fT;|8pTH^%tB@?sTBzvfMdJ<%;UFSdLxkVlR` z`>Wzq8t!~+K?rea7X)nRSJ!)f30O;uv-0#Gs&T4)7S2?6jKwBH4v{+W*(%4M@KVPB zo)O@sRftq4C{TzpMsd5#AzD!mYWELszBKxjf+g^TdXZpu<^Vp&au(6d9K385M6gib9iD45)q1OVTg@b*Hgt4 zt4E@#GU-tiw#W%0GRy`RN95-%A!-BAV1@x-C1UetC$#x(k&wXE_ms0YYVGEXIOF8j zJHA69tGE!6z*W?lxKXK*2J;o$$8wni8MklKb0NPn^#zNsG$!57iM_p8DyE+ZhTFT)P1~o% z_*`Yt8+3d1eLmzU=a&xE>P5MU06o$&hc+cv98EHk8|KT}bNMs#^nf>A4A3Svey0%d z?XuR-Jy$yC*|@aXSWZbtf}Mw=@9Fe>(J{%tpx@zB{9tFCkCQ=}*M$SV^zBn!X%PZP zCYiJyo%NnmHOP`nTc00+KN~SrXV_$u2|wXcZx{;oy?36q)4-TW5Ht7^1p_Ee0V9i? z?9|K4FP(jYu?XU#hl3%dhgt||A#b-joF>zRrP;N)ojI?eh7ky$zvZ?UK@G-6#(JWM z7_%RTCMEH^$|WHr$2ww#^9?tcQwvEG%HVlle6SRkQRfEH7qZIlMo*r>m@+)OYlL|q z{b0;t?i|B=o(0$~2>)4?z&$}EH$1=()mN_;>CyJpJ>@#Wkg&U~EFo4n(3CwR+3F8M z8}z9mWpC}ge1sst6h1n(SGLE=0G(C`QYZQhJG8@}y&cR;n^{hPDrVq$m@x-bu`r$b zL@$OQ3aFrrtDJwp*}h?$nusftVG_0^eP7O%fCVgce2)wnIv>10qP;!;=9%=hhpQAt zIDJSufqj|w1R3d=&|@v0_)9z45h9KfehuhK6Z((Cq@Khgr5R$a`C*c^dAc+I5oJ$Y zzjiFiGp%-1q_t;g;sC97^L4c05xuEyOMGz>*l;;y+$cjHrA+u&obs-#NlOT=1SPV` zRb0%FHaEf*qCDdL#G!*Gu(Z6c=G3{@ZP<~#3ofCMdBo^EsY(A z<}0t?|Jvxd0$0o$n5aTEZ9?3>;n$(-^zO|qGFMh)&gB$h<(}eP)0KQ;=a9#GcpoOF!*)KFnXPG;tNBx;8{3q!h5AsXcppw ze@B1}E+OmfUM+e(OekYJBvv4kl+DNbO zreE=vlKs}^40sXCZQrnaqPLWtImR37RX!qQly1$bXbn(h<^&h*tn35YT`Bhi5g0ep z-$g|g;)2HTYnG9Fe?XJQ-g$=!V^7CWj3fN6nCaf3&G&mdg56CJ`)#yfY-Z6HzEa~l z#3XY8s})0SKmYnsrp^uK_kS046BKoP7P}s7JoxqLIv(fF@ENL{BL-9|Dy4{vZBhM; zpKJbeIIC~De14?tas~-ObMh&h09;C4T>Ci08eNq1q{qQ~#KJbCNQpAR=s@kvQmSNbDl<^6b=<|oGj+C=E0xU+Ft^Ub%T0O@_)GqI(Y zg!KH|+9I;h_5#4X{;@2^KWNFp4XJBWg+|us?b*P6J@>id)cSwyUac=h?wzDrPo{tV zWK^C;U=%YrdV*xcO^B9_LX`(RJ%GQ^JptP81zkKbHCmtF;tacm`HryRD&K z%@Ry2`+|+Xb>kk@pjDNf;!*LrR}fSO6L<-)zJbAB0aF#4@2sqQvI}r#{uTUdpM@e{ z`b3xp)Qx0@WwXn=qZN@l$aI_^3q3v0OOSL3niWJ=R?v<%@5+Ect2X3!z|U1#!dJ*; zWvE!N`=1V(2vgFZH#F|NH+$)C(tPXWUz3?gJ zdT@F>e*G!(8b6!eVcl&D$#Ug(=}=02(L3uj%*h|NrYfJP#N6e;BuBLLq<(sdypJd! z1t5U;tZf#}(TUF-RD!C@FEw$d7S>a#QXG`>kTn57Uqv7V;T=Hm&cYNqq?!wIky0LB zoW;}B)Kq{?m3O|P9xTrS;76TVa->peTYNko;L`@%7@g#O?r zPaCIB88TtRziV^b1v_ckN&53_Lh!a^_-vQyPmIm;(vI>5>7{Rabwb)=0G&?&n%%`hPt)si18YXn9`%ybpenOitZ_JN{5{qtE{6Ac}s4OmJ6DKvz4uIK>F`o}X9tc=e|2F;UBEEt}lU*{8ylN-YE0IhCOG zIBwTj>PtMaZ}xS)Blp8Q#iGULq5vKH$8!6Nzd<=^I^O@dP$$VCO<56(v$6@Aoc^@46$0a!2eTOrn(;PTI;H{a<2AAO=%zqW8KE8wtxeSGV38fr;n( zH6Fnt`Lp9BeYb6ED32Lbh6&|(I;WBeX?W;b%b9dkkpe3cVIv@-b*t0 z%FmTmAfprW=nESSUgYWSeh&*OLO2k6`tBGQ7{6pO6;m^amKlr0+Ps-Bi-unkkcfF> zwx~QecK@}DDAIKeud!!iVyih_m*5Wtl`5~xxt*3RTX*^XM_|$#oWTpN zWlu?;zhKpIe-$&*URmUjvaS1r8u=ot>hA0SLh_v9m-esZ38rVx+#>wMlC$aQPDclp zBxcdek}nOdRcY5Hejt%z_}o_tf6 zzI1pK`sa7R&6)a5V4aiS4Y37%Vp*brpc`A0o)g1h*F5IFsL6DabfeV7u`r_Eh&z)4 zE+}fQZ}+i$BquYs!>q4%zgdWnfU&|>tsc2?4JM}#e>5=4mX!`5YKEWSoHwAQ={bZ9 zCf%vO4|6S!6Q*cv@JBPeTlWu8QqKG+N|uFd9!~QxEe7um2td=d)tAUFa;YLxUwTPa zlTG?0dW$DS-)D287zp0oWk>@1Kv~q`WnQFbcCi#*?8AHSFpYPp8#wPay{%dH{fz~I z-h~Sninp@FGsyl)C##qPM4YpNatQf(Nz+c1pvFX(XtfTD77K_Dr+`qS_i%Pti~m{d zj)5q)FHoO=Z5CHlJQ>$L8-+da(MJC%HTwJt7J|gm8D!39mT*uKfxG(r&1tlJK3Ym@ zoVhMHKhH7rdLGnh9bcp@F?Z78jEb2D5iznX*34Zs{S8|^v!$MwEX+WzWLPf?QLPBE-5C~>APh^GNk+x8)iS01k8s8C9+=Un82Bd$rdzYf^O zWhFc9L5AS!Q7kPFVn4db@~u9cN4@U8M7<`w1kU$&(TU?bJB&G4pC1Z#Id7$ zJU-Jgx>LF|V|G4cC)k1llE*yc+K{Zms9%5&y&uA)&iXP2w?6N%n-_g!UWF;%nyQ{} zi-CoxKjE17t!9zEEqJ=d$(JNoC6KO8-2MSz0(8gluJ0W?C-XAIs-11=R z(cDQZUZHcvy8DV*{v*Ukg8Gz~+)d^nGRl;F+^6WfLMkAwS=}*Zldw^FpUt!v8C^la zVi2H5QFbW5H~2&X>;qM70yk*gC`9aA>JPEO40kDIZ#i=nzSLsAEam*?vCd-RqOvnoKhH_s`N0<9sQ zeW`b+4Go)J#6=KmUwUDCDNS8T36xZzlZLHkc-(e0_j|MS*&r)kK1{`DCkf+j0OX4%hHM@<&abX3cXrWY zr%>KTvK3QkRdte`eTa)4Q&SAly?vkfR`9Z7K@EV+x9=nhT9%FB#hq9XcMJ3=yrjq* zgX%T@W;Okaf^3#yXaxJMRx^esaY56+;lvb4XVr6a(R}N+fJjOT11}t&<)sJM)@K*7Db2hnHP<7@q}`z*-qOt z4Nvd;Y3e%Wm;t8o3+R9e(MR9P@OoF4w;rIjp(-bCkk1qCA<4bj5QDI~e2}k2HIhTL zOu=Fj+XXFof@WLL&&diy;%^FO@z|9kXs{(aqoZYfUbJ0Nz|cMI>*o`*tgsviCJ*gq zq6T3P9ByaMFgsGpy7bc=j0`Z6M%rE2htjgk5%L?af}@E7QMe5`jY3|>$MfFLuNwWl zkS${x>vg<_I=H#Rx48uUIFlJv*;efwl|bo{liSXamMZw`sb2KdF`qAK9(i=j z-c2&OG)DENBNmzX%r4j&E-d}jJpF2CW3ee3d}Je(kpi7h8Hg2$C=Um)20|&q)2)Fr zOxn^?5tLJwjE!xkhz?dIhz5#${T9MLU3e>{hqL6rgY3>*`|}TYw`M}*hag2}(Fic5 z)#(v_K|GmR27me&H2XRTWkCT(Uah}b9%SE1{@k4p`3Q1b5UFk;{ZbCU&p)FnBoYrp zh$n3OO{z#7q# ztImYYkL{)`F|jax}^yg1_5FWJQ*_MNam}sJjzaV-3{L1U~W=R$(4z!2|lK&ku-4lb$82Fj2 z&}58H!p%lOgM5{4BH=jCG)bGR=GZr#(iL45eveC5Vl`jJ^s0gJkz-9bzy3xF&@SKG zj&gYkKR4dO7ah+J&xN+5wZhs1Nz{WyV~rBCRS45wm>0)S=Jc^D2RwHnesHk!<#Vu& zhv3hr@iS8|t}x?4Rle8IDS%M+;&sFA=f#GGuO!-!3!2|7zM2qSOD9|@`H#F*4LZnU z-_H`6u5~r^Bv;@JiRQ=kk;$4CwgwhLbDEu+?JV`&RwcFaKY;Vg=cu)G65~$QytN#t zJuVp>h3~IXOj>#D5*_7dDP!y7u`JVrb;Z#B4ECh5I*azlbG7=e8t5Z{SLznKE~psB zUJE)==p3xpFd0M8gg#jmP{+3#{@U}1;dI+CG5<8YnX;mic#yQ>B{oiL!x;tp2k%YT zHTd;D@eZU4S!mNc;y@5Dpu}|g{lPz()NC&@Bq`SP-|z40b*Uq!2L{obhx{91rPKvI2LzPmL| zE?6fvds0h}Kb%R-R!?ox{#EDs2=mqc#}RXgcX)QUfUKzm4omq|jVrrstV`U|VS&#=bNkXhUg4`y@gWFuq2d-?Y?5anNkDAX*~@6oALrV)i`V1(GAHCE7(W14zojn1(U z_I*%SbIh4y5t{b_uuRx0o=8xbu>yI#k%}Eg_oPfsM|Kl_C7iwi)}>erSGH`Q{)@6s zrl@f@BL+}MSGZNxEO_<}k2SHGTNsMQ7so<8q}ohgeRP(jIiRn=?|IIgszSFZRx>*1mwzK=JtsFnYDk*{s=DT8 zRrvP2EUH2EA|X=G!Dzv3bZlZr#504;yXlmN*Pddmkvau~>0*_+?W7N$ZVlxFSgwFE z`wfVu;EjR=cM_T?FLUD8AfQaGWvPWwNIiz+DZ=!jRDL}=Qjp+`9m^V*YtEcezbxB$ zYkp^rgZ@&Tn~{p}_*o_YGIm#a^rcKnZ9O>uO>&g@JSY3t&OcbkA_>H6m78?VJ zP(5<81rbCLmo(c9%9aD|?7O%@3^>kTSP0!8r_QU+l2=RS+)Qi|p()Huw{*Hl!63Nc zSrk{2fnC7oOf|I>l3Gh}V|xxBpb#N-%{_EZk7iw*rF`(fX^flS0DPm^!_G%$>9@h~ zWjw`D!PSI0Y~kZ^W?ZOHV8c4Di))g7&^Z zBFQbNnKgNk9tHb8d&9H~gwV=g6*LXXay__@zFW@icjVbh?0B}Q4297Js6{65c~KEvMK`Y?bav z*pW-~=YFlEm?$(@7|Eka>Y7vEohZBr5BpV+mn#+gYqKGlRQ>fG*H)-5JZcb2yz zMs=EWQ~eMuEdtc~%J9D``_~2v3ytq(O32KK5y-`h%3hZU7mptl=<_fLnfIgwSg^NT zo8Mmq1ZBrj?|L%e+4A@airzE%II=T1{Tn6+M&P*Vg_~+ zxIE&nGX>ObJFGDfsD5&Dt=q3Y+x-mff-$>j?JS-+*UV0mC6kv)&Wh=deD6BdGNt^z z^?h0idvecBaWM-HV{CZPw>N+tQvDglboqV#X_D_`l9zxUrBBp~bpfn6nCb zI~r=(4h-Iwrm`+yV1#B|gr1GrDA2E;9!m2S9EV!)^i-C^jt1QkWseg~^>K8Z3h(yo z@@y)t#7@LfO>l5n+J-)5)oY7q_Ftf57Q8IU&29GG{A(1^D&G;U^UUOqG=4_9^6?C? z^%8^73B=RzNYInY$|SeediU6$>4MWj!V_d(o^W!Dzzd1{WJkq*UUcN5scE%f2%Os- zZZt@*Pqi2P6(~?!SQ4(M-Cgth@ONMYA{ z&y0oi;YDvxEy7ZY22~<5Bo+$?M@0C0VVa~(Ye>#g0MxioD%m!lgt|FH&!5OT`Mwvl z&Pt@j-ye30B zQe!Yfi@lyZZ-U;X?<4L4mVjm&~uc>Cav5 z^Ozu`Lm`kbeZ0RE9SLzKhDL`$giW2Bzgs=Rc|D{-gBzi}2-O{c`NLCDS-HWl#f>m| zRn(uFQug?mI*8%Q@{rcez+6E1_}93m1A`g|-)by2uTa9i#j>THIqYTj&RMP4b;_bc z?M{2J8B?oH$3k8w-BU^;FF}-MGX(BHXSl738Z@oFEZ&#q*?c;d?@)Cf#XGEkZ|?Ip zem};R80Q$gW))jv9V>-&(3;r@3s93+B>5-!D~e38!T5n&sS3_>ypGP~1b$q{q^H+Ok6WU_|)uJtC5^l1<>V zxukpxlr$+DMa<^Hr<%3D0D9pQk(y6Ge?)`-Nak*n%&3CewWIDH^HOF9dE-n9p2LFG0!b`R3h&vJKT!n&-h&9wgeG{?C6BueqN)Q8Zu_sg(Q=X2Hk15+yG z$~Ioi$zM=JmOl!=+TvdhU1OE(moQ$!ehiBSLf(5;Q0Z3NPo|i)x_eaSj{~5>;HIE& zRiG3^;RY+b;(=!`7iGR6do^&Ck*cloW>9CGicMVJ+)(;W1Gw%*u2d^~s?m>qaTqJd)LCsvsDRyw{(!HjEAYB%rPthb_{WdF53K-dl09 zCBq%!jU|}rQ^oFSv|LorTr;^lL}D+>G^>T`s$Ch)xw8Ga>CToFWo3+Z8D`C92m|(~ z>_PX@d7{5mGRUU?`EIc?n!-r zu|olRx=Ebj(f6uf%-OxF$Z^D^rI%m(t$8)-yUBFXp#Xqh(#*8xThSGiqRBgL*qVem zwoTkZ`^qMy<^Wl|mMGC@x7d zWr${RV8vd!55A)HHr9P^dx<*uI=VquE?L(-X=ID^ZGa)O-c~M_fV*Nn3_6+al-hh` zb=gz`;NjAxOLt?XXmTp>H@WEx0b=S$wquwpKBoSk?3*68gzlre*RFD4+k=QX`}yDM zWUGGALLs!Lp4-rCN&LF{;7>#Fv-#Kn)WiJ6yXlf+a3h5FI>N2W=MlKen=}my>E-ex&0c}BQRvop@Uhl9&%wv= zmS>o}M_gS6N}n~}Qz|Lc65R^K&)Z+T=o{}qyIxLo#Am|1F%O!B6fSC&Pud*_?+O3{ zDwtcmU;F6bjvn^<-&|;8ftW zFCc5&gwXclhic@wWpV%kKyKF(RDl1jkjNm7t#D{-@r}Sw2Tj_zr&D2r6)TVb^uoMX;uy>5RUfR&k!(3YAkl_-~(yXI+i zjhU$aOf5``K|4VuA(eft0Rix7G|h#zlo}mH`YDuNBqXFhEY6ffWtwfje*VF zGON{ZpO0Gmp9ueE(EZlgLy5KnoQv;|r3?EHHBNW4v0=LzCn;AUjl0L5=4}_{^J&0r ze)qB8g5vx!Z-O2Wi#oJkPN-!~F8CJmcFduDkQ|orL;+kXgQPmEHq4i@F3vQDg_V8?rG-n* zM)~>*&Nz9D9)+tdA4wqydE}H$nI#&Q4QJ=IjZey1%hq;g6so9#q~e0Y6dXK{(*K^v zSTn0}g^h$fyY*|5@}=cvK6*(2>hFBs<-v>c%HRkMIuJXCxjq-T4LnfDDzi4K{JrO9 z2;7TNEAk}c{PE)xO5W!lb9;`E>d0_svdj!`t;DNi;Yinya)UxT`F9?H`UxZJ5?o#* z2R;GMBQSePfb``OVgFYz86+XOe%@XiQBgP!UX7mB0_YCkDpUx4C@SLhTjV2Yh+>-t zfD&wkV7$<0b^mu*@@{#r5WHny6`8_NECC7Z@>J)FcA+1MG3EQ3AH&rGJ7~4>JA8$X zx}LUl-f-y5lh%r5#@rY1tVqSw>z0nq7Hw(`O%oPU8mjp+>R{4PkdU##(6RHF;s*$Y z3w#d0+3@_@a}A1muR=zqidy=*KA84e3z7^kWXIqi9(}(88xP+X&i+R2#Ek=jZZ<~7 zUcoDSiuZQWhnlFnE@e9|eVg~hagkPgItv$<7r$eef6B1&=gOdfGPRMmGX6C7{^!NHYRU z@FCBs8#1#-waB8tt-nDJj_e*9$8(($Z%&uKR_zk;w!*{Z6$y?4ORt{Q>7%%~$3C&0 zX~cJlJTI#@EfzjflfH$yj&g<03U01xNXzHG^r_Yr?+m?u;PTd)LGnp~$qgTOCv>nv zoNMs5=Nn6@F$JRdQwElbD|3G}=*P5=39An0mEpz-BFLqoM7iSR*ldeJh8JY6&2*i#tOnSqmOsk*`X#KtO+H<>|b<)zIiYVKd?TmGrmM-3M zkt5jjudj;rFu_9N!z-`Pc6Z385!BL(iWxFNPhVIhGclVQ#7cx;+g59w#C^I61b^Qj zx!+E1KHLiz0s_Tx zHW40DJ~&3lCQofUzeI8gi;|0Qj3t^J(aL1})3LH3=p1F;AE( zRuk^A>y%wtD2xpq!0{!b=~YDEBy0TqI`thWHX#8PC4YAqaYqiV(T9(DfjH}mlX_52 z2&UFF4S7k6CnB+KpofGY5}Dge+B}5=DG&po4j$kW1JMP49Rz)(HGqVO>nsEOCh*?; zm-`YoxuS7of)+(Ui{L@B=);wPYzED=n6ti2M@HmeW8@~c)8^?%>hbI&KaR|fIznCo z=yL_M7%ZiNu`N6P0!nGLU)d&b1QOX4Qchh&g)S)q0NA&IQKK-}lThK1M8;i5@fL_s z1=i1yo38%Hd-rXA54eBsQ#h8$*AQYJZgGFmaBTnAJ44=zR$Sz^_8B&1MJ(jAN8~vT*Syo`!!0d5v>L9x{;hQ}TcRnhZqcM8z{gu25zHtDcsYR`)wR>khV@ z|FS689b_Rz0wN|^A0M`rSKSythmZaA6Uf8@LoRzt4g7tx0plOR{oq}VkVuISPq%&163Vcm^S}Rv3n}C%!P~@5 z^XZ%PG}Ha}FL!7Hf9eG5ltq)|Z643Vm2$wX8~8u)MaW+f52~Fnh-TI4j%ryo&$<~u zPR8mZ0Zrn4@Ie%QbDyaf0t^fOogvh6t?F1mKK#v~Zc9Qy@nlH53P0`O#_H5_>PVmY zn3q;iP~fh5^7nGA&2{36bRJ!*3Y!-HO`1ynDIwFm4nXZ!yVX;+=UwHOPRVQKx=D=$ zhO@koJO`dEw>Kk;8k!=w&WWnD-pLB^x;E43@!6PHjoa+qP@KC=CV8*w8TRwpl1^P$ zZnZVQ^a#Y-A1_1lPH!lHwapQoB|Cw zV5_l(7`^_3GvYRYVNb=Zd~aUodUI8KCZ6f_$yyc!E&(=p?>3WkTv8Ggs8=pa$8GkC zAV}f4(CIf>ap_?sfpqA%mv0kHAN>G37BDnHe_nsDy7I=sWqS9D@|~o{>7{Q%nb-s= z+9FMf6M(^2j1B4WIQ*sLQ9U0KH_ZW$X8`!mx>pZ9c>p*Ha3w)M60-?NrZ~>ud}=l@ z^yFQRa?IdFNP1Fw%b`x>gw$@F^E3C!@5$J8>lXt_mz0hi(@CE@P=I{3` ze|SmiYD7=c)n+Pk$)vh@gA6H)9vi&2ps-E+D&EBh@d#KQ|FSSPxGLw14&QbexZ(RP zQ{r8ykR#93uNrgTTg$jkdhz3*s8A?JpeGVi#ADXxmWtz_Z@m#C&n*N211}L&r_cBp zp|8lkN6*IcuRZT&x^6PiPRV;f&(8iDCWgYRcJ0AX>F&-2#&CPVP{8ti1->5KEqN+& zxyBI=37FgNL*s;hZtmXm?Kvx*y_i&{8@SX|*}FTlaP@JA4y$eGjDVt|4I7gRTt}pU z>6~)T4f8zjJ$nr7kom}+tq&UY^)K)bH^8O~lLvPFO(kXs$w5~!{Ay4o5DRN2Q222f z1uHU{QTr#nKZ7+E@-)R<8#pH6${_zOuSRP2P?3qk>(%&#lUEA&4bHow^Pk}t0>~LB zt`XSdBk&?$12?M(P0C>hl3K4+)|V1xdi?j#Z$sCYLL6?gXMM;?Z-J$vJBAuw_uc+! zSBf%z)fi7`r%FH@moNKXZ>lyPyL%p#tE(rQ|Apni@&qUK)U96cCd4(XJBOevV9&QU zeG!y++#?QNqvXgQaVD*7FSu2ehO+?HK7b%8JA2R$;+3jO2AMjnzt3fwKBi^h%^RL& zF<*rSEWA6x4ZY9FUU9%9DeMtL%RrZ>lrf9})aW6W8(Yn<-alv#qCp44so;b8MXr*H!)ZFUL|1jL z{vj=cAdor1hEWdG1ZlvSKHPZ;P-D{Fb8j?2v7@5G<4HJ#$%e3+Sx)6XPrBOJXUY}} z5mgp>SVGof?~Fb$l*<4b%*spNi)^;3=Sv!?L)cQ3^`%0=niO3 z5)UfNnSS_PCl4N@hMy_gMl_tG{3JO+rl*QODa1b?ZN^h5vfG2z8o7b;wSAm$e_`>! ze@-s*F{DSVBgKjbXVz6iZ=RET`8=mmL@lf4yYR)OdwY*pew()<%Rf3z}jIX0tRO#y!TkiW;Pg zdaPW2c}`UsmI$4=r<-0Aei@n{frFt34z+T9xuu)uZD`!HCqgHnJQ$?re>M$&C}!K;}w?C6*95m9USK15FLm)2ayyeHo zda>cOnW0U!&7P-b&o4{)(K8B}Yj@f6`A2R*2U`iu8IF3P@vAY~kcG5^h7N(|)l2|p zQ4=jgbN$g^iU8c=of|9j5MD`GgxWaZ89%f4U%uty>3Qu`$gZcm-p(oOJ_chVT!UE( zFzNm&BR>5E7^?dach(ZHEo?QR7a&(7{d5$fC{`{h)6voO>^O>o?us%FfA67A()zpi z-+}T|@|+aBS)iz8fB?aiKt}87-q6`#@NaP*rZqP38JL!v^T`O|7(2MWfLa^Q#_6{E z@&eMvfqzvRe?iaIm&AFc%#?dypRvCJHW6^3sl)J=JVrTu?m>>0-ZyaGh;5?)C3$$u z;5BSJrnVU(^FaODubr~%Re(@t_Qfpz+h|3~|~ojw~b zj7X<3YAzK)EJHQ)%0z4)+1P1}8yb@(?=fNd-Q1H&{cZ^XNeJS@WAUyRAkk4(56~cF zMKtMtsrRk{92R=F!td_pWG<5rR{CkjgF)>?x`?u1SYo($9`Ic)3+c|#@lB~t9e>;8 zE!$0#aeA6aT8Ej!*RP-xrs-1s@2<+3v3xBtB@Sm#zC+;aSCRvs!s*C%PGJea zg+2F~Gi0|K&}H$pF*dKuP15DLSHkD9mzBfEer}w2h4?R7ac# zlA@yzCE5i`Y3y43$@U|oh~W+X1Sv`)sWJ$ccpBq-sp!n}FoYMw%An174&cflsRN{i z!MPh_3zA;^e;DQwT+5#;ph3;lI3Zn4B@ez4*X6-e#wFiRi-eUXWx3sfTY6$jF*-!e zGfBl!3oNUiEisjlj9I~QlOcHw9;4`4ngYtPyHzvthlBv)&FS7lS{IVj$lvY*23Q}R z9gr|f)o&|+Z~n{$tK?OHqrD;>+D`%R#=*HMR_sp*i9? z%(qxS28-iE?$K9E>!S?)d0LVLQg7bdFwTlTESBUDMs-Opwm4a=96&sqP;3d>A?y7zh>f}Io)&O^ z=A+z3hD+6HFI2b4iz~LI3ODE5RaFfb@ z`Zi7-#4WIbZ@+No*vqFLE5zY&5Qh;(&**{Uai%oSU?}0odLTmk3FzeNc${ z2X$*7J>>P`{#)f#wCwC6e~`02-Dg6-J#da|N=clRxZ1}n=P?n9v1XBSCPJE+xy5pF zavJ45&S?V%fA^l`gVQiI*Gf9w4*kIo*Gh-|ZWo|U-?KdnIn1DS39q#}U9fW6{R?1J z$CK0ZvQ;{eYzSjBFROV!$gyYz6$wJ`k77LgD1(yw>Is(1E)({%_vq*Z=v4sv!pinU zLLFSlRR+c~!q=e$Ux*a+lL#=#xdDwEY&YiZd5|L9pP2l~wuj7nmk+5Tu_gB%k1kQw zl!*S2ocL@)C{h-umdRj{9?6toLG+*e>MJ#32pMQUk)Hlz<(F9lJ zARaRo>d7rXT4d5OlgAM|_imIFPy?E!U#IqFq|PTStH!$8AyOn)GQww;0UTJXW`#Pm z&OP>o++0fB)(_oq9NWF;>wZrz?~GG9%f^S06L_@GRYBQp~hKiH{4#< z(Hve~uYqomCSMS9p`2B5$UyWloA^RRrtSy2N*29SIw?WpYW~FKTZ3i@hrI6ETPm}XG*gSr9_PX-rT{#w{9H2iG6gBgng(NkFba41 zQV4op(6^NdpZPKua%9h8Bi?p@VMn=bhbg%ZG6kM3-sltH{Tio03kL=U#kmBS81Aoz zyck$1-it30_vqjcTb$zgN@#UF+>EbkUx)SzNB-G>+N%86$qBtDU}{585i4w76dS~{ zaIj1pdGD`Ua@Oh>a!bPBl}x%mxBSZXc)eO!HlSq=Xn0Pg#{-S6bt zu7CR)ecYwj|1_$=#)gjcQTzyEh!j?wVV<#IU{O;NQ^XtU zsJVwOC5QsCX~Gg4WR|dHTR-WYjBhN_5mZtjK;1kWLw#1<`=4hi?K*ouiJFB7!r{T6 zJDMBUb?R^ALA+ZgV;+nQ$z}vvDP2rCdoGbgMyHMUWrS|K2upZhqAPHH+Td z9m%C&bfQ{^U3nh(;)Ql;0_8dtkO3 zWI{xI`^zv3$dOh~wj1X&O$<`kDI*z;{Tx!K|1(_@?TKn%xc$yhVaE*6oZqhyyk@`a zxfFf1Rb%Lti&;qJ3t$s{)lOQ_o|B^S1W~;eMb6@_s;1&;2Gr5RN(m*9QIeO>KB8Pf zcum)6;98HD9^xYZaVq&IV}d;F>^Qh}*gj%P0dpTj4hf@hdnOsu7yQGPhl25WEBL+> zE;yJ#ekn}JRl(Y0|N4gZyD-RabwBT<~D)qsf7g4)oQ%+4&2^$bpe+3=Y!BL7`Lv`vXQR zPW8}JXmCXWL!om6JF>@@VSlpND1p>!p=t*@aX!mR8YwA`pm69)4d{+dUVNd!KL+u; z|Gdu>?}cMmL_utvVtHA-l<1-!i;}3#1jdvH)I=K$b{WoIp z(gWUMVW|Ex_O@-McVHv}znGuXagI2OPGXFnW%CO{j+(XKp`qXE#g(l%g`RggLdhC2 zlIp?U(>3`qAtFY}k6IShAr4Kc<-VaO%43RyqCS6(>G+mg9?;MwHnt3t=pzWd2z5gH zV*p)*D4UuW;6&@f>qG{>8p}jX1dU)I71H(QMre)xXw4*?n7na&a=o=>#f$0?)mT~G zt|Tv(SI9w}=g|BFZd?ajS*Dh5L>Z=hVhGbk!lRRr%!^SIxTc+jL32)-)=C7L)Oq@? z4QuG$M%_u>+rQdYu5;u5w4r{Q#MO3?OY3)uf*tT4;E+=||Dm_7Cy&KZgSe?_M1f#M zZmibnYzBhW?vC6R0=%$WPyXsQu6diix>&OJg+-LY)arT1hJ$MS`kM?aOcGDrJj^-- zAGSjhoGruGkJZ#$m_*#5DpZ`<5qi|Q2Mxgxa`x}`Q0mA}s;`N*FD>G+a7C#+v!y|r zI7+kgrv4(OX0`)G*T`?gJuIBqCekEeM0tWyEEH&CXb}CB_SWMQDQ~=VEPrxu$_hqQ zJv<7#u@0-e^Dk7~{}tT-Ho(h&TGXoAvFnzLJ4R}sQ2<~ zXY>(uH?iRHLu`|lJFA_}zPt-DbZtxg|9}BT+wVN!P>}nxN`Y*H2|WO@hr# zX~8$`J%zOz4bgCZRw&K^buPUUpPu|sZHJhD?h;+sR83s^KahhbE(K9aZG>rhzo}JE z3EV;-VZ?kO=9k*$b-)WjWJU&W^1se5jQMM@LjV8I4#wa?V|@H4*XG$>sJ_Bofz!olV zVH(L*eGQ*kZi390>9r#Scks?T5DDlpBlXuj7uCFzTQ@wlmBR#kF>qR&1P2EPRrc}a z?J`WL7)w{H-KCy%{Lhp^=Z4P)sf4(!Im&JgfY2$iXoxGOxl(5(2EZmXrV9%dl}V$2 zzJ-R=#VlBLdbdN?Fm4-WgyzpVwgIJi1fHeYczkfZ`}CbK>YSab3Bvu=jgLv5bl%aR z9R$DU1(`~gSW93xin8gd9BvpfTUx~C43eU7=UV}axj;XA`z>cxDsfL=PY=t?6N#bM zWt+q&dfgRgMAv52AFh^|lb3a3JRg)`9MNH2Fg;y3o19KVqfN=cmD}R(@UH8mS%z3) zgMM(4Al-|!6_tSx(!#Cdvzoyyc$D*wQWnrWArFv=-)LASU4()k>G)#uRT^}&Mt)a_ ze&*h?l1jcD&~WVl0-F^5pJ&Fl4Cz3Q}h==p6*sri6NoPjaxP-Anz4wPD8YpUB39Oa&o%#8c~&XMfwB z0AjidlN9_-K5Uw}maEykSHR;+|r1>{4X#f~3Y6uCS+&^XYRoqyC(>H)ed0lt;iBKro< zG~S|e`|Y6&eg%7&QhCq%0Pa_6Lok|@6!egkhzdzKIZ5H;2t^w37xjQ|PdQL($f&4d zwKo?h)J$I?j${rsL-70RS|K>1+-RCc@{93=Dkz912iW9DwdzmT>ADKo* zBS=k$(7i&y3v)h6W@#27SI7V6cBxCs9kgHCP8Mktp3+B=5cXnlyZ?u(w+x6X?AC^b zp#(%qDWy{oq@-c!l16C>DUp(H7(hUg6hUcFq@<;!OFC3ikdTs)mX3Fg&w0*wzMqc6 z%ZeTF~84_w2Kcd0STgRXc@Z=#;s zi~-N{qID+&;ceA(k~;m+JTY2H4umQk=zCvrjgmfsVFfapDr++A?(=mD4S_|caF zR7(CWgJhHjH8=*|9muM0IjXtb3SGsKzrOu^D}!)RMIRh{%rG342rZx9B&Md-5%z`L%^;=YHUV~e@M9pd|%%N<-j zYl@iJl!B_g;yYbT*@(L!COpAr*L@gOa!Kgw5mbxVSX zm8{@w=_1edV0`=6uV4T&r%yeSE@f+*-pl0}UaAEfnp8Kiz51p9o!_X^&T8ZBHx(Eq z%z6YW*S=ZOAMs^{D^-a9_G&?rKgUq%9Ivq#BS~r;AXkaqproNGoIZHaoa}ru*DekO zHh$~AOxLFEFEn%khgok;(C$zmM~+Lo849*XEvIk&gL0NO7&-3%Ve}M7@EvB&?UTQ2 ziZZGcZ0(zb%=hn>m|ML$1-^vE2aY*tH!b?&zHepFnLI>n6vF!Oo&0;QMkiz7{)CM} z`(iI_NDaUiUGN+Qn>-PQrCMR+9Isuf5_bz|{Hh%$t!cf7=-+Gq;VD|6!1;wMd;PEG z71s-3FnsmN@V&(S;%Fxhv{seF>0ZIGh&%<2~cU+(E4CB2Rc7Jr(-5wu28AlgEbdQ`hW0M%Ga69i04lDuSHYU5ht zPxT_Bva#=>T3zknpht)?{U8#Fqc(a^00vdn3)UEA=tjWz*J$%OUw`aj$}N^$%kO`@ zzm2_>A>F%#ZfCEr0EcYk1S`7P)12@GSSIj1QpMUw)MOm>bD)X-(V*gs-#iDP0AXaj zDy=SA>jHExUEq2W!t*8fl9kL$VG3jxRA$-e{W+z(nQ%bqXe5#YANMNl!d)F@&H3oo z^JEFB7GUFd#~S>`pMu7@i?+&>hn#&eupG3NlTJ4Hda8O0zvpF1B-A-#yAAa)H;Oq6 z?j|;t_N~>f(jVe`56muM82p-w4bg2;dW`Gw;>JVYKY}8?KwlDZb1yGG0zZ}(hQzHs%&=I$K6;H8xJgdHOD?+38&dqtQ(eQlFS@*N|6Wl=e`0FtJ&OA@ z?{CHOI}X9&LphrI%o$9#v-x)dH>AJE$%)j#0gJ90XM*~x9@wcwG6y2X0jnLa97n@l!GJWi>x_bkBzD4fseZTF)bKKPwyzZK;yq=OfOS+ssIw4 ztp=Y9_apOTf&VK&$Y1BS()vee9Bbn(xODiunR-R9X2b!-!hKl(Ct-`Sv=s1ihAkdQ z*G1%LMC9>1PfVO5g;*n?XvprNNEQfFlL#L@dKATXg_ckPPKRMBEkmWUDqRg@uxrUW zZOu+M`1U@jNA_VEbW?E@G3(w*>U?|+z$%uq=*K3~dl+wNq=_^s$no1r-%e(zKKIQ{ z&(tsYm}!_!N-ga;r#oYOw%0o1owK~v1eCquj=YiCmLXD!C{@|0_jU@H6q

&7}v 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�B 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Ξ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 diff --git a/img/Node_setup_for_npm.png b/img/Node_setup_for_npm.png deleted file mode 100644 index 63329507007afa6b29b878f2af43b5d50e658e7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54073 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�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%0ApST9o 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 F^*^`$#JK@zhY~!ny0` zn3$L@=;>;iFfkn`GBF*~Jad}SqI*2)BjfKF*hEK@sdA8Kg>i7wNy9*ciK#k{<>19B z#_`$Lx&SZ})5V{Ef5%XsWk4n-51gKs#xs9gQY$U%YG>UMT75(~58U7B91VT&MD19? z95-a>THMJ*2LT>Qy$8`k*Hcbpc58FJzcF(vtT4&{LFa=81u692Ui-<3#c1o}nF^r> z!LHB8S8Z)tzw8G83dGZY65p<`eyRL2Q?vUOV~YzMY&+;{yT%ZQQNI5^24McDX8+(V z?8HB{d-)GA$Ns5ZdwPTMfPc&RJMoZzYp1VtEB#wLaSq7)PwmaIQ}B!b)V{wt{{Q!I zRdf5qD*3#l1H!m8(@W$|T~)>@7LGEI{kQfyhP?O69$;L5)w^dk&PU!I``d$t+sF*u zXf+o<@%}<3L%=s0r{K0HfV{OQK6v{7*EK#u#EGkS2OK2Z+-AFlUF+q>~Z?|IsWacxEvGVAah(@Ps_oYARa~TqaSYV^4&9PJ%B+M zQDl8u^W2waK9WnI2>k21bk-VWa)(TuuIJa^Yxaj`QK=9E+fcj1T&VphdH@m})LQp= zbrMA0@OAKUnDpJy-f&GFkoWV1SEcdW6sP+2fe_)Y*J7|av|*k8xXRxCgJ$^*Cw^)| z<141W6VdN8nMx6B{s9Ye`veGda6CHF1}{vyJEA7J#~p|bFP9v6$FmG&0e+fPlbb(; zT3D-^N_?JFy(UaH^;%z6yHsVP`pTAl3Q{XTj859&m?GU0!dZ1r8|Rr<*~%{fbF_k| z(4qG0@B%>)u5a~(BjrS)O;4SxQ>}BL5>U0T(t80A%pX$`PcfJ~s<^idU+?tKYQ#z? z!Plh0eJ6}E+;{8MkhXIi=SN$f{#mH2(yzV~50{8zyf{O4lW7#m8E1@#NWqF-i&q5~ zec&;f@{M#VWGp(?Lq@V~tvI)1T4yR(rVT)am^)d8"?w2Nlkr|R!)9d<95DOc{K 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

qk+O9c6*-qX9G<>lMt*XHC-Si0X+vfh~N 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 g06I3SIsgCw diff --git a/img/appinsights/appinsights-register.PNG b/img/appinsights/appinsights-register.PNG deleted file mode 100644 index 6092680ebcb24f1ef74781caf73784276b9f98bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26263 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 J`K`N8{|DA0!zlm& diff --git a/img/appinsights/appinsights-screenshot.PNG b/img/appinsights/appinsights-screenshot.PNG deleted file mode 100644 index 0d4bb87983cbf1521f227ab2502e82ed6568d716..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114271 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

7KjFq`0WBXCi^PVXTa6l%2zfd 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 diff --git a/img/appinsights/create-insights.PNG b/img/appinsights/create-insights.PNG deleted file mode 100644 index 535ae4b9829bf247b9b81f25e85a76f6f8554a94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27395 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 diff --git a/img/appinsights/settings-insights.PNG b/img/appinsights/settings-insights.PNG deleted file mode 100644 index 16e6323d377cfe313eed34463baea69f89cb160c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23770 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 HcwYN2d0Vdq diff --git a/img/appinsights/useappinsights-program.PNG b/img/appinsights/useappinsights-program.PNG deleted file mode 100644 index f0ec24e545828d5a2d79778334f638028b8185c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28397 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 diff --git a/img/docker-compose-up-1.png b/img/docker-compose-up-1.png deleted file mode 100644 index 6aa3b1c8551bc4b46df4c62a7f2ec6c6ad591664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202500 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

$2f6${Rl2u!r(VfqU0;X*bN0@rz+=0rQKICF9r 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�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 z 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 z zA{fXJ03BC{0vdW(HNJVXw&DJN5&1grOaDv$Znr;mJW+nSeVq;PXkf;K1r_@YqEWOk z=(22@3LG$PbueSlXW0ZR#~^CNU~=CoYkt;6F9weV{^Oe=*oZVO2vpi|uYUc1_FY>e Uojej)*MszWy85}Sb4q9e0OG!94gdfE diff --git a/img/docker-compose-up-2.png b/img/docker-compose-up-2.png deleted file mode 100644 index 705d839c84a533139edc5ed32d33ee38e83eeb91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165526 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 Q@>5P8cRE&e^kTyQ04T<3EC2ui diff --git a/img/docker-ps-with-all-microservices.png b/img/docker-ps-with-all-microservices.png deleted file mode 100644 index b803ab3d65579f418aff443b1cb0d9770fc40dd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105416 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 H==uKwh@ppz diff --git a/img/docker_settings.png b/img/docker_settings.png deleted file mode 100644 index b2641c78907b1f8fdbd46e1d9687d4335098feb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122496 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

e06@ZNzCmK%;wsKUd?P>&{ewRZ_Y<_N z`SoBa1|R80?$o)tdDLdr65z2XxXeF%^elMBx`WF594It}f1<)u^7Va+HG1d(OS*hE z>9~Sg6)FnnU%JCHZ??20u~Bg9*@fd!<<3>$Ls+O40N|O?2QU?&cDHm6o1p;wESm~g zX8y%xpZ)US0itGE@#5mt?#yk0VN=9eP5tI1ygxU0BhE#u%0WnD?bvIOvtr|iC}qJB zMv&BVCIMiOs^rZFkF{`bJd*&LykJVBhJKVxl7sa{19&fKV&5IvPm^g+@D3dvH#6V+438W?o!L7RT^33h!W{HR zCGGh48?6kVRMo}0`K)2_MHX5W9<-~gE%{WjXB;%U-ecBtp-2l%hdqSd4?vwf+Ewg3 zq=x>A)@c87x&cQEI}7Ou*zUW0JBu00D6qix1Q@lA;E&5IcSgSPg4&bJZO=(p8r*?= zRN|D$_akqrI<^L)m(jX=Ry&RRWwUy9trj5UBbj5tjDAVgYAJZ)k{No%x!fC z&=N0JQ%02KeFi5mkPK~ZjzzQY-R(t{hsLaw`jFBq_pyQ3in{aqAki@Vu?lh{bCH3m z&C({eX&KVEC=KnZ)UP+iblnnqe}6tvd6D7DfMUa46#8XAefZVO2Qa>Cd5?e}6HgbU zfp!?;l}t{tr1(7LZ;)@)-MJVnuthhAsd$VK=}HUV>GN>(7fLSoRsGEBE!TN#KSS$7pl=>QZ6B8Pop(CbQ+7=&|PfXt$<)t z>uQpx!@C*9SX8t=pr~5v{6}vBkZ8+M`buh{w7ovN)#h$)k9L)XL32*3sa!>{$| zgneQY5qlOg)xUTkw51j;detTnqK_tvsG)hDp_IMZVm@$WdY2?J_n;K;L(`Sa=O4rw zu0ZrK<51;}EgIH}LbKuR=~?;qfOX&gqsJRYt=KbnA!?FKWfp&ftz(-BHo8ew7=Q zE{9-p5fnDK=Ewb^;mNHKJ)wWWIdAG{_ABF|Qv8KZJyWD)sWe8A8U`!Stm(!0x^}&` zEYLoiMsa#sUGnTP?lqH($M8neaZ$j}Cw1k=IZaX*TaJJK(>DJ*<3QZUqoI)ksB^h6 z9z~c@_lAP7P_Kmft#DDKfR);VK|M&fBRh@Hh~_T5QrGqSM5o=4;r`ekuoNGavoI^l z{}hzPK7E(=*AOZo1OM-xf=-bu2*DnCoe%+!&F-@M3Ic)nDyy|@dU5GfjYt7|47g8& z__{>#zcB-jF!!gY5OP=-wl0@!Y`5GFDUcC*TL!E#DqgkSq*uqhbP|h~cM#r{(pJFx z>dH$qlk9KIptv+t(xh?`h5!%*sQzpJyAZd14826rxNeGkTw&4`4*E>q7A1<0_bi4W zV$41Uw=OZ)U5rKLi7Pfj;Z1^wi3WZzixLUtEQRmr|U*{0Z z8Joa@C#JD{gs4Wg`<8?*Z5~tEuaD1b?Mv7){>$qec!N6#yQZb1Jg$6nSY&Ev$i$6s zpm4rF7$EjK8&CW1Yq9_{LK}=;|Eq$gl%1y=IltA=_aN3 zfoe6NGYR2*AINh$TCLxXJ~~FQYnBLK{uPYAQcO$31cX`mtkrkjh3_OK!t&8{ zYE2njDUL~jT25?fNXn}MzGpMPJnes@w)YdqK$Lb<$m?#mYSpWY9hbOe1%+~xeJQ}i zqq_2vf#7|f(PBR5`?0sF`Tj)?^KI&5%MW2>5B~EaKk|Xkksxv*7g8&}?H`QZg^zV=DVcOZ3tu&1sM$lYd=iPd zuzV^xs%LutNlMSkp1tpFOYvzQENN<I2{)$p^=j%%|sr6_Q1RQ`q&trC1}R zI!u4rE`JAG=Peq)q2bG~hhhd_^Zp1+fTd2Td`!%@T`Rvl`#AIQUseQkoin-B%A!?rwhkmb%&;Mq3T)}bK z=T-%nG~Mqp$t${@N`d6@#x5nn<&q!ZCq0!wYV>c%HGua!p~U|ut6X_zfKm0)QCw^wl4=5pAIT|)!+ZO=dilPU88HNimuj9 zw!2c9u{QA4`c}^KrJ}aD>e~4K{z#8~BTz=Ns_4RmkmglHpz*v^CjNC&%FU`tn}o+@ zU^0)xb2NyUBLhvZB`{=!Fe-P3kTu&zA{`nkz5c2|bSOWh7kaWbTwJ4%Y-u?znh$_T z?>(K}h_-*BRs&30+z_5?B@1kKH<@VfBJ#Gct_APeFI75}=VYuqMcb=VtA4uipjjT$ zkhl-tG4 zYxb#;KKFg)6pcd<0}zT%IC4cm=AFGEEIRpy!p&RG1TFq&IDFbWbgE?&kT{3oC6u`< zeE3y-fDI_kvw#72(ZZYMDJXpkcbjHoV+#}LrL6LoQVp=kPNAJ5jEw^wJXN%j=LOLu zvHRA_Lwc_424~z$WiMru{nrv$<8VVG`uCqsGcgg@F{<}FI-h@G?P8>MV7IMihRkI8 zHJ&i~g>^*@z1}26XgI+eosvznDBL@2UuBSO!Q)? zJqOc#=_73=Dylc4D!YF;YI~Xn)jQjFQg~Vk9@dyBZJ{lYNde3JI5yS!s9 z{E~})*d}+x&M(%g7Omgie94Ti`j1V@{d1F97^EU!e9NaKby7?XV7%FPv!W zM6$-X*(hdnic#XkBRnGR74zCfquS3tb$=p%9;^AXS-Fhm#6%}qe=K#~Zxz)I{^YyW zjl^dxIBamgMLP4k7$nWG=d8QsL1n<~($MbGdk4tG?zUR5^MNdm3RIcax``3{*Yf_& zZUmyHbKyAjVKz4v3Cl8kU;*+^zsnO$j-wvgZUQ~YlRKUXPGGeA&GMS*J<=Aq7TrT= zMHvf!NKr__pZtbmGBm|yKhj1_TaDYj@JknS-%_lkUmj)5w6W0m+CuTT(?0mgT_<@! zHTyIC2=G4IOWD*m2~-#pu5cAsxlsWD>M?g{y1s}iP1Kezgp;+Oe0xW-jKog(4cp;E z3%ybH$y=cr#O2&KMDQP_Ap@vVr6M0O>ekWO2Hxg_Al)xrOLz9d3R&Fr%G!|L69>v^ z^K*BnO=4TA<$Jsh47NPQ+GeC}=W+aB7k~ICV-@;?A?1j7xNoG7${l)7P8Eo75VUYU z-c8)hY*_=l^sXE(wkaaJ57O0njCHpk@CH12cp)FfY?9)#L_aC>(9cy))IxUv!ny9q*5r3t-t`%0C+?$s-1`5vH_ZhqV|dI0hFz z2Ojqpr_AnN9M*!N!HzKt1%-$OztiR?FQI@||2tB3<-(G_01}d1+mIV+P5#qlr0?hu z&QjW{UFMKBV|)MetnZ^`tDK4|^s3g#t_Hb)jI|v(JmVxlCcwOAwHr-5dy`vB?Pyhy zd{~E-pMzf;tda|41(eVY9L21~Zb<}BrZ=~jJ{W4Ica}?UR&(!FUx-K(>>z}@6L^s6 zH(;f9CR8sLG4w2*%Av0~&qd@+Ux5 z2(Tko{4u5)u8@(EHkVC@emd4P^6p{IeGiXl?YX6dD=>qB5b}QkGc;V>HO>hHjxH~ zw+A!oG~vs4>mb%paTr7Mh@%)r>n(;K$uVn-@)$+>{@Jr{CJlswl39BWi*oG!It`|$ zfw#^aII;>661Xva7eFH{ahBNP4qx7p=95g!dWFNs$)Z`dPrD5R5?JC2hlO71@Oo%W}TjSRC+3QDEQ5Z^f zKJnJ}vmmL~7sK3N*6X#AkQ;#o`w_lQ^XvP-uPw6B~Qc0XCZx=y=)UZ)t{Kv!w* zt3Y4aBFDtApmy72M6c@eK4q_w4F4CxZZfY*FVkitGK#Bg0CJi>qwJ(e8W>*k(D;Ln zDxsb|`JW$8x39!wL~K4g4AnNgFZ(^1i_}lw$nH(P6tCg$C3sdjJ4}Atw`^Gi9DmWdl zAL{(2zq+qH}`f;;=@SXp((ykQIU&SJSGn@ZV4gTlhzbLx%Uo80l0bR=9oSXmWL!(&c52EN< z`I|nDyVL(4;XB|YKEE74@V_vC`u*ANFJtzv$o^H08erAECiVwv3;y=(rSLz4pa4Z3 z!+*K<{z~fuGD^jMx!rdE;?ua#F5G_+-=Bjffsg;6zEzW}h9!#4trxwxy2W(quwNMF{H9+z3YXtLEl2fn4jWyp%GQuWg3WWml~P7UZgT z1%Of^QzIYlJeAvRG=)yi5A#g~THArjpF*~qe*(F~<n1L^4?NwjI|P?y+7Eb{kTg~Ko4fG zCiQKuNBs$~3}=a~D&g zE8DJVBtj0|wA1YQasu7z}ivWv7dLGT&cUv+~OuC*1m7(nwuZ)I2xL;%ol{dlG!C>67%RSmSwf ze8#L7Q4VuiCq@a!q<_7+kM+|DxQn~+5TE(;Q0pLplan!VZ{Fx^y1@d73aUphnm{@byd6@trOJmkj$^ha9Yp z9+Q{(NSl7@{9yFAub$og^Q$XG*vF|b???R)B8_i3qpMm8y{uIs+X^@g#1Q0oP)X75 z_`6-OLee)TS)JQ&{Cl@kNVGvN>}$)Z2X%=9T}jT5=nRRJvsdhzfEi?^Kkq$X_WXhZ7S*+JT9C^1sqCNKo`n75uDU&;6srTvCxX*}(&=202RXf(e*-E|mGMVUzW}Tp zj>;VVXFg(Jk zgO&QKNz_jmMBx1914j1Lc^}H@6E$8l9vBo|cF^B?Z{w}pHPe6nx@#Q!o0dRHHJ<9) znHbAhSDfdjRt8F;7%H~L_qBjqQ0Bq^{k>-&xBvX01AyT5ZXz-&7hmnPFfR>yS%8>!`;4l3BdHeZnm$Yc2euVE73Iu_)HFa9Mlq6uW2d1nT-AM0`-Dy>wmcCzY4eYavy`%vU5p?NW4BZHjt$4` z6z#RT3uV@@z5ZD0pH+ZYeB#Xb_nmgiTy?aty#F+QRa`AjiyI+^cZcxt6R!KWsCXr; z;}}(I)Woxkt!f#4!=OaBqV?6~;t73+N|E7Dh6Ph@e4c2!#r(W>3{QJmeuS>_$$>J| z9sNyq=E6vxD)TQoU-e`T9qUFCuCjc}v!*bVSm6Ll-r-Sn6=62Ca>{+F+FT{W9z-6F#HQpq$D|`98#*N46^PkB5teASI5@V=h z=%X%ZuEir+;?^?a>i(Qe|3s~;JKbFd3VUz}tAou5 zEglzviP#q#KN8`w(_Bsf#VTS{>jlg-1`Tc~hT+w7x9zs&st|{zsuf-=4vdJ38Z_X~ z+lzY30CB6aVtK`uW4=vNP&Z0A#;7tM-1xL+{rD`6qA zDW+QC<>W8k*!QmnA0SS|o(wTw%28;^oo%A=%w`L)s_8xBP@;yJ@esntEA$L9LWEnb*6&(7txC9(q0U z7~A*F(!M^Z-M$X`O^(I*>_=@jJnj&8&8W7_I`5!AtIIWNw?E0s!}F5~glv*>_<8s8 zxXU<{f7s)46T#u$-_`y-N3{jiUOX;@Z5%(pdw5vY#AhsBW(p@p?}g$|+bLA@k)TyJ z1VqHxUF|{q61x?5ZLy83)JK9>PmAI{!xUshHr^A9n@qaBJWZBKW3HSfSq#kFmn@>Y zu0}3aLkoqL9l5ieacVzWH$y3oW%lo$_GeaSo$owzncVHSkxenCt5U4Cl_pgb(KyddaoubMGBnwI%&SxE&A+|t z%bYYxMJBh7W`x}O%*6lgO)>SrvGEdz;CR^LHv}r6V0fQ^!ka5aH9aXMsCN|37 z(At{6eBn}Rs~@|f@Uk_3!$SjBT)lIcRMIdOKE>O^VISx1O*3Y?J-wli(wOE9Ic!j4 zZZluu>8)ao99^i4RfLViY);9yIKY!hu0NEO|A~Tp{1T~h+uPcjVnJrJ$p@$PIKFd1 z`s?;N(@ZN7q|!Tu!6G?2+bJ*r@X`R>>w5gpQObyOJ7mykr*{FU%_-7Ki0u&UIuEGR z;Z5wGURkvUFI2omBxq4TSc;^t^UUq0rPUkF$DMf>J!m|b>^e=xe#@NFop~)R^WX{| zZ!gGlsg)eNN@pi=(<`VCs_#CoyXQNX@~Lw4R4~bdRnvR&Y~Q|Yl?$VemCrlkr`AXwf$ip zfwApC6qBz=dOK?A$Jp|LoRur=<@tf_N>#1Rz_45YG^S+H zis9+P=eQp1w~q|A9Z3cLTGAFP>h9C*YO@?FvcRGMGsK|_89GmBvbGj-nxmgu$+k9o zp-cMISYl@)9Lb^ISfn?(rE=;xJZ(&;4bV5M{J2<`$mMDtzhP6O=l3R$u)g}ux+Ij|x|sDspfd^E0j^(%)>!*$zNSA4dweF5O1m<@uD z6zFo)3q-2SvDCyGb+WKe#VnzAPg!4KsWr_ho+QFkf>}EUGLZy!A zmyAt%MJISt5}-CH7xJ)Lor)8?EkE!+>mfTBD{6-K^hDAam%EN0AY%+!ONdeB{K`cH z`jd_`HcVn`Fy#7O(WdTtvhRN|$caSkhhtlz67zKT_JUy~IwE)s@%~Tl zSWru(IyUUs3+7GIwVuysbEjZnL8WEqNg#?v1Wuo2XZ0f#tGhu!S&98rZ zXX~aXmfCvH1$HH3{cg08Gq(_D?kg~m(8=tI2$jfcI^)7H3-R;Z{>?}z!DB^m>6owqHK(+KQpgN*f;`}^O&PMjpxX zb99a|tgF4Og>R0iK3R-1r!P6ATs9{Zwi`KZv=q`ZdI}3AD9jkzJFuQm3rc|Dv}VRzXXKaqE@F{9<4X6HC)i4t^lW zoFsVR^-|Q{>aON?$%w-fCwhNz*_F?6da?JG>qJsASBTpzn_AB4Z@daS*1z{;;*1iL z*b5vBs>bjaC(01!nyg`yue=A`!lb4Vtf-P&aom6VQ{y&~u;}`^2y1`r7%#D`AeCx@ zQ@1rBn{B%3Rum{=xl=MeDNu!?5_BG5VT#!?*CHX=W=kcPy;;r{XvAK>KltPM zi<{ygsxwWSmXxtAw+)lC6T{2tJ!P~f6L)>-WJPe$(7p%9kY7{d-ecOBmhR7jpucT? z^Lv+u74rQ(-ULcx*=7nk|M(^SwPH2eE2bwH5p?^)fTUvA8BER5Mf*ZP{Oep_iHghz zhFQ_HZvVBC2KU-JA=={`e{GM2bkF$?S`50xLs^yn>u6|4=?}0y>TaOD@cj)3ufd?3 zBD3gkv%ccWM2zeL@Pe8@_e-|D_EqK8UmHz-`v10_IY-q!_OJ*#*@&Agzc*x8%XC5{ zBMbbe--F*krXl@P8u@V4(E>ei+c5 z0E6QX+`Lk0e&Zk-+M3w^JpTU!GR0-o1L4GEq(Ny4*oI^UW7eN+BBhs>0h&PymA6ce6#?cUWR zKp#F=tO`p6&e8`WgO2@|FTsa%T0S<8tuJ|>kc5=dmft{-d?CL@XA$_zQcxGd&=EQY zH=oNAEh4=WjJU}#LWIdnqJm>0>GWBDDe!LrF#>25KV)pMxYdGK`;*wUq#~RvF|Jkw zjEyTD@bgFY^)lM&oZ#4SI{gQ~-m8&F-Bm3W(04W8ltFPuWERj|y^(quvx>Xcp@lq1 ztK>KaucUOt7b`nY7gxho_78?SGEnS0-8s?yjU<><^?YL`IwZ7N&a)C(#M-rwc(?e8 zVPXvf2cI{V-nhc1oOR{M4q$QbO!EO71sa~dG6(6bT;J{G7|6F>3JocJvmz5U1Sf~O zsu%ja;tWlGJO`B`T3jCNoTze;*Aq$N z31nA8#$uR?f<-#*^TG3g5Lw|D*)I~PDlPMlw1WXx+z-VUvbFK1ici=TiOqceOO*z| z=y*LkEqp?B*3rinYwyPawlec9`BK1K2&6mul+BA+ENXuGU|C zdppo&l=dxfn)Ef9Ot}>&2YaVFZ(1A}%kg-)kmbfU#panoRQJlaY5H|XK%HgD&;@aDaVv1l6MD3MfuumYJ`A36R!l_+}I zaqyWfi^=3h_7RYme2#k4KFCam& zaYe#D`xW+C*c_r&b#-1Si|=K1cYOiciQm{|EgU*3o$+{M%q*m?m$g8)9jq@sA86?6 zi9^4B`xjPT@rTO&0MxfT?A#vfZi#}Y-GGr>69e?1s^rjiJE_zO@$FmvET;%$n(gWw zT9eNSMzCq-E&W`_QJRM}cWhtJP3T~@yv$Xnu5d_Z=He^#s55{lJ~ld&0cHz{N8deMQ2 z@XxGTRRF*T_6~^iime!{DB1YtK_t;)q7*P3+hE;*VYqx1N3Fkdb6JFQ?N4r2T?kl# zihx^W?|5qplp=E@VWs*2*>FR<#SlZd`EJZ&|O2^cQ`w?%eqA~=D4 z_*etuUl^sB5mt5Ea?T6LiAJ`1g8_7fUl>B7#xJPcbcR+0R$uL8H*)B3NTijUj-Xf36Xx~UxwJ*GT-2-@r)|JJw zCWNDfHq2a^d1Hs*jKZvX)zkxRpOdEa=G%wrW>E(pR!_;Imu9RYOP9pEJwcmPuX7{aMcOZsQ=jOl*Y*u<(jk)N|W7Ex1a8AIJx9?GsAZ5Rz zXjr|gLcnlcuSS(f}f}pCn`Pd84IOqsTReJ?5}93(m!nNvKHq7KkkE5G018%UTxz_Yl-N} zS^9C*yPshr$P3u`9*t{tqP0&|Ec7>-JoGXG%M)~v7Msga!R_V7(qyK^~oz!qxKI6>NIbAd~_wPWj=x!%BxY-#78OQCM>#X zPg*tEqH9byy*10F%%=4yPqT22f&ejNl-w42&1!L`bnh!U&hYA+D75- zJnaGgMvOLXpio%WUh;?2$6zm?JZN#+^kMtt9%W2Sxu;!;Pha(R5-i7SJ<<*FHKTOB zYLHlgN>j(d+iSo1ItmUKQzVLSfy0eF?3x9kwL+oE32?y;QHay9=hC2jb=#W#iFXmV zu!qD<)%qZR*#!I6WTS&;U2&!z`H{K@%qTI4!Pc_S%KU6}?|`r*lrM&f(OrJ@aIGac z7FCW7Kw2~O4+AFLf)X7&x~ereB^$&#QgW}AZwH_&op{j#FEb5pQ8*wiV&52k5~~sA zBeyPc_7>jTVbI4UNa+*CGwjB;nj#A=5!r8U@F$NIJ=T6%NWrEhouRNBBT#wQ*WcDd zcuseDd1VN--5PXO2RMW*)q-?gDIskaZh%zz8g2B4ePp8JFCJ~{v8d)T|4c9Fkg_Sy zLd0MEh3W-kYG$!Ssv^sL31Z0f#W-wRgo7eS?1EqP;>fuHwU<#^B|1^dM7jNhwRW$0 zt|lXjjjw^1awef@i3qhDoBVOU0OxaYFiNu?!q4XY!+IvtrhmY`(A(awVQ<$^Z7jNY zI|rzxu>;dz6pRmHK2}5En&%Q6ULKY2^?f+vHkcXWu7Yuj87vffkRRK@5&IVGcen(&yL?E!gY#%p_8? z;F|sIvy!uvDgp9T^k%sx%*ZTSHNlteTvo#Vy%yJ~_ZG{akGQS7A zulr4SN((+&KbURYliKXLDLy_+6+q~9yVgAy$JaLZOgL*=ZLeLDCCvxHTNxg|hAE3wK>#jm|n8APN+Ukp)6M2lZ%*9CzXPgK8w zCu8vo(eVdMC`(8E)a6Uf4Q`B+{c_Ma6jK5OD{oS;dmKSVI6J_Z_-nZFefhx-+V7h=2=cl1Z*j^-yk?3KSzb7Eruu(vDL$a zaq`$;CIXDJ1?H{meVe|+n&)E{AJaQ)z&&AsidCFd)~(u8sxTPJ5e;LWr3$W-?Dtv; z5HDE`UDN)$I|lh=Nm8X>ORaRc0<4}o{tKqoIIAB&q583)X9&eY>tP{#X|dc zgtp-1=-!m@?8A0H!$xYUfMHmaM(cjHO;Df&1CXc8&QlAQ0evz&SvDb$pCG6%l!4qN zp$wS@Uj`nfyh+g9Ij+s%0Ju&zyxw$Jl3eh(vmtaOSG0f2u3givMpVOOyo`joEeK&3 zEPp>>5e~06G|Mif1vl*UX?lU#LPbwTPY&*0nu&e7ly;Tu){`Dkdw@eK>b*axrLPVD zu_3)QYVyWOTQo!yW;K4mG<$CC@qR*2B9(7L`b*)&v6P3d**+~e{w9BtzXZid05zyp z)hBLFV;|whDrnx z1pum}#h(tHxPzqQeOf#@-E@xuX}+x1U*Q*oQ3Il4dHD0>si%Xt_mAPcg`=taT+vyT~5d1{8{r!g$#C?(IRWbeeZ&XSjADX z0ReyUCNS@o!Pi~Bx!5jHF}U@mtvv^P{kx+yI`%A~r>Klwp$99a+-u1`ohEd~5L2uf=&oXczAO^fEg` z$<~9$@mu=NFM*U*cc%13XVNDLxz-=~_xnrX%%*)xZ_*M`XK!!s zEX1YlOW|{=M1`^NBC~BjfC+zOZlmxNV-#M@#mlfwhHv+^{pv1s@k>@KsJdea5INkM~@~58VDW)0`?l5mKoD3`V zdqLHj3=9D~N!+(#YLn=EEfp&o7#Z-$XxJu$BazKe#L@bi^m`YzA9d^$mkNb4DVG<; z@b^|C`D_kAp!S6WDz>wKSQBwQ6%aVv{Ha$!0|UWiz~RFATxi!xn!WHy!FlE|nT(Jp zR4dL3Yfro3KnXcwBmwYP_Nv5U*4^VCF?q-nWI;zHcv>7G&gp1 zdemLcVlsANo~e@L#(L53OoA%Q<(jbJq$3H3*>iTO0Qu16wQSgSN9ZOKG+V_uS9vmf zVUsb-bw8tY)ibCh=JntM0g9O{93#6E57Hdp?j8;d4`Z`)k%WHS+@*(0KgGqDo#O|T zB(Cd`N0WUs110+cyNHYLes1{)Jo8uqMkaD_5+LX0#^+6Q$B7A7Fb(dIpt}@1pKrI# zRkJyLy#dgN=Et9Mo@p*lEG2^|p8ZwI9RE0OF8HJdVFV|eb(MwRR0at@=!KOn2Z*<| z#N^L}F;A9?&P{Z@Noge3EnAs#t$@3JH>~EWvvs85!(glfPJ_h_uYrQt4g_z0^B8qHirOx1PQ#UW%b)(;IVCWqE?07fJ1B0XR*~PcON2HZW3R5z#y1b+Q<<2OUdVnFVyR#g)=M z=nWTXZo@GEJ&oBx0!A69;`wR2jf>jCLv5R0j|1`n0F5uja{I*~Ztf~T9>#}!O{C+1wbjDmF`fOH z-?_}y`Gq&}(9YayfVh4WW@q6eA@t%FMEr{!YNhAr9ko?y`dcF(Y;p|sI&gD$J!2C& zw~Jt8(rQJyg^1hz*np+?YVMa%i%mMFfEbu3(iAydJAGN*{9+4wW3GidPTq1SmiAlHc zT+NL}c8aqVRnW-Tpa+JAEtZ;dZ_XRL*1kQF?Tgus)NWixpP;7fj4shrhnW3+PAc0j-9a6BVJWSWpe1Y;tOc>?+kjEN? zmhM$euR36(@paU8dcf||PtLC`y2uvEFvR@DweJ>9HjZESR59A0H#$`i8ej$vl`yj@t- znbmd3f1X@Lf!x(z5lXb3pGb^sm;t@+L$VFHV5v>^98xNZ^>0pzg=B05DGs`t28f54 zV*3JH{8J7C7*!;ladt9UQ(xzWxUtDKi^*=c`EuMvJ11jf9=HaA&a<0rDQ&^JLoSu% zjgeYM7X9D{m{4Wi`5@=pYGU{W$SKa)?GiBfaVSNCBBafK13?@_)_&oBevophUY8zp zVy2(pFlJjGE6}9sbUF$sfyE%zqhxN;`P!0{5q=8212Fp)W}LybDL5NTxkU1dhb_*F zH*s@0Mz}EmU*z{-I zs!6Ix9s=`pqLdjTMz1iOr?2%)1JEw?bi)(OWI$0u5y*2Wo)No>YRtpomvaEQvNfac zADWa(6e$`4w+^sPIN677+4Cr?ELM~e{0>E%SxG2JV01ya2MCc1!ywxw*oFRA>aiTA z={!Gf+x9>-Ir<6|UVICXT3?BNsqQ_-X5fpp4;AUxqJY`1=DEPOR9v zaL3V^9=Z1#CQ9c7f_)CWAIh2M3<#oj>m2M0=SP%Hv?A(rL8WfBuO_~HrdIMgSgL9A z$S;3Tx;xr_xy_q-v^Oeky#GV#ZV8y%0Li(h)o=rBCkJYs!E1hFu>j8} zoQ0X0yV(fWfCRng6<~XFm{-hJ!7r}008$((57`Ql5Ic82OTVBvwh$IUfym}F?nz`f zC>l~g5JNU>`j?)l))(t1I$}-kg#{VMK$eh#h=VG!HbRh6Jyz=%yD!Q?3K4i-qWG3r zScaZzt5mrSvVkDa&92j4smlAhpZdUl$K%(Ae}k8CTZKa&!36!jA$2e%g-5y~Ml38DX&C>;u3J+>OH=JGXLn(C zA(z7HgS0-!xe~v9ok?5C9MA<1Zcf8&xbV2z?&l4Y)kl^p&5mn-1P{lrih!pBh0OOK zkgidS^$Hke&?NT9+^Lm7)h5onjd?K;fB6^$IQPzp)mWig{;ud2Wf}C>=LJ<#~)>(s`keGhfe=Xf?KAuN ziAHHh6Y6Yss9M4C3xto-dicGP=%g6W6|dhDttb0@h}*7EeJCTqS+m~ zUzC@;yYq9!uhd4k3^G5lu;v`c#C;Nt$FO!rY*EVnBuKdbZx`MFU-M9(ldJ!|q~977 z6H_F5bDR75{Ql9EbWy7P*Dfca5q$fH4a*()XI-8QLvN6uzja`L|KPv>OL^|_2L1$h z`Ijb2^oMUt{_Wqs;x*-CUk>#>x64fBKZpAN_gek$@f!bg*E!0iD)ZUpOjkl2m0vlq zgyg*=W*Yf$a~Pu=Ol05%dr8o9j<;<;T07j*5B|#1-zXc4ft5@w4R&m-5d<}$lnx#! z0PBi~j$cDMzPWnM0Q(A$Shd>{C6b?gsd&Gf$a9_5|N6Y=fO`Ibp=g5OeW|}M#>D`{ z0`$*EpL0b!#y(RRJ9Zp!`OH{UeFil^Lpr}S#Cn_M*sHU* zq#iNH1_e?68_yp}R^_wWZ!6mot;P;Z?`(qA;TS9K#TthdtxFy!+7hIaiLz)3m7`^b z{rx^)4r<#+n7$!8rpIlsk03G=qlP+~;6r>a#eCo8zkkri{frMan?t_hRmMBGWywer8!yxkZX&v>lik=og@lRXm0V~om|Z9&!1uBxZF;4CN!+3;?Y z=~j%6_9-%_6rBo6%XL+gP$v?z@)0woYSqRkE`(y#KXYeQMO)OK*EUDDfo^%KN-g2` zCJj!TD~-7CQmA_OBm{c6a!;4TWhDj(v86B668Zp_yYX%$gy~lwnJWSqFPylj=w4Vo zesr-h^>vphoqgN`poI5MP$&@QeDq6mudMnwwDP@SgO^pybysvXpX=xK&p*E6UoHFY zETh8qOIt)q{sWgkiBK*%C)MX-$FA43uMX*0UfNw`mG!tIc$6_|1gNWwshKlM89Utm zt49qco!n{P7^o0Eeu?#F6ac{0Yai>E03PZt#l8nqxP+1bG9OGIXcd8D;_v4JflaP zxA)oczn)r;4gk)lNwg2ImK!kFTMB=3>CBgC$Jqu#hoF`=n@Q$u3n&?qg(R6dyv%F6K@Oj(vim2{_S247nj+*#= zr*C3OUec%7JUpq!X+3o$Dv-{;Mt|o}qPPO_7HHRhT6gBsUjUEF^Y;JJL;6qcw2y?H zBjrJHhPd{iF8)l0UL9nz*`K*9d5O1V0U+K{54H*H6cnFD?ttkWH++yudU~1Lxn5hR zf7i{CR7g{4O-4^h)xg5vY?gyG{3cT}b@*lr^BU1U>#-hO6E$5MOa>!@>7q6<3n7m( z)jw48psc(~JMZh^zLPukq{&(-uYy)WrNcS2^VY0}Pm^Z%@0)dL68mNjK9pp)-|`v} z-tOWv;MrAbc)Yh-Rz_65K!6Vnvi8|wEkaRz!@SJF ziC}%i*n%ZLSloL=Ru=RRLDs6CQfvKVQan270yaK6b71nr`{pGh<~KTZi&ERg=soPP zC}v3}YtOb6$>E9bYE?pT8a0IC?Mkyk&=|mu@;dHNEs$$t$$j7Rt9ua6Uh5$r$ zgM=1k>{xLz`Ieti{rLJZ3EQO3rOxJ2POf=)N$&cLa@*s_R*Zl}!{6*X*lsI_3g!fF zR#dCCZG8ewFe*0J>;Gj`%LOGp$*-ql_FOZJI2wHayF0n$zR2eljFBvvJ%eHAdvnuH z-`ZTY^y)x~pMu0U({&_LJ5$?-V|K5M+;hC-)#-8Yp=k7Z&bBoHI{{Vs5DTYV>IawV zx>DJLcj^mPLuvSwu`kI!UL4q*q2FUI z<>WA)${Kh&aXyUar*>i6yiZq)pPgqi0>&yHfuZddYc4%IxSVdu<p6!;>K1#FaRFBW5*?=vD1FbEY#v? z;m}xVVG{J__;;q&LqX1MfIRuhmmQM$40UZ0TGsQW}jAvv0BkRFO%HYzwFPCB~-&^$M+KU05!L~|*tXi*^XRDuV0Wb|_qvATo z9k1f(bZK~be3MwX7_NPwz}MiV;s&JT!T#69Dm%vbYlOO^aNXbvzqw>K4i=`;BUqz< ziM97e0%cX1nTDy<9UHAv>U*HQQoB+>SoGYxfl#;N?|c!WoPui!q_1!=Kp!)d%$@% z`x)9QjgaIB;k6ZSOh_$Y{>Z*PV!xduW3^6&-t^9De|x?#QrRJM{F{AWhs+~?F?e}E zw$1Du`*G^%H&+cr5~^3E4A^0}Gcr-Rb3s0vIfOWD1ki5yT&aapSbj!z)9NtJnDfGw zTb~e2+Mzk4C_}M_L6<)hA=JNPTbvKhk#J^PZP*#9m_bQ=pmn2ud!NkB{BNZsQMR(r z66k1bT%{}VPK4`L$H>xJYM_i&%ECXf8D7!|4UI@Aukj^k6M}^;anz!nw%M_7YIw2} zQF3B|jcZ2WmdBWe?}JY6#%LePOj-jBU99DJSwh{o!T zoMB>de=-^YW!a0OvGku5OA>rt?BHh#Y zRp-b)&6${g%GI>v9o~AFr#!LL|0%h~EA}^EbRhP9)pQ9xZde5hc1A%u<~WJ;g**U@L` z6fkaW+BJrKDzAm}i)uBImfa#LCfQjU!J+jS7E}dIHq-n+l}9-7JIDIY3oon zmZPP~7}H~%JqI5a*{}cojO<;&GPU3Qpy>Sm!-W5bmj6#D_`jA+C>6;$8K`QcXdE{j zV5^psLv?-Mc2 zsqGSfX$W$1LG~h))9d8V-bz(9HzH^?liHpqlJ8SJ>9ZWfJukzy=lJ3YMadTj@5EfS zxgq)$FkX!xDySBL!5wuWEUm>CvOElX{uW|{#Dlm4nOqIwaOE|0)8SJ)XVi9^2Y&vJ zeYL?$D_i7AmBvp$7!zBj;Wce-mq|dvZCCPn>{UKdQkf+8FztIfZDhl33vn{>W-{!t z1)=d)9sdX3@}SxM0E-anjRc4`b$LY560yHZ0VjC7)<7O3B&c6wo_u-mVbv4SZ+#Kl z|66V*q_fN@$H_1po)TNi(jSwRDxyZ4dyOFT_yQ5>88Yj;y<|e3Es}WnIlH9-@VLK@ zC^d5W*6^bmczgZUw*^Nt^B){YA2?j5|Ldr<1^oc4Y*jElHm2q&Pvif_Re>73w2Qgw z@kMy?PDDH?rMc{AqyVTA61}iK z4TP0n-M;#lYp(PZBvbg_Xff9dMItVT|B#X5OzjbsN$Oj!=_0~g=(&pU+v?1G4m$Two1bIR-bk~$fOx;`@y>qIW8duJ94q#ehA^!4DrPW5tO zmNo^8g1&b|+rvYUg8t5>E4tWsEp|5QfreS?bW`W5+wU5XSA3c{<)O>DH2?X9(JQu$!KLV% z1}Q@g6opV;>v^Kd@V-MGrt4+wP_;a2VF_)akha7tjqreSjEkMtih}9@bU#B|%?+r_$-@>*Am8gcv1(Kc!M9%M@fh9U3NP6}+s z{E3;Hc}B^Sxt9FK$(9w2(L2`e7_KJMz*#?eN@eW(s55Pqzx*(x2a-f9{yfXAk2PWKWeMVfL=WpA!A4r8)NKqa7%Z3yHFdjYtQ35ZFnpM@Tkj zPTJPACJ(SR^oyr&6m4AinIYVvof~2yS=DkGcnq2N`KchMkrCh{hL>|4lxKh}dSLPev;hIOotRl3zJ$)mo zQn!GB-a7JTzVnj|h*;Xinq_7=tz$eqiL`DKP&JMyhXad&P96DVl9fH(%_~F4d&l6} zFT>63p#tyx)p3KDyP)R=2CAzm)`gMZovVOQym#fjuDNd=f&_GYRKv#LosMsg+s;Er z6uVV-8_fr;-VS>Jf76}T;OY3ny^g@RY>jiDS~JZrFhc2%9?ltEsb>8MwzkY1;NIa+ zGBIeG3pIE+80kan2M|HV?Kug`je^*69ebfYw;p5eQwliv>W4tBW(mD_>d-Tu^&b z`zf6F%euWcm+}HF=OkCnt%nQ+0HuY!Y}6Uha)s1agNyXc=x1{r7dofR10;9fwr?v zH@l%i+pHCS$JSf-@39@W4gHfnZeCcHMkEk)1FsPH#~MtVFTT4?k?dOvg8E42u5z}# zY@155C&8-=BPa$rP%91TO_82NIWUa0e2;giU`ZxLb3x_g+)NRnEcYZVjZmigyYz(q zMDVwL8$MN$>4Dg_`Nu~lVkKSITkRPYfk3TCwuziJ&r#>Hid3K>ugRR;S|0J|6|Omh z7g&B4qL!*@7OaQ3A8`#l+lnxi(H#Zg(u@5%dqi{zdXdIpu_cLi!mwDR^n>f3gOjeW_5Zkc?1=nw*NGIV_37B#iNtL3Csk(72q7DX z(vH2lvMD}`zLI(6cB4s+PGjC{^t$hjn!w8`Y@G0)-!KMZD6=*vsvyK`qW0XKl6pZbAu6xPYjLa~Mikel=nFwDxld9Q6(GRA zT2U!OcBy72gXjcC_>b2IF8{Jj%5strq^B(bxrS1ze;#DI;Jr`Fa0cK>^bz$xJ`2EcVe_-7 zZ-QwD;Ff~t-`Qq)>gC?yKt2Hbi+LzKd9tnAQ?qT@7k1q2Tt4f0lzdMX|5{{ZDC=Pt z52szDgaCFxVH&raSnS*Vk0g+XxiYm)jDq-SzC#!hpEl4kGhDqCyF?kSOy&6LTT$p? zj&EV^-x%t4-=SpojX4=HS&wfrgpN(jlBt;!{Voy@OXCe46v7>KR=W>@eaaS%P%iFmLQslo*sOrl9!{T96Rs2nIsHBkjVCi)hen~^|eSJa4d#7{7S{0<=P zyJuvC)k@`O`S^pWz!B)fpJnz{FTThf-48zO94OZ#YukqYcq1LsKVv;LxvCM68+-)h zD8!*5bXC85pL$qXAkxflvu$B~oYf7V16=}>(=e5lIvO0Jz@CWV`{&_JSmCNGy4537 zHgge<#bI;S?m-bIDsCHt*{$La^J++_>qS*-pQiR6NMuspJf2W*?FwRBF5Cm!t4GwX z;pKc@12B+ia~+NRaUx>`Ze5?%r{w?1+3C}eWxMB2dltNWGgw3HHPA-t?frh`OTY|L zlFvcjbF|t4lrNEe!S?kFPxLjjvUd82a$YOq6K$sJ!w_B_hQ3ladxN!eqe*Hf23^?A z2>d|TaQ{jE+{*h^y_($L6I&caEk9w{Yb+z7UdX=pr;wuwcGWHJdIX^mFLc* zSNubn1gsC0AZsf@Tv_WG0{u>Q5iK^<-pxt*ZO_c!pQP52mW>~zAyUMc@JuI<9t+wG zg$t(Ql~W4ATLR435oSNR!J+a3XUn$iAA=jplw;f;4XPG=Q4|AV-46bCy{2W*J^JM) z0OGcV(Gnv2s>cgIEOtEAO;)wI@@WoWOe7R{yl?-WF3hvLsT308Ns6={5IVva)4*L? zHYncCe%6;YiL##)xADE6wCNBE9ga_T46DUkM6Ir2~Y+?QGF# zAWjPT^NvD^G+GV<&w`)YIfULlUqx$>R!>g+-eOW*Fpiq{f&SCgaa2Z&UY0-5eEQbF zg=Hh=eGn@|znsl}KQ^J>4eg*(rN|*o$LTr;k4Z*H1MM@Wp$vo}ck+oa4N0e1VlZVh zYSLL+Qb@aUCx|KyRNnhW#RWi(s6;yFQOa9tNTt`+3GSgNk%9d39H&?)zAda~4(Jma zRIBUo_7jeV+C9L33@Tm~rPb+w|9s-f>-Ny5$l* z`_6o}YN_9a>pC~K**&Biw@71Qr3ao*3?^G@jh1ajKbGwc%e)K(cRE#Pq zVWK%4xQ+qqyFW@)?dr;^eu>b1;ccuEdo}gBN&!r|M*q?&qAbjcoM-f!L!Y?YPbhy%009=LIwN@2Pck!V=#8CK206NCxu8#G&A$ zVuxof1VO*1#`q>ALbDRmE9lz6x(-E=zBunj?d$VobC3#{L5lKUo zGdF4e3buwbO`)JwUXA7Jy4MVcHN-596lqMTxTgL}CryI25x%HyulLQ7m8NsOW5Lzz zUuNjv37<>C92o(RqEmR63YY5=={P!u5gK5-NcUJAE-61}Z#MajL1ikoc+9Y1v5eSNJXEk`p>p|#WZW-H^B9B}s14lY=^ zEt5(|x)>sE4VFwoIX#GpXQrvd)^bSoFIW5OS5og#jwF}Opo|m%7NAsj+Pvx7!2o5E zd6@1I?ux-v)6_d{I44M{lLpsl;XULusT=?+zLT0b=}Gfj0fY7dRph7T3phYDr()|y zmFvEmQ1lk z@$6WdB6N4r9sLu&GLaWq_JpEx`;NXtilmk{?_~eg2{iPDj3VQQ$WY$Tx*_bXyTRUq z8>y+=rb4<~tZ{7fqh$Y}<%f3(^JC*LA6zN5w~7$ZsS5!`wR`@`fZJxthhd8E^PAAE z?`X0iCr|dY2_yY%-;@#Xow$yG zz63n?bI!WGt6>tYpQ?*Ju%j!!Jz?_=2jr7;NW*m8>CMLB_FY`b{JkP|0IugZZ27jC zVO>prB&&LaRIk_JREaGPvxgR#gJfFGGR3RQ*HGX(>CC+FX;v`N7p`IBKG7m=cutup z>P#R%)fscOE89smOJ?X&1)~0A)K50ye*uq!?Cq%d_lMmU5K{&)oxUjgj!3P%HMT9I z&(icTSa6(Uw4HIk`gy)59-50=jaoqbY%A^2kaYtODj4_e`8$_$$oXaOgZ<999|F+V zwtdT7T#CIe9`tk=5JsD{LtTk&qpv~zCRZNb(k2xAN5O0 za}oXc|FI?0|BU$k=jfsfy!wA6_x`Kb{a-t0{pU7;d%*wiyt3%l{EGz{)k<@>&S575 z1J%KD^Mp5cN2K7=2{c)U^P!Dr7#?4iSzk%*oDmfqDX0UFn7}#bi)AK!Nc`a)Z~iZh zpZ+{>Q%`+!qL#D%^!(7i?{k5th{?O~y^Ww)ycCVLa$r&)>#J>I^&hg z-YcM>_t#joH)wy5s>ri4Iw@P^X7Z=YUd_M19kPG$WC{@d^bh?NAVLAH0C>Gy{rn)m z|4JfvK0Tkyl=&|g9#Q)C?>0Pk5nlWyj{b2Ac9u%0iH)cl>SyR>SE+X0h~X4lmS_d0 zoQ@oM+7HZSwprU)5Fev{G)d#xmoos4kjsys-NlGszb=Ea?%dO5cd?yO=-b-qwZme> zZ(MsbgnRXzJAmT+nSSq_B!kD=mKlW`!=2`nP8Bii7YQ{g(=y<8y8q+La{nW6>7-A6 z8gbJ(dZ9Ij@A`F`;11Ph7y4#f5@`fmttvU9OPhOw>(oJ`1 z?N*r3m5DVwA+48eRr*G*NxXNqaHX|tkm{2@wMF(J$Gw5o;iE1M z9kn~Q!rrltP{LZ&-#Q|QuWt?9niZ{V4QT#>I^(AlO5!^*#G_w=gvmMk_8&a-zjM{h ztFUOblEg3JM}k)|8#9l_SE??9Y-3d!yvK;<|0WpVi%DsBMJEm_Uu}oZm*}czI56`? zNbc>Rf10u^eGYgm+*k=$ZiH}I_c9zBgY% ziyMq?wB$)Y;;SiZ=((Q#+v)E0*&nnt#Z|4-gtVmqG)-NJW9Ex~8U(SGfY*ie?o>oZ z>Y!xDkJpIj6YbrDxIsSqF9U0telAYNN7hv7%-;{?Cwjtx0j!37X;qj4U~7<7FwNH- zQK2b({21d;a(RS(NYl%1)nNSwwkVUf-e@2P%3Evx2ReXV_2DmeI}fF|Sz}Z};_K+7 zzLT&JeK=K=3D8Nn;EgIA<MOLLlEDqVExjw zfELRgt1u9mR5fPwGe5yuu>=C6@2g~XKrw`b%2-%?a+%T#wu#&uh4ewBVk?7^42%mUW5 z+NLJX&CiBsh%FCqHm`Aw{=!TuU1?s`@cUbU6{nC5i<)2I=ti-ZK6}kf%fRPDbqUO@ zyBXr)*W1ypn>?BVM*HoBm;pKjxL_}mvl1Ba3c8+@X#Itrh=@oy!@LWRJ zWMLwhwp=WaU2i#%|8-jW>tbC|gMepnC;(X^T{fQv-8COO#3fF%6p1askY*UYfBvq! zi25ofT8SVVB{redsz^ed$+Cx@w+86Qd&w@DKufA`6tN_qGJNb zs0H8}%PXXUCki#1$K8(FKO4`O7fD!%sO_Px2wFKHYn=NEr#fZZ8w};0Y`bV8VuZ;? zTojiPzNHmTRdmuR3DMAP!<(GMBIbGE^=-wZQQEsy zU%t6JF4e|`yf%&=3;3*p1S8=e9~H))DvNn^C4QD#ftR9--3;qB3Y4@yORK;u2TNZ; z7(n=%P|yeI$OR*#9t%3?pnT)q6arVV4}Fd?PJ(Y^onL7)AvzxVljOOGwyNZ(sM z^F{3j`q?|HDmi<}!89o_^=~@_@7QbIhYDhNlnuBaNdNn*Ow%CuLu$K={`I`sRe|=B z|NNJ)gAW>fD;DtYSF?0I>L@3-x!yJeZ|Nso_WrkKIR-$+juTSFZ^qowI~*IIcByFe->l*Ig+sKTh{4cXaNOYbMa;^l(D%Y_xMCdA*52X2UCKod8omi^pohb7Y( z`N_4lOWY*p>Zt2zIQQQ!62+aq^>V!}>!$zBwaXKdNT#p7MFhfeOwx>C+sOObdH-PH z%mW}k6Ead)N~CTDLfb7H4pyfW}-!?ij|h#gNGPrsOaF;n+k zm{$erRj_eVIC(ipbDfeUI9pLY*;hM>yQzxf-s16ibjGq{N-m*!WdR$d6ccOY&(A4q zb!B+}!{FstF8c@7t*08O47#`9$(;yQ{df{E7&0Z*UZh2X?QS@6`C`rx(n=ClAo6O5PW${2wcTYA@OW!-o#z?C3b5%T&$HE zdjGrtBg8GAW!(yJtT3tYT7EWN-l3Bed`vI)Od(v!Z1hmUQN>ciX`kBczBNUoA;Le0 zBvI99ymV!Hf9x9Obni=vhk|*!S$j*~(2`pha}EPYX_($OnRj3|o9mHZ9ef!6pzh$q zdf|tYJC(*9`MOzIBS(v&e6_8G<_#npaS6YS)wB9Uk=*&!A48?!bj-o&@J-jKsxdK9 z@_3F%0J&i)hud%Qr&tM^O&AtDdk3TXni>%2hSX@8X)gE)ID-|@ODr)`m9yW`~DYta7m z>#?+_R@DSqaefbH3b^ROu@p&1BcI|`C^e#bMs<-thYy0(EF`2C)ifPx&l)?$5v-@v zj2XAD84!TNKaYSwMzTk-tqn?O-&OO4#s(%)JbNJ~S#e4a3zs=6yNH_~SBLeIGw?{sfNS&M|g%+a(=(Q@$e(hOC2TUzC=8TruM22vKyE1|l9 zGok)YSTi)#Ihd*={g2iDp4zibd}CWIOYMnKr?;8U4bAf|YzyWhxZlv-My1r`7kDM@ zaQRadUPHR-j!vWPGjOe7smw}#&u*U{>s){B_(xt0$XbXh&h6rDOA>^+(?dhLyTf7Y z6m4nXrYka*{EeF)#%3o%V`E=c1=vbM9sLNad#ZH10bAkEh}NryIOQ&dR|(l9>5OtI-CF_JB)-PG!zi79<-3qLOAyKL|hvt(G~ zaKwNVsf}O$$eGGGk-TOZzFD`CY$z~|)Q0})Hm60y%R+qbnVIJgylaxAaxtsr+oNYD z(!_Y}^yuYsccN5l*TJ8+uhdo-8urGaU0yqpJR|+ppiM=oGp3_HnSMT;MM)ETXatZw zt2Z`7ZZkJlE`R4U5pu;eJ$|?keej_u!DRnP$qWDnXGuSV`Wr72V`3eQeLL$`f0|Lj z9?6`-^>qR#6yoE_KJxv6mh3B=KcyG;i99IT(Mv;2>mLgl{$*{Bx$!}i$*>Fhz?*Q< zp9DMxv3Xkg%82DV(xIPlLEGV9vdP9o8?ADU`EBbsm<1lGFZd2rOj$`n|nXTfx<0Q$Wxj6gI$K2 zbSB5jCL%MG&4WdznOA343XrH~)vcj@v_EXImXyU1EEXzxB-6*Uu|4;gKf+~GjuGMl zt%&a=L5UO=By)6C!0x>%S<>si;ip04n2#0xMtqI`VFtI?r3AHOp#p<@4}LKvTYV z3?7v*qOGrNL4YCGuF~DCu`e9SI-gA)yR*q*4|9QH>?+Cb2bmi89i0=Ao?Yh7rjx5`^A**xwEO<)gt_L|7CwF zn&Mrr;)pn;NqXz{hYdj9PWKA8Mumq}nh@U(oA4sy>-YBBon@K~V{{Fd?XHn~8-P3f z*t19iAeP(nX&djn{XN%J6aYm!d*IY=ZODt)ilpVLC#P?Py&sFSqnwj_S40A|tTTwenNVHkQ?u;=In!C}vej73=z3BtOPb8CDv*>yK8dP-IDG zYaF#?RB9HQyu2(bcCj*37sJlrGsHuZ7Tufj;D~lg7x1SF$}9@zm%XFLxBK2mBOg}5 zv7Yf3T1S#fX)*0oW8V+2*%5+*qOgUO9$Vg_xlr(|2w-#Xn}}GMGTt?Oh$BCcH*4Jw zDPBDBgRrWiXP)b5^Nr)?gXIi#YaZDHs$aRNr=2=3xWQxHtfn_G;GV)48dgH6_qv{! zKrpx$n#yj2l$>z$UGPI}CSt0+Z!{p-PoEX(3*er+>a#Pa-~;rC>8FKrTco)K^@ho% zPI>ZFQ#&nYRU20oHPV3^o7U?@T32u)h+X9zl=%#opPI(0oC~(P_(}a4apfRYNb8A? z*BmvakM(fNo$XVx9YYN2W@*G+bs9vNNSx{|mS|ne9jD<(Prj^jH1jG)D{iomz@7*e zRsunr>mD;ZLnZX{muOxz`c@d!GE7#1urJ1%gmd?@(9tMqR1tO@VOvFUtKMVODi`7R zW;g>I)UpZER-m186ij`T-J-V?ptiqEcu+ISCk8kgSu8rfy@Fp!TjhLoiv%-yvmW3eDZxU>|^w-mg z{53NtwN0V$BkJzcal#a8W8Wx08CD{(MVH(ODH1qHqlT2oYL;7OQ;#`ggqLg7oH}e> zdC<$?iH%Sme;%P^@N$b&viz)UP!K8A6?0={GwG{84&SMgL-b}wfL(wbdZi7X0NrYT zk#}r;)_o;pQ}*zr$-tq43VSK!t)PFJ<+QDZ$2l0#L0)&q0$w(FgaV6)-AK>iR{2K{ zfxtriVHBT4r^)JXV%yT;R(R(<1}_wESFonFljsU#F_a;oG4=(Ut0kW65^Ejn;KZjh z+`&q!)UL|{NAt*P{%26T`@qw~gm6t(DeKp!vmt^vYd0PdX)5Bcp>w6=Q@+z|-a>U~ zLH!YCeJ%YDM-8F%R0lFl(1M*s-RcMl)eO-YhQF|fBO6D;3k(pMtl#yJPaRisH>PLC zXhvYt82w)Au~$1q3%`_D%gP!1*vkON~U8( z!0uL)u8?5Z;VCa3BYKaavL$|BEba_>FkHiGy@`K)W~C?+StM+Y47ax5!njX_jah}P z-r;g>^paj%Zt5yhi*a(Ml#zQA?&BH@##FX>;Zaf|VY~{FuCFcWG?Wu(<4F1e79Ceg z3_OoJ1KVey^&?rjB8POJ#6A`&gkc{eZ6HQfGXF?L94EB~lTPr&H-L+mS?vC`9KWLD z+}eeP6k&pXye!o*g32m03k&Ec<_8JUbpFbnqR8PA>^r);Py=!iCyofjl4(kYUt8gu zRnVlpaz7myg;Dvg=lD_9`W$oSp~mGGhV4mI<3+=2{`_b|adT=vB;wVkwG$4LTMOmv z;V!f)Rj=`Ku$P6XQr{YNVqoL=yHL9{66)QF5mA1acms0wsZ(w=~?h|Q;ORn&Eu7?d zV=LoLL8Bu>X(EW4J#lZ{;W9yGl!N@Ym}kh z_h;ynmf-_avgwHQ=LBv#3Ym}SwFtg|LdtKR`hW>neTw(RL{Z{k(c<|nCa{`pUuieV zizNGS6&W-1{Jr-aq=UiBVNz-b%Fa{L`E|a=MeoN`zyNDXs>3NDzvcr4J&TRqIr?)$ zGv^XFGR~}e7B;}b;)8lBZ+G( z*7;m4HeCVhn z&DG#qvw!1eMrf_)8CFREr!EJNdJv0vNF6#Bdz=Y1>WvjHw8uNl~ ztV5~s)|o7+7e!=8kZG8iEt1~3h+q&BhJ?;w_5IsqcdEiY__B0I;4yCl_H&_V3rvxn z!adwkTKgDV1skC*&Kf!CS=!xWt#=f-t2|DGinnFbJH5L|4Ss4OQxB#!YS47wZ6v5o zSU8q~fgFHVg$r@Mcn|q5;;#OQvPH#EZ=^1SzS0$ZQCP3iLgupKrHad3uHg9b z<9vfu5@m6zghPPclbQo=D_&0Pb-C<5rV`u5d?jL#M-g{y(3ctEgnz*4=Fwbh-g_5_ z9BszFks{gI!d$xEcXL{&J?XC^feQ`Fx#jD% zcNb_CY;z`@@G-^rvDcwqwHuw38dI1rCPqefp{`_6uz zbWbF)-rH=(-Xxcb?ID?VMq#z09!MIFjUR~+@*=zXu8OrbkG=5P-~Y?o{%P|Nqn_#W z1Q>b+gAGCjKQL%WV;gOaa)2LE_-ng!TxB|2MG&Q>DA2nDd!?vdv;wY!zS)kuSzw_n z5uP|up!7O%Df&0L2T5Sx5nQ&ZKPH_h2F#dst_9mhp-%U9Skod177YaNKi1l^Ml72s zxB7l{^DDxuq}up8ZU@{O=;8Ksg5&0|HhZ;H-ps)59*^-8s?{aXB3xKZt>HLkt8 z16AIM=(zNe;){gh`HK;O&^3T9t1m{UFMkk>q+~rP)d&dm8n+1>A5QdNxlvJh0akln z@=VG$ZE@2_7C49~MPu4D#oDWx>=G|x4UH1?Hrb0vNh8_H`bh&X2!^IrW_zFEBLFU# zn3Nhj7y{XmzmwNZN^%6Ly>q&{+X+)GS;kET+v!1FipXJS;KEn2SNAEB^=-mnK5qz| z>eCi8D;sEd>*F*z{5-qwU1zu=`}TT0&Zn_lKVcIM$NV0^QVo=NcpN7NHm)2_Gn28E ze4MG}Qxb`@b)t25xI!hJoRDQ9041ug(shBB&T5&wkC9KrU>M>>uRIH;s~7KL>9qL@ zNLEdY(hw%PrakM=uWo%ucGrY&VnRnzP37q)>Y++f^BR=qv5)eQqpx>mx1mU@gf?G2 zkDpPP{t~X@3Fz)l3CMB85q2l_ZXxD(PXsDt-?w|H!i9!Q zuA4;QxE?m;xrXhYer_Sb!k~uLwH~m$UUa+ew_IX;II>i|02?+cg|B|3Jo7>Jk6{%9 zhnMX$n66X6uOEXaUZc*es?TrHe~zU(r9Ysx!rXW-&XGKygUj%->e-IByed#!08v6X z_vaJ>tLM)x47xGCy{l9!>TP*QM65-tSUAY9Xz$*dum`fqSYhyt@tsSx zbxCLcn)4q4Rbigty#!Fd9}jte^tutFl$+_qEe}-M_3QLp>P^PW2N5Q8_#77O+B)=0 zmz&oZC&cbOOj%panMBz*u|^)-_m9d{@4^zeu?fcK)TN;skq(Ue0}CJU0%{jw2R3OL ze|kOft9E<%#Ic;ra|h7J=PmmV&53rMiC9BIhk0X3Id>hP-^gB`7%p55E~`^yNdj93 zMPWawu~gh3tByt7dnwoaVA*y_e*!+aw$VJ)0rr?&v0S-aRKYo~jTF>RbYn*!k%X7- zSYthbrH}8pKK+o}L$cpFNDQ!-s*=7ixZ#!D4%D-@T^38G!}l3Tcj~I6T0XR3Sy&zR z)GL2%q>F)C4%07HwvD>jR!mAeZzTu_ZTysSZ_Q=p#2V`s?K>tWWTD$^-SM5P;XX^V zB@3a->VQyEk4qQzVzN8o4@^HMlV1Z}{p#G?l^_|9=AH#hW5$L2`TRU1blMGJ-TLSW z=_d7dE@pzNzuV@c>)YSyjD+hZ0&Bd8W=?)99^xV07jber%wI z=u|FPrtC444hf~sZs|Rlz#_*ZqmDNqgiway*($dQSUtx<1>Y}miYS&EV$km1XFD<>7ptPgw530?IFFSew0ZN+Jr~Y_Gg#o zcS?Os%PbDqA4Kml=j{`|S-z%ta@?*XiGCxi*i9;&GzHwnAPWNk#i*I6W}B>3to5`9 z4#n%G1NCPjWXpHa#vU;~|9Du=FwR5f%m=*w|5M(X|0SL6f83Ty@3l0in#y&WN=sAQ z+(B%tu`-v;v|KCqJy+a-%-d8hSeiDu;gULPLS~8^keM>BxRZ)fDk>@xh#<0kKR9>h z-upLv9}j-w^Wkit^EsUJUS3b7K z8SA$L*>HChq^-Q&XL%Bca4YvY=w$fmdV&@ z7=*Nn)yu0o=IIVG>4o!*LXu3epnn)WbisXn%(MBBhI%t0CZ%x* z%!0gz{4h?UXE$;kTL1<^yJa|H{ltI+WjJe&8EM!fbhAlQf^%pbbWqPa!k(>*Rfd*=o80Y2he-jkZ82f5|`UyC1Xn8g& z_8Lqsst?90g-$ZVmbQ*n&A-lI8`J`uAVxcLNfva#NL~{Km>dS;CmP~*C)wgv?7~D2 z4F0<$N0I5}H5g(S2JoUTYHMr<0Bbekz36dp)^rSzpmIDT47^#|G-s+is+O{@wmH5Q zGx3V*;`QwGxpTKwWPsswgXLWXg2CEPF90b>OUu6(IMg^9ez|23UJ@|QcRasS8^GRW zI8N-(g7DwcUA2IGBsII7F3%4jvqvsiBCUSq zoA5oGL|14t;|eeJL~FlOYg5zvZMqFmMSoX%Df7mYzGFN7m9t9VOE6b!-9k<#Z}>SRQ~fXbVo6 zy6q*D#6D>KOgyfCGR}MQM;f4kODW9IjL%R+#GhM!4b;UU*Yvg zVc}By+c@$7_33xQz*F|8M@-i*QeJ>Omjm=LMJt<5>CA|jsHH@V?#tX|zY;)}ibG28 zCVdcv+?dN<@w)>j5Z?vu*8M{IPUhA_>0#ZQX|CoGkOhk55;}tW=r3b%9NJuUi*|j)fM^ZwSWHgqJtjLA_ z9-Tlbvzw_QqPj(73BwGOwLIu8@!0?XEB^6`v-jqC#Nx5#%Z@q1xf&cRp(R%mw9%uo z-G`ihTZu=BvYL{J*;Q@TeM4#|B-*3;QWICUg+F_z1r1X$Q#8YW(>>bjg$|AqWqGyT2GB zl>oMbG9a6C2V$^w6eZ~>oFK)~B4dR(p<>59jhC&j=eP<~k(Bb&CBs~usx=#Lo2JL> zs7+&=;ELWnBk*cnH?KI}dp0_pl$2Ag=D3 zLP!}bk0;Q}H$=D=9`7efHEXU~dIs!cBF^T6IlQds1w;e<0BO1)5t4cIJT;JD*tf7S zvskLwiHh0CH8kM|s)m4dy*nx%i{X<3R<$1!z2~3ISkQDJV#pZE8H|0qex>dR$;R#? z3-c=nr(^mNQ?g-pmdt#;BA#b5{IZ#MBchy$sHCqBZF?8Vtj->Ux~^Z)n?(3ImR(kH z6ugBb4p^VKN)~x$aDt6xWt{VX@R;OV@ZW}`PY=1kV>x9ttf-zr^K>A@kScUZlw4+g zo8LeXbVF_I2r+$|%!9jc1J1?nvqs_zAXsbktJl!kY>nU)>a~}GKFCJh!{G+NKg%-kjZ&#rn{Ic#}dO?E0v1~-8K2OSOjwlDKnbN+IY0GjaeIx#mf z!_rZ_FW9{@x>O8+Oew^*<73|LN1cgnDueP1+is(VUNtN_q32M~UAryWT z(2dxE3_YNj6u3p2g$AdoEH5|_Od1FdQMt_}rn~K3n4Z3tMf2-eKqM|sdPpk2T066; zGV`m7a=I@8rJaqIBtN`+wY>skz8~NKm^`*3C{wSY+fO%~4847QGQdqra;m=r9}zZA zbSz{MN6}`_0l!OY`x?M07*^}3NiMQxwM}zIjJtwbd~T$bO-4=nGd91kskoRMw7|@N zrYMYTqQ7tU%7aVMlRywl!AX{q$ z_VE&(Lx(Ph(3!&dVWqL@MO4hygfD=L*xZ6XO2-JS@<-+dzNB96KXG%N%%hWhm9nm-# z2w9CR|1i&?6hGGLG-2Sr=SX5Pth@BX9Ejf+#~~Z6RfrJG+ye~{6;xaxr=%k-e{wCG z>E4oQpvU!z#m)zI2Nh`N1z!WoMn8$_=D2olaB=S%fdQ5^d{SK094v2jYwTMM;Bme+ zHa?!LjHQEJOc`$Ukx-e$L>nZ{&Kf}Zx_OojreP3wE|CcZHmDnWT5uIgZehzg(zMea0?YkfpL- zpEAY@+~hj|2jB6vBXfD!g@3doTlxD2ot4ZON6zy6yO9TFJ%2@6(JR03^ZX_T;ONYG zQI*!ZWxherb6v+wzAg>mb%mM5!v1!5N9F0_u{+ zF5mOX0?nm1i#cRDm2;DqhQe=+xvEdo7qL8Rml~+9qlZ}~Ym&5emb?14MKajr%Eq_# zH+e>}h+qsoxNztQuuC4qIRZIO?$hZjDn0_X4LM~a#}iN*XgH>GfIyFeS5q0S_hT+T zFXK#`rXs$a(IzttA}c z?68>=uy(n8T_`mWP_C1QRcKLAWM~_kQNH<8*b%W#ppg|79UV(7_rfT`ozDdVX{GG> z{WjB|=)9;}9+AL1w)1d&C27IgBMSMhok7b>LhDeKEy*1Ed??6h9ucqEV^mBqk zYFjuErj3|kV#9{ITYQ#gPZ!p9hUNXHnRJkEO`AO8{dT)X7Bqm!K?_WAev|QE2M0oD|{#b3T9n2uGIThR*Q+()AUTbJ6#er{dI(6 zB|;!Iy2!IVc_=m00VlK6dpD(Su`*7qAw&RJXYPXvU$Fab)&o~up-J(*c8#=zl|IQ+ zTBNVj*T~dd8pp{Pp4?!=meKtbyVSEcjdNU%;p>XJ??Y5WAY~hKHE|8dw9D>U0Y$Aw zz_C}{eGDQBXx^|`jypg`C}}$s0ZMh$-%Vi30g$H%Sk=8`5Vm{Q0E{o|`4h!l9=W#n z^lGKIswT;H;dBW+X6iJz6jVQb+)cGG`$35@KN8jt1^;PTqC1;slabnd2&!z@Zy97C zMh6-0m>wt1=mO)x*00t@Ef#)%ad-}wqv{MoAJSE!9(^rjRn#gf2260GKiFyx>m7tC zQ}gEAJj`^q)+7fkE^bY2o$kyH-e9kofJcQX7ju+Mio}$BZDGqnFB5BwtwH&dJp1CZ z7FEn%^{~mAq<#b=>s>i}?>E;^14@bo3Pr7nyXm~HK#Me0F|?WyC#kSj%omcr&VxG!Lx3dUR%4?VAc#v02 zF&#K%}%xX8_mB6R)$bZ(Y+OIp6iM3WMf7=7f#h}(_hXaEpm<)U57CSlj(|7Wg_a5 z9!I;z-6nG`4^zvHcudaS!sclWk&_eA_mRHj3Uv$9`g`;T$Ct$24hR$8gj$F^W3{Eg zuU1b&&_if{Qo9Vm#M|CM^?PZ2s{b{>>E-XJQgDaf*lv@?TTQagm4}~M=K1!VFO~RW zcfisBvjMrb2m!~Sp`O_*o`o)Gj2u6N4O|6cdKp$~3|-#Wa%Jh1Ybgwp zIXpl08XhpQ{m3dZ?I-|nEQ)XbU6o?oB*3fO_BkbmHmuHhE><;LqDY1tM8L7C9|M!m z1*GGq`>l2ct=v>I4lX()PTe=Y8peOWfeK%LtH$tK39I{D$$YdI`;~!C{HQ|Fi$^H# z$@a~lHNAK^lkKHFZS0WL%aU8Y}ajes2Y{f4ovb6~i4s+h* zlCI;*MyRoc?!F~n8r!QSqyGP*0c@{3-bL;Sf9+@Y#}rZ*ALW9IVd^QQvz-qbP^z=Cv6 z%u{$EaJu0oXVue0ehVH>Z=g;iFh00af508G_}!{jroFPZpHo(U>${b*!%GMDa?rr{ z&)H|ds6~;m*?eDDPHn8xk>CyZWual*-cdStN(q0@koxt zTgRc!Hx@uJh+zVB3)m1%f&GcPU>~bi?&n2x)&mT0K`v!Qt&YiZW1dt#Lyn3~#S|jz zG)J8Z_umdxHY6t5-#F%4=_|O)OiG%w1L%VKCHrJx2dZf`Qlel zlEGy;ebAwnw4~$1wWh{Bxb*5|nK5EsO?*`f$!Xd;m{j5N;ml;~W6#o0G3oX|aJ^)+ zapRyYcO*n)gSV+-Nxxj+l*Xg%*)vCPQVFa2X6ew)Nl+QpUU1!WsjFV4l^=lSY7cV| zdA_si8Vv?Zznqs`ZC{DeC+;3&4ra~qUxH>|H{Qhz;~doMB4Xn>+xS$2j!E2yF+=2{ z?dM^EXoN41Uj@ML=QRyHc#|&bn&YHV^vVhP>#2)6rQCr90sGCcexP@^mw1wQczm*& z7$-_VN)40%eS)n<0uEI!h2_3wQ6By`kpeVzoJ=z{Y|SfxeH34HakeRaK?`_to?Co*8u z{)y$Wus@y&JOuQdWK2+HQTfOFt*7z20vqo>JsBK)`+R}}D0G<|C&hi6^yIGF^yp5| z9`EkMnkmwqC`U%F4c-Qww6DBLq>aU23KW?95xOn$YyO+gxUlFzmaT9ukLbdts|lhd zQOKppQ#$J!ezsEOOAD;J&`TqU1HPI0omkMY-vjP|LVJW-2r$STo><7uy3>w9KgsCT zcBn3juL62hvF%rIft7a5b%of`Pa$h0PRfmrPY{4_RgX9vT$r-B9LwEzlxw^nh&DyZ z@APAfM?dd4zU~l#2HDb&qH6K(tPO87V-1b{i>5bYIJ@tYkUY^7x7*U1(b}H`NXh=! zyS^5ymI?32yyyKLGiD_b3AZAV_JYz5U<+({sX$IWxP(knTe~zD%VCRIH*DQE`UwRX zXHyJA_@4kr6m6Mr>Y+f$FO0pV^5AX^j#HoEyDBI^}OcpB2G%!787bKY) z7?k`e3DG-z)wNdk9&#w8Leh{)g9Pz?)#*n+|*+5E0kEA;qu zDvTaEWFwQDK1=|V?==GNIk8(qm%+_WU(ydYeOG!BHgU~gL%1dn3GXT@#uSf-e%ARt z`+?pOqC<^$x^5a&>*t*1Y(>?u(JRCWQU6qpl)3Cjq!m1~T*`8xyk_=)PC#?!HGJ=L zD;Q%Wl8;ooTmH4sm9#M@$@BKfx%Vf7mbxmB<>e0T6 zgF{h$jjJ_~&li20e>P{`TK^YQZyi+S_q~6MQYxL&2uOE#BZ8zL-6<*EAs{UvA>An5 z9S4p`35SyI?(U9fpZDkYoq1*$X8eco+-Ki=@3q!-y)KO0M+<$Ko{RmAw#38Fb4ovk z*KFp5e@t%@g1`_vkbm;fxfl`M5OU|DftbB^jPYW!`n`qk#S;;XYjy`=rn$go7eg3t;4k=yA@E@ zmSg552DSXK%}j5l3*7Z*Vv9Q`)!)@pagvm(rg%J^`|X1OD2H_16I$(~NY<_YLL>-mJ{ zxJ0@1-k6mbr{va0Z9yFgkMqd9b7I2iKQ{6;Sl!fq_$Vd*fhqETYeX243hH%bOoZj* zKE+N%ncnvAt;t5)Z6B>V_HR9h(}5GuAB(Lw#kMar==@KMw=Sc5&R%A$;+^JcYcONh z@l^THKo;jf%Vj89L5T9^e9{oMG^FhvNdFzD^ z-1gMm1%dZmQ~Q{=zYtC!9Y$VG?grYyQ#;1+K;NNEN*je%^<9*7*D0_!_ZqDMAtz&y zlJn-^N7HK2+dVFUgIHN|RjEQAum5sXCjyaPsuQaEO_XYPq{f5D>#N?5?a%+3gI=f+ z>H4a4tnp`1e)7ON^Z+n|#>bDR3Z{Bu!=qoLE>&TSuI~w3Z2zgD&6zz@)r~~f5Gk!6 z7m6BX@xJfCxAc6llQEoBvg-mEj&O9rT4xj-Y*pKFyzgJDi&=`QCd|eqz8ufOaSe0M zF}5dl$7iEmx3c664>gwy)!`pAu=ISY01SWlkSu0qJF&lww$cBruM? zK=R26o!E8wD?a;lg@R14;w_-xxB~Kz@q{LJiol45dAGE!xuzQa<*&F-8~c+LS$FLs zPlMoreyL0%sDUQ>UY7?fa4qSyfA5>5uxFUUD)p4o>I_PP+cd{%i+68@?~Xc5dO^Q} z9$Qt|oFrLqckWfqhJs^`)nG|RnuZ#C+~3bYG4MfOyRnLn5zp^?;Lwv?r;rfR;Z&)) zpS|*KA;%KWhXgxIlKfNu(kza5a4SkXP3k!c+E@>a2LCd#TFloVt(&dSt@-vob@ENr z*Gucg@(g~*7*UfX7T(S@a7vLQqZ6z1Ajp-K{`dZ+6nma-go7q@1o*)6=sAt>NjlLN z$VRG7=j%{XD&Cn-)F~J9?uJC_b0Di@JV9G9xyg2#^EzUiz14jI9+O=Cb}doYo?(%C zV2Q?BegWwFIVrS!a= zrlqEusf@79<(L4GI|>mRtqrwoG@jVqGNw7-ix(K8S4RIyto?E&mvz1lJ4C#LuTx$9`XH|}Nn1i1unqUB|oR|NdVwl!Q8^vV8$H*D9iKr(KE`LS&B zSLCZE=g*FvgSsVPzetDy8I2zm#c}$o>wk9Z#20yi7|TwOblu6?vPacTO|LkCWt0wx z253~>j$knTcM?oNxKB{VHZ$Ba?_PHT{KT&in#28u#l&_JHLM?nas42<%(iBL_oV0P z7jYVLln{z1luL`P-tI)U6hdyLcgD!rs^6<$D&#Vhf=)`qC!ENUf-J(VU?W_=^FTwl z*EvKPqe?=G7>6L`I5k3t>8=>F2PswZdY#R`CV-WfgKVeWOnL!rtNNT~qI>aXUX)bZid^<(&co9?j^ZvC$O*ZZVC z3Zv{MGekge&TYZY;*ypoH`g=?)Zt_fV->w??y3L*Pn=V=`}MQMuO;Cb<<%ObAu;44 zI_Phxam__NLV7XNY-Nrt>zc9ZlA_Plo5_8RxD<{WQ6x=)6clg)%L z9ya6^E?S~gNfcZp1L*KO#@+umV*>Q23G`~)i%@7II3iwUqg4Ux_ut8aEI*yL8IScJ znw^6}homKLR8Ny#U0pe|Q$pZEn}f?n6;nJ#ixt^rRBP&-lP^Wn+6tkFK+Ipm4+53e z&IG3-%yYzwdvzd5V&ajT-UcAbCB=LN|6VJfB6Bx02B%AzPMy4{?zb10 z@U1%3W7RYEYMgLsQX7>QZc14}5xWW?&411A3C~*>CCu*$YQ+9lYpjE8t${%ys;7|3 zEe8Ptl@!-$fT%IYf5fK#6T`xc%OgO@tVIdm>v_g9pcSX)+h3kx{C%G8Mdp8ZTnr1g zljS1+n*@w!)Thjf+?d>ee$m7#0egXaCORZ?neId3^CW27w~`fZWZL4U^&sDZCwgtl zENszwaEP5C4f&(>&4PR7p-Eo?L-A0sP9+%cI!2n(+KM5u$ntFxy9gtWmv)}9wVuU6 ztp3gBU2@se+QmqTrN3$2xwN^}SGe0Bwo656Z zjipW6=gJ4(p8s#Q`1Oz&EK(2z{MjRfY)Ro%%K3hzCRCQKBxSKmFM{*SkdC;VFAgkEDuB;{$%QmH=$5}t^xyEQtev?>EsCnew$ z5dA!M@haD7;TC<*Fu^mpJ?5oK`7984g8Et~=znY}>r~iJFDm;9jZ&?gn?kJoFR_c@ z1)HauTEnbFcq#?1(i#XtYEO{)uosNJQv^ybq&-IuXb?JtaN$&b zPm_v*$_#+f!|uYh?G`yeV-8K0NZ7+6Qj%`;##He0(gfxv3}BDaaMcy81CDex#Pt+LARo`R3bzE4$wug=VW{ zD{eIEo9}jE(Z3%Db0!F0p%>`X*62~n=nV5Ci8#f02mr-+&k7)G;O??#2nC>F@e1AZ z@Yth^CUK2i$J7;CO&aV~%UL?^FSkT`0$$uGdDd%LE6>znOTxyLth0cfY9;v74zUyd)LTvIT~=YjUfr zo!cKP`$&Rn1mp#fr^oTf@5rw{M1cgLYg!yI(^&3~w*Uq`j+@&UTvu zuKr=9MM}Btya}q4R@Z)&Y&#!;pDexK(OzTOGSGNX{r;L~b!WY_#9;!T!uP*U;m@(N zOgkgaoolmCoLB*|>|nt8M;d%t#K92EOb#nk&|$>~iS120rbZt|5d;%7vl9vYgvk&` zbJ1RkRmZ5A;LwQ#NJaao$+L!X zGyRnTpFoLqI-~P+!E4s}CS!1hcg6kImW_9JrgvLzFb=<@E7Z`BY2n_s%3~jD7#;)F z2Q%oZKl*&3bJEi}4@SN&1v|3+RT_iK(H%6L!#jJ8GrV@|!}hzbI3)Ep1kb!a)4T1@ zOQ9_k7i@J~=!P>AJc}>Wt$G@ducrHfNwQ3C_P3c$%jMxjS(+APs!0rl)Aaue`tT_q zAAwD6UkI_@9&+4Gpcp$Nd9;t|e7fM`=q{m?-LWPG9^STaE>mdr$!nG zKH0_0rSgY#D5&J&4c&1ed2kGp;Bg~~w<-iEAwE$p-z2kmd7692$ebPS+PPUH#!ghX ze=`LN98w!ag5TcI0H=Wg-dP1^?P_U^(==hv>Z{`ze?V_3hfOn%F)o%t7Qi+Bbg_R%~ zpFTz4k1q5X2mlbIY`LtlO$6uX?0|E#wJLGa+TlUtem4NX*hajn6mF4#!y|tDp3TP#Uh@ zH7l}F^kAkobP>KP6}u4W_Ouzw4FRI5B8i@w27+U-6;n_CqtJ@#LkVjk#mTh;MUq;9 zSrC!*wYAeh<^(TKlVka-nRm#2I}r?BtIJad(GWkuL^bq9K=-&a@%>-%3c_}E$7 zWF%yWVL<#zHV4k`Y>pqQVdN7HzO#QQ9HSw(KE0gB4}^;m+F2|FQ7@smr)}Dd8r%)o zOc}R*sT;I>f452*Cnofj?__-C_}E;QYVGVus{DG~a;K-W7Atg^F43*Ox>-+75G@$k zPBpb|&HIW}ormamCeF8nEdVF1VvC#G22+b{9j>YZnnJyO*9(P%>&3^2Xpj1dN@Gdk z^8{j@?sSL)22GXIg7EPS?`&Z}FF>`};~qa;MH7F-MH$d|%k#Q%Ttl~rwMKGLHY-b_ z(g!hUQ1sT8D18jwW2U$I&M$)3LbzAFdC)vQHGuWaa)!>aoi#28_ zyE^1^$ihoFY_zB157()a9&1*YHmWWvlH+x6*I^Iti2A~(Wm)VPyuk)(f8}2$hiL17 zi}f*RV9ckO;fbjZ3ZiM?Q_K7%T^077ey*W@s~4kU84N~S6&cST)+vo#K)0);?bE~M zG0M?zb*5oMDNMc(4>RQp=R8Qq3bR4kxlj%BF((C2+ZTmiF@&Q|E6B9>J%Rp^Z4Ws4 zBrd+exDx%7;2*rXj_M&$#Q=(vGhOrBe5-qG$eEZs{^mDm3f|#$?3mNv@g`?Wa9bo9 zmra0vw3!T#A@F0B*SjoOz zyJe!O;B4>x8n(gNlN8H?*}u#7v=ON@ye4S}8J&;h%_XJRjmX%Rwz_svXn&}XXUpxt zkW#S>jS*KBxIe00nKXIhnFMK%JiS`0e$iJIYpn7<~I9(i=vhww?&mb!iOdmYEe?Cu)T&MmU!AWv>Gc!hd zhO%Wli9Z`|`F5q}p82f@n*4U>DjGn_OHuH%&!kY zm9UDgO(fod+4ql>?P49q24(iI3~&ZrT8s~BSgJNEpo3ZK+on`6^)~nf=8>FjqTSJ&?-|=!2al1Br9pcw8 z1#cFqt!Fz<28N(Y3-?&~Dq{)(E&Q->L2`vvMG4tQHxx2VUaY%YV3gKnr2U{$qXy>KRX_!6cAfT$&yn|RpBV&; zzj-!xamqUz@nj}lz}d|G)!o!QNit$uHc9^R#8++}^p{>fc>YEw!%~=0`b^jXz0YxJ z*YNesjH*2pE=lMq-hRPxFbtllF8um+Q#tp~lX6ec7HWVT0Fs&!ZZh+>GE`MJPNLV0 z5i+yw@zczmy?NbN++wfXZy5}1b7 zH6I`dOsKQuKpS)-D!$m6&{JQBb80>_iTd>>M*GpNCzw*`sh<{sA3_-AYwN(7%$EiW z0LMmCmp*}-MRYfpO;f7ZqETuv%KS`MQE{M}NO>-a8)iQa9VDs<$w|y1&o@j<&2Ze3 z<+GkCx;7I_6&SBbX6337QotC}&J=1Dib+*sdC!UqOI-cfVCgw++$`kodB6#QsmVpd z^fTu|(yek6H!+e+Db%thj-39$v=NkqF|j&zVMAE@@s6Z z&c9!FW&EE)2h>4YkLn2+S4Y65V92+fGK57r<}Y?POX;lN=i?{X?yGcjdSBRTzoQ^X z`1z@@OH)&mF38Kk<11|TGqmhx&p7h~w?Oz3x*va(cnM*kZ=n@I;t6`?>&CT#Jj+ba zw;O3irGL)a9@H5W^WX*xTcA!Zj)`+R>7|2d))Ew?9my#6!V|VHDqP#VS9`9nUL#<~ zYK;8;+2Hw>5q*sEWsqTJPB(#l=D+^1EC3tnGArf@CT^tB5e~)VYa0K9H;fi&Xq}@y zD;bogZg8Y$k}FxJGfR_IwG~qAQr2P{*I_pH{v2lLZW+3a-(e=!oMC)LS0D=|rY#t+ zuugWLzTx3A_|@;TH96mG7^At$Ia+M&BsgBCWZIiODIr8yK>y%mt+v>Zjcv5dU|sZ#bx6DWK=&LAPR2&31eT7TJF$B??h1V- zMC-_G4HJPsUPUv^6o!6HKEKvT0p4^)?D0AV?cD{-q-plk*U9xp?N0$=j~$U|HGwR< zn{s2?`>=KV`-%ihFSv^tZ%fZxCjTreM;t{6o`#!(M2jgMwW#UXkUW zkFl;}sk8`N;);~wyRi@5rezQnHJo)PuPacmF)`6ls(@K-^=}$K{2?8-AI}i_4DWX| zi`ke;izaJxid3Odd<$Bxb@m|TTSK2!c(k%kLapZEx4;Pk&zFA*j5r@@CsKdXQ2wr~ zXISI6E|0BZNqK^;@crI?N(n=K^*ERA_zycD!G=;=c;vMK_NVxa!`#@kY zgI9fzqy`Z|CX7~EZWv3tpRr$szYp4 znfPW2EIqUr1}2RdwW)V-Y(~!u-AZ|KYuS~iI0=<_9CH^`^<39BVERe?0jw-80lh#6 zRmdtIxE+LFM|w=!QMu-eK`u(8&@Ni`iee#uLpvxn@*G535@#3>q#^TI?ob$%O9=a) zmP*v=S7F{GtPb$L{G2~n%RH*+5a($+GwIR&bDRI1cC>~_5kNFV#@BC_G5zU3e{twH zC8~!V|EXb6yn_yZ>nniwn0~BqtqpEFQ{jHZ7)vfKvtydb30EQe{h>F?RN&D%-5&or zC>Y6B|4mpXwV4Ui=RIUZwjJDM#>U2%)t*c>v+GsopiF^QisN>RfUNrNI~m*pRQ2VQ za8=lEZd8X%;Ptcqbn<5cLBgi?AvoWv4v->b6ZehuzE?iUL`S5J_1D5k?c@;vOpmqG zg2^C(P~y0lr_^o_aM&}3(KJpwtYD?*8<#kYf^dl?czRP4Bh8li`ig!dW?wn z-+&jgYX#X343z-k9`qN-%_pX&rl^i0zNGsLNDPfJ^Y}ZneaaleQ#lj;qI0^il&X-% ztLSRpdbJV>7-aCI@)8HY_N)Wu=`!y&crSB&otWL|%Z}6fsgJsUCGHX0`$x9c+)T^V zF(;iG&@y~6=E0QzpF><-02Bz}7#V`pI&ZA8RGgPS(+YH8E%aeHxBUA-bVwRlEueYE z=bbP61g+wPB436t&eGHR)q};&`NR z0qV21?UAZhU;<$KSENretqg`4_0>RAG83nsFABVoL}t?aJw<8-ea0R#zYm=7rTIiG zvBgSzJh(%>;AT4~*8b3$fOlH}9Fn%quMkARo+me6yEN^E`h_ZN(-7tE$t^%u{q^*B z$#R>qS^=(<_}%hnL8w#4M8K)gMyiQA#@rP%6Wfyyh;Y?E;byFIu@ll=bPpM^6Va?q zPvrI!kfbisbO=FEZXNLW8Q)-0L>OW!oIiR>1+C1~^0$@!CH%5R=k;)ulNfhF85Ul>WIduOc5qp;CakGFDOL@CR~)HMpz;BuMi zrD*19otnLF?4ABtXEzg0#;c>eS1+UN4v%Y&O)xK$n@If0Sr29yVQ{{f_^Z?iY4-hY zlFtd|&)^*@v^^vV2b@*x?~+H)PP5z>JUQpVVOO0HNpwp-55W{)_M0uedKjV zdusY(og7_0E7N*lA9RC^P%KNLY$0b_RTw;c0@1)T_Tkd$tR*%5VB% zM{S`YBut1F+=vA(@zr09(4U6Y&mzE^&aVWVe(pHG&L$=d%*{8P4L*j(_K=H9zjE3q*ZoYCVp+aMlo)9IY5YH-=zm&L^#g<3 zL(P>DIj$~urU}%spU%|UgEkxGs1nS8Gr5XspJw)?U#QF-hbJm2Q*$U=cGt?c;#G#w z`+REmnf?>u`DBfYVykbkQ+C!NUq^wCb$TAf$n{>at@t(mMb7)kNmzJ`F!y*wrJ0+j z^-T74Ls^^X6nj*@JZCw4K7-IR+RYoUzn*iS=yQLz*kTRKrXE3r_Gh>hu*)(Ad1k=}mRp1H_GG2UOSS@fU3Vv{Ck0pR#J-QKtBuHn{W-cnp!;wB)@p;BT(5V%^I z*R)e5I7z)xvsdn`L>`Q&LX1UL#u5>2g-&{*P)8qA?fRamNhP6un$0dwZf2na&i|gZ zj{23t>poe~bd|ZSugmRiqI2xwM3A7{Cz7On^1sqKdOAK;u-pPlF} zY)d`{Gb>-hSZCMkt_n7i7=)N-?QWHaR^?4RGiJskOxZpKtU89wZkdoU-DWq1x~@iTpJ@M3A_SK@>`*%%Ge@WL7VR)$Hqg<-rzvqUua zY>K-|9GigQVKDX*2QqH^J(e7l zAG@S=?;d0uFZj(zX=W&l0;^I9bT%zrEM<*sBdhythoYjzHG;Sz-ip}2!9AHzz+Z<( zWKJjwI{O$=J19ruX3G>kYexbi3xMp8vNzjoojwwNp9j7p^A&)6Bk%_(@AQ~o_0k8(86YX5%%857ueWueiaq=h_qi$@J~T)1eR2qrW+qDf}|ZZ`PT1 zxC;G5`mf`+Cpy-}9@&4~bwKVV<^}Gpr&&UF*GMYjPkZJ*Hwix;6+ZN{n^k}Iu+ZyY zyQ|X4Y?z%rbO{5B>`E-Odhv$>->*nCugr7#SZnRt&S&!-bM|%?2ern4i5ibH-BvEaJ9Z3BCF`xfgYS4 z*tmJr!^kQ^*B@X?vG==5hiw+2yBzjV^2Gas9*|lf4Mi7<>_D~;*8-M1Rc(4J_z_G4 zG9Fz(yg>wzo`GnjVs+?Di=i3g4i~Meu2WY8esK)FzE3v|e&A4YDJhwd8{R%ZYx`~& zZCEPQPi$I>-fhUP)E7B-rsliao55szD%UdN=(2whl^bxSBcS@2hj?$C_Ai(K^FK6{ zwx=m0dQTdZ10j4uQcfte)sX%(RaggdVPO{O#@TAmC;LysM7iCT1@0&)@0F8h zZgyQ1m@{&ubI>HAz_52k`IZVFe17?K|I~=HR7^aYjw8^^HBm@b=2au~%#nZ?Qr%lfJ|P8$N~>o*`sDc)cC$)ohtQNOpoIB;|DUg}-hLe``Ro2+o35?bO1LDDk73be z{QQ6J2MX)=ZSI}e)<%vT>{h_6K*h)>HSXG?HB^_$@0iQKSJ}~5{Hqk~zu(qj($DFw z)yjdvOidps=X!yII-#P>yOgcDV$xu2Vq*cLNk-flNup^L(#7;Do+wT2Ag*O>?#}fF@*Lg4e!OiUM5jssrp6em^uMrGMW;Q%jM40 zT2TwSAC%sVbP&gnYnp-vy!PF(;pedJ(>CmZlZVcxHzV#cCoi$Q(lrIZD|@Z<)p%2j^jgMhL}IjhN4APyOS^eD#D_7;Rvq%uDyGu-oy2FY-BI3u zm%_mIe>lzRdP`zQ0}8~v5Zd=B6chmSa}0gFg$l5U=RU^0XI1r;PGAeU0>?)#{_!P` zy1BKDO((0aExonP(Vpbjh9e#7XGRCA>ja5^9i5Vi*+R_?%|EQ_Pg^;9SYWD(%vC}* zY@rHXWRMQ7jw6&aezcK!#$aYPt}ODzoDgpu+VArSunq?SiktN{YwtC~%W=g6m#x@S z6c)_Utp{RZRZb7^jv0FvGEA5IdLN64O-b&-;O6a*UlhQwgYJAliugIqy|UiSeCnck zS6XqlzPRGV4#?SyBg5#)@4ibsQu+dU%nBIP;>@?W6M_QCj?oGTc?c>XClNkvZvx{` z)lYixq=9KfqbHWtSk0^(SNM}amPtG?6tpBolhmrw>a_hm!P{538H!A zepp8cfnAo`#S=vtdubfnL>?+2z?|2W_Vh6(Rq{3+x_9ONB%*kE zrg(}#V54_1o7wW#Dd))YmE`#b4rZXBD!j|qn1j4$#a3j}EPlN$esl`gE5ElKRF^88 z^LW|jP43q?wS4GL_@Cd6QOypRY!>Yr!UvQEWYBx(m8f#*KQZhAd?!K6UUlR*HaM^qs#&cyhrwkCR=x9ty)5{r=Q9>yT=oU}9X__O5g)$*;|W^}6B zy~t!5Fzlp5c?U&)j4uA{k)e4!f%LZcRWFX(rIO3BVb&3w`wzNkdugW}W5Zy;MQ%Px z&1CI)^?VK(PzcYZ>IwCQHbq~41&<X{nJ)w`!9d zX zKf%&CO-T&Z6hYhlV!Uwf{Mgu$o0y~>J)1U7J7?hK|DEakzV%L^2MBIG4ojH?wO+){8;~_D=(wupXbh$mG*`EI zpMT`Ioia7&%i@@hdt5+i^It_jo@QwXt04E|KcA@!7Dtyu{NSD8_%_lRR;v#L;_}De zdZjQ$)ZJD+V|qxPza{h9r508IF+D(>Lo%~(XKX6)No*?v(#x?>#J+)V^14g3u~mC{B|*s40kVu$#P#I$Ehy{D}U$f@rMSlCFdR|gsZeCl~z_L zFmc4@iyA(G5uQbp7sv(ZHEyPuUpU^<>=k1DJO)tzi{nD=N*HwYsf*+2_S? zP`(!zo;~`J{5bHT%0jXeI@>6x(4YZL)%H)!@4J-n@j5fOVzl&I> z$8!b^?;B=zv_LF|d}yopo-=T9J!r9Fo?d$-0YmmKvi<~a&p~}1{~d~M-!^zZa&29= zf8~Ojw?vc?X-(|n8IlyG@+13uo7u87TVmIq9&%hM0yY96fZv|FsfL-cbSe4X78i|- z1LxMYpRT@7)m3`}L+-(DMb{U)tc2b1a!X~NAI@3%6B!6{RPs2fuB`w9(*-}CD>yzO ztUlgDAL$ZVfxAC!lj89z)b@=j2pR-yO((WcU^?d+1*T*|B0R0s?9l!x&A1Nk@K5|(63X%zXgk4@<*6eXMS5?Jx#DNM;#wvQN{&D3r}fibrVob#geH1l_s*cG*`kiT%ex#9SkmrfX{jzz2!qNj|x zj%V+0BF_bDf5c;9PlJmR_hB`xvnR>0{Kl!u^WWN*h4Vd_!HP%iO(R}Uuxe8!4y3+; zkH&zzpK-$H`j=LXLyi_;6Qo$U{=;Lwxu5ymTx1)8Kb+1H`0dq%eY~O>J5EP48Zk{! zp0Vu&xHc#YaIf#2188LABCxEkz$ML->5IT}w4&^PqgKjEb+6D15bJs_+aod)32;xn zbGb3dAf@*NzY6h(4PR8Z^W910u>NsU%++?4rPU_hlgqa{kso}qPE%^A?(`r%xav>Q z!7VKv9RM)&&v&)AxRRT$Lo&^D#FPUGW_RwMr;4TtuX2dR z^<%p8n-zQ<{p;Vhobt0pF@?Mj2 z6?A|kbm3U;dKEhjnCDCtV(`m88tKeL`q)4N75#LZulKdE+#P+?Bzx`|z-*1Z*uos! zLt!$QS65SugbH*-WR2k5i!MNxqfk_L$8+pRj>TH+-!#{DVG4}x$2OG8>XYl}(JCZG zJq|5+K6&>s6!6Esx{53V~PI8Di_vBm(>S_Q6cwIL!UoQ0eaEL#vN^+~C^D*eGSeSEl_e>r z8>`Gj+x8?$l)Y)l>|d;irr$yh+E=VUKI5y)r6+3#4s2F?{ZLE_*3F+lpM(npUSyIv z-}OyRwPJEE%r`;P0VLkLYjQJ9^rlH13(5JzR+|Nvn`f)GqcbPVwVRCbKhQaZ zua|KY$atP??g^pE?v3DDexnE@%0pS6R!+*v6*Xxa);>>rw;SU-eQ%DuJA%E6%q3QS zG6jha!X4U+A)z}UMH&5}wz0?6ux&R|KX4NtMdsdzwx?{8PqE?YV?fIP6NOd47B9m2 z{(~%dhN^hxvR&9nHP3_Y4#qybqtk7|<(wY#h{&a%C5ea!0iYCcI=*zCD*S|MyxA#H zH8lJ@`3YmbVT98OAa$Y+biut?zA9B6&-^yqMuAbD@Yg@XW>1u~tQU%6s8@OI(WeL5 z;DvvBx-rnP(iK@{v9ANN-I6i4U#%QVuVQ{P8?hRqAe)H!rjT5Bd>9+WiI!rQHfbDj zs+huo``iYDq;AS1J8Jqn6eM!%+Y4$t~e!veIOGUb`# zA+=@SHDtdEgukmM8kl*-y8}yanX^aRj}7f`-;N~rl&~$tT#Z6vs;c~RH!S}~yI0Vi z&&D!-+EAy7Mn$6n*;Lc3gnCVqN<{`Jvm`{wED_l!P= z1&Nki%eIAqV*0*`Jn*2vBL<5tbFjYKOweYs{D&)L(*eygk65$C{dk4no5_1p1CM2- zssz0%li;7X=eu;0>+sv^w(S;ie8k8_Vb{-G7nD@}CD&duvCH{K%0b{4zB>P0-aa}c z967Yrk78$5SJrYTCkya3Y1Ve$fKFKV&AOD_jsEkAO;}O6{}NJ z`645?Ha?X~Z$;vH={_@;7j^_WL)-Oh5?3CY7FTxbT=R3^$j9wDv&Zz`)z*G9;~l&! zjb+gpH>?+Qs^;4tsArhm5!lV^df4N2^OsX2VBdVqbK4J!#GF@@k%R9F|NBAgh-7Vk zCoQ)y+-DQX9nyF{p?iG0_-HVZu8_Jo28LOr|D_Mo%Pq$Z|JVhM^KV09n>^w&s-Uju zHaP)^yg$Ho<8XgI33{94ZuV{y6^3jZlP!mB-bqazbt0Z1$6$Rh296gyxS1zU2NOKE zQu7dW5?YJ%zKK}-*WE9h?v|pYsXXqZ9#_~d=VNwKiPts>!*(b7&}~#dYKPz4Aa|Om zRwb^XaF!9MG1S!E$`$m^IIMoy;Quunq4j&pF?8Z=z*k9@*&A)J>M!%qS64mz7qxiI zt*FRB^vsNJW2!mv@RO*Fqg9y+dOABWx;({1P`bKgMp&H}$4#o8vkBs7Lv$2)3tkiV zpg&&YRj}!Vstel>61qtcr)&oHpKVkk@)ORHH-t+KO5qWSyvt?g3!8C3E|Dc*0N*ddbpCHq zlfUp-13At~cHX1Jk#ainBTr9KEHh)zj6=ynh`22Nx)bH!O7e8~USX`Q1Hl z)4o8T_^6)UTuglK>Wa$4oqVbOuCxDB;_q|%vfm!3Mn4)9mu>~)u#+2_zL!zZiRpS; z7?F_&HP7f^+i6zl1S6e7|LnOha`fzd^tm12TtmFO8Y-z+DcH=2@ig>d=n#53v9K@-X;5cGJ#%y^)8?NzHs7bGh3{}YkQQW*=HV*cg+g^%IO4%WXyqsVDnJdF(A{@r>*Qu^cJ(?af#_HW~1WQvFJG2P8puTPgb?xiKs zuWm{_lg}4sj~W?nCYC0lH|U~|KABc|^nKC4D^Dcv_I~TDrV_Fjyf}7e+2n>!QU|_9 zdfza+Fym<7O3wDe$yp^mDX8ri(yNIQM4?OO--QN9Q=i43N6*ypDUpw2T7Dz>5{bEh z1QqfkwHI@v(ED6(sW?S+i^d?UIvkUCN&596SYQO|%39a$9(X;;JpY0HvARHanqs~% zzhD5Wm``%rFI7+UTG!xx`yJP!y2z`MyeC|kSQXtB=K@I&FhpK4R7m~iM-7aK7P zIfK0D(eGzb1Tpcnia1O#kZXkv@7j1AD^$U1(vX%}b z{JSaQp)F8Ip>pRD1}YJ^!S2d$`O|REZAKo}ix&Ay$x=DAv-pRznxU0-|JK0jY7=JN z>L;#s;~zHkrpy&53Pv@;-%p)&6#XFQ^-A8`2=F9&otI==sd1C%8L5HHr9th+-Ks1~ zyqh1~FZ(Bx>v=G7<=yO?u(!L|FG3wVq8f|_W?nF?wt;ohno_C8mR@y?_se(d!ylSM6aI~4(@KwH6UgJkt(!e=zo|B_|7gSr z*|K0Ph3^?hrr*wIdM1{x8`s^XV=q;0ZH9F!1xDQv-+qt1t%CqoC$$a!(feINXP?97 z-Ggo?u)m0ng7v0$K^`$DE-qbDcdiPlGQz(h*fhS&cG}zj+OF|RtPsunjH&&Ac5kEv zwWIIFFq8&U(TC5`n+$-VEU?Nd4_=8 z81nCf6NuZOl8*+V@gpf7tp;cNvxFemP*O=LI%AeJBEB~L=YhCK4dEnF!C*GM{O$0s zuX3EOJL(**emg}4d+D^vJ)F(YKPDVt1Xlsk+0wS^d+>c^CO$zS7puG!yoyF>j@qHitW`LG^NJty@`=VGgi-? z+NuK+xCVY^Y<}&3xO#UuL`2;x#`N8GyWb9W|3*y?@u|d~US`aDOrn4+a{i~m0*da{ z|GVPB-)13NyjQ!syN+G>noI2{6bZttxNj#*S;FIVC82)z4&a)-x|J7`cxF@48UiNu zgdq3gYtL$|u#D;q#?TjPrRMJFhQBeFv(wQ)bN*=z{C3%t&lKHZBEvxe<|r^OeWY-V@*xrTj-uH?FEC| z+sw|XllN%GWf{wn=iF48G6(S=Rc0;2&x0==OUq)GMt|(8rmyx?R!g>6%&H|)d>u-+ zY17gTb>K#>vQ7Z`tMObP`veWO3s{)!?K1dbrM2exRwRMt1<*2<@@1D7LZ6Sz^$b-#iCKUL(O~CH%W^H>~aDS7&>%YiL&L!M!J?UfO#4PXVmq*%QvWvjXSO?_286*BblS+>ri?iW$)!YP*&s)fT(KM(XZP3skB5(P3uoJ- zzeKwJKdRn3DysH-A2ujKKwtosk_HLs4h4p8l1@>yBPNQl{#fOUHa;N z0^Pfk5=T}(-kzsT7G0|~OOAHJ=acR1PvEF}Jr}76t4~Xs7xS_-3f{jDme&0ybwc_S z12I8qjv1fU`|C7JlPH|_zzs?k7mo6^)5-UG&-)nhu`5iZ`yiD<&JKG-s?(duSkLZ0 zQE6En%Thu9A#hw}3IA>|`I387;1f?@V5Qqk>aBv8dxLGs_27qvta$TqQzs^pPbC)) zH~fr(_H1r*(RG2oANVVloMy)poJ_X3JoNHMVpH}_d*+}1bxrQJib97H*Pu=6 z0YoqRjp`Q=bgOzXPrI854Fkgafq>Hn+)BtTlSsZtL`1C4Tqha$Gj`DQ7Q7-Tdvp9W z8x!=UJgzcEaS2IDD_~j;1?C6W+4-BDAy#BX-LPy1Xptftblxq$!XC#h`i|KCN8kG( zgt-Hiv~-r@Eu`Y;=tzRgjhT8p=gxQEh&ZI%{oqJSl6a$GQcS!O9yck@3OL9XEN#gx zFx?P63lJS@`6C)7EOFM?gAJokCsQI_>Nu`^w+fQFLaYi?TB}53NYq#Z(-#)rmEGO{ z1r#e0z{Xv6ee;J&mhH&O(2C-~5Hb@&!u*rsrPGoxJjC4Ja2}kt#%CkAHlMI#nGEhn zIqY-KXit{t!~#O26UvP~z$kJnziLmW**eUfO_&i2(RqI4c*QCasUsrE%>JX%u!UVw z%lkWxa9M%CEI}*XroLmWuzN3PCnbWvGkyQ|yX8#Ps4_mgW3@J?!*u7sd+xDdIr=?v z;`Oo;F|G%}gBObfZl{{fwfN#bkZhW|J%dQ{IxKMUck}MpROHeHO3YoRukcU7P-*Qs zN?3w4#R?1djz13!C%G%?uLOJ&6-;){oKY*D5(^mI(9MrAP2s9~Vj@zt%cHt{Vj-f? zEF#+PeDixLGl<<~nL#VQO1Mi8s*(VkPG^%*sbqQ(f2}9wNnP-_a+TFl1*sbPTe5O; zPC(2!+prf2-Z+|G%m_;v$+(}559^xbN-$8eeE$s!s2W`?*V5ZBY+o4c#FJVsIf0d8 zg=cWFOaRX~%q`INd?FQhdV5u@%00w3b^;H1Mz z_l$Y!v+d>Re;`LsL|b-WSWvYiQcDoGw!q5h*2ZZ#ouHeSeB&&%@S@sut-|ubC5|Z4 zUP}bRQT1wI1a{W@uJ;JZ$Mqge-$;hVL1_5R>4aE)6*&x;knoIM?bHLr%mxDqq`}7e z>(cR+nVn2wxGu3hx^4oEo<7ZxRws7Z6XJsncz4c)p(1U5D6OJ)z7A<&C)kuS-uiNG zwe+NI{mpeYHrAs}N)BAXPXS4rqaqyuXT2Re?o0WHod?H3lE%tTt*arOl-C|(+PW7V zw+AC$OphWC)2C}!(VLUKe%n9(*@n^jw(YRlQpTTXOGk>=mS$k<>lfMM{;iwxCv|`n zz`ge;T>x=O50kfITPvp8P^d#M;1`jfDWJC(GAA8QWg`uFb)19zShn26`ks`93Tbp6 z=S=?qDej4hiOK?~k(8Lx2?#vv9ZcbzeH1eT>!R=V{;)4w2Pri|z?*B`ZW+JY%d+Kt7zpvNgJAaP z-mfb7fCH6``Ditff-MEH-P$)NFB*FA_WIH65B9v5{TuNf->Ol1b3#mcEd6E|igjx+ zKT4yBWZ|+V=@d(c^c3~%-6^C0qJDDUzp^oc7 z4rgj5ANOKdOq?P3>-O`6vzK9w^B-f`G1%|`D}nyU>F ztf|jZfUd{H)FcE6qI`x*h2=2FCWTrIv%VFD8y#K(e2h4_#Y`QG_4uOhYu(;r!Z-tHMLfoecyZm)hM;nDVh@#!5_R9(#O3f=f(M1fa}lc z1S#b+_ShBv{7@wR6Il1v*u&6{l8gDme-#yf`me_zunD$z_IAMNaE7Y0{oQ>*E=QcX z^C3Mobx5~1hqX)2fIeRC1mzS#IsiIwgbrRh<;}#MYV&9&`5}Aj<)lk6*X|w(_~W8A zT1z|A@!Z8_6drTz4RS@z?9-=^Y2cIZSt?3witOy$YTXqiv|B5F!NdfL)JtY^2?Wm@ z3O2rSAKOKHHgGF{&o4qCXJnamB^5DtEF{mFmJU6aPCXw*Lc6`=s^eL$vb*K+!}GD0 z9Pi_kh={i>KCgeoyT$NAih3<~B1&%3RJX;On}|g_*lYl1_a@s$d%<;7Yf*%oi>rOZ zt$6XA|@LAbkIq$Af>kWIBvZA5E2hJNiY=?d7v`gWlf8U{oS+o3Q zZA?<=-rW{rxZMum1cZSDDo6bO#>>vndo`_vxvn0K#cX}?_$)KPTWx0ZPrUKMdbYAe z#jjMG(vRFIjLNF3xys$#=ou8Qvn0dFpsNlfxC?68M@aul425*!DgOLZBe_x8vZBsY z!PyA;F&CfCLq=IR`~=942)|tcIas;eY|LdSnx~NNIbK-LGD!oGr40k0Gqb*POi!+6 zn>Q^H%kRenFqTSYQ+et0MJX(COfMY*kj=Yx`ZHyYdXy~3EvlOiBm6adaJ*La4aDrd z#cn%!y<5)$pGR9pxr>%a;Cd63E3@5Wf^zQkOf3EO#CGm{VJf+<5;JGBHml6a?swiV z>|O`D=$_9Dx*i-a9V(3*7&aLB4M>tLMA@G zcUMubr(2XL{p+QGyBE68%2&p`3Z0+$o^!i$02#N!JzMZ`KsYyGEhr;50suQ;%^=>i zaz1lP4+{&6-TP!yk)S8)Nf2oJ5LIdrGo8)24jR<&C#M)z1(JvM3(a0>)yh5q{f08+ zPI~~3!U~wUw}S#PT1`p#%{`^!H0QM$eMi4;Ko)w{#gADSa4}$Ds*l8^26upvm2jtX zUtWsz{4BVv0*kf&Wu_7sV~Spv|E6;osG;w~Hga0pc5jksw{gIW?H~=JRc?HwMDr*- z_@n$`hm=~1S`wdI9ha*lsZreVN;i4WO86OJ5FvC+dldiRcT4E9$9T_D@h|M|u*{HU zXF;oB!k-ht2jAZh9260+FQ1qBhu&U!K7o~#ac&Sb9jaH}j%L<-ACdF9pZhZ~4T|@t z=k0Qq^E>fxs9nu5-#+2p&<-ackSn9xFcKVC;Mq~aj}b0-ux%Tpx7#GX((jJaYWF-WZlKZ34!Huu=-x^U}F1u zu(6X4${fcf;l@%kXlA+NJ$n6ve4cF{r#g6&Up3o4h^|~K#48%?ca=>SaM#lAPtol6 zb#ralg3qAW4Mb;#@bj5^zR>mmEj@R3)8cdp4xHa%tqdEx52%>suz zrP{v*3xnM|6P7LCscDt$g@g4p2P#oeoA>v{)8~Et+RqBMp3bIo$0~qKDRp|aIWj;@ za3rl6Pf}@h{;Idz&DD9G3r}b+{j7t7<(7<*y_)im?crVU(kjC^N~Cn|$3FRmvHx6I z;*$^Ua8rpRN^@a}?Nii_v-T%NPEn8$*}AA9j?gpGHqQ2WIl3Vn7v83e*5?tGb|;L3 z-4!NiE4aOWxNXAL4{^vR32q_+zaRVHac>MKy0H)HtA~rWHr*lqvv)uJ&-bR^L!y7) z({Hf$pvy5G4260Zmtg16k&5%dUIuPt5@o0TXhDN5!G8UU-YJavrhfwfkCmF?H#9e{ ziHPX<^@h2H{vKO?(+H|hQ}3Ibbs?xik6*_{cD_IFm{2=wH&C3zog(KZikCX;Y=;Z| zZqaj3yaVcY))6EyFk83ajWuTZdime`oW0i)3d%Vfe2-R}U1{a03;<>#9T)E*!G%a* zeLP(N3P%>b?QOj7Ze;I|^bxT>l-4LldVy)awvQf=XEmICvgGd(Y}hEA<0uuWp&e_F zQ#vJ$7tdUosp zy?;8ra~zCf=3Y{6nDO&EkQT?{ENB}4X&Ri&kE;%Q_`GR)dG$k348MgdDSGa&29Vv8tu@1460&q8OyaT>-q+q zJku34D=zN*T}18PX=Q@G{5HpIQ*BYo$UY|Bpgz=&fxI^t(21*j@9XQ8qbd0{-U~>r zd0f|4^@z8n1*5LHW;7UDk3g|^VE5v^^`Nx(b-BCm?SZ#m_N5@a?!>}R+0jm#AlW^o z>@6M5kjAUnk=Vdy(u7r%a+?t@0kB=AA}+6KQsGraL@wbk?4Lf6z~~;@-qoFC~IQzCdEJ*T(73X~wlL;xBsr=d-Y5A0@TpT=J`FALS|mT_n@0#8%%ncmOzP?5Z_;rq(5UsLv2MGOfh5z||EJJY6ZiT*BO0ggLQ;{TyiGKeb7S7Xm$2fD`Hiig7sofX@r5S=L z3QjZ+iaK0!zO_5oYo-M92IuMJWm`TD*W2HPo!0*}8TNnvGi{^%1nu;@c&t!k(wj(W zuxd*O0SM1B3#Ok$2L2ZXUH`_hwZQ=5hC;FSDh{{Mgn3yg<`;srSi}U zyg&}!tNA0ixgTEb1Zp1$(Ge_U=&yC|8)RCQ>lmfHFVW?H9Zvs2mZnP~E3Nc$?yX>o zL5Dzo)`cDA^X8CQ&i`fd;7Dp+V)mh=p--)O&eNLPE6tyP5i{Nu?u(F0h zY^o#1DJ22!MBZeuw|%D@-NM^OG=jlex;euMb~oDmUWF&(!dFg#j2530xdu}2?M#}l z%J_YHkrMP~M0R$iU?atF!a|QzBfJVXp2v)%^ozr3)&lQrs+W_!Vw-!wP+(t@AFO&l z^El2`bA7h{wr~WcTVJP|Mg~vt$?E7oNQFW6Q&6VIW?#rcVEvEazfaZ=V{=}W)-pIs zYP&AT$TQ^tv11jPC*Cdfpqh3>dPoxjFfC1rg^sWw@+eY{wY%;oYwzN#o3TgM?ORRWIu@5X}qa7%w&6>q_&}?kFA}TKEx0m}6$J zsYwtaVzDBteM;69_>rt&jWc$ScK?Kl5vz|gK)tQ7>ssc8y1R)UB6g6UB$>j4_EFu0 zSnXkh6@|61s&Ox42DSM%&Cs{Qf;h)n_4MjLt}b}LB;GA6YKeH7s>P16#Q2qGuVwF z$6tT>A!Ps_Tr{}7BtAMm-cyAl4lSd*^O5i}G=<~zF@%UH+o4TAEVRS(I=okfIA*Z} z;jq*SHMqB*{QyFxHG3VIR@c~za_Q;zqZ{R>CDk);k85CvZs{&4-xAVTxP{|sLtqY? zMH!|k!5Gnn_$zS^wGfPWcb~qx%I>UU7I|$KYP#VHz87^Fee4RV>&$FFyH*OxHzb(} z$E_`n29EAe*Oa56>c42k3ORrdp>+{B6_FQ3U`<0pArO=E4prZBBkalG?WOa}MQ$ke zA)k=>&avksUhyt98BZ`%x>>S%tg9UC*kRy@(C*MA=9c$zV!g zDQLoq|5uUqpDlrS=5MQg@fF^u)=`hy?>V$y(1DuFF6nuHOh}{in*{rZ^R;yGGWAbc zo~cRa$9-1nxf^hYwGE5444u4;SicOnG`lz7@4&O!kv*A1qn*X74kg~4?E*t=dH?NJ z=SJw1-HgwiI!PNMRS4#zW=`7YlHxD_)129g{wA4kmiJ5n3)+_WtFGse>Q3D(RxHz< z*pbz%-P+w*vrCg1vl&iD(qX~xA|(Qob3?ugj_C7z_U&xfb{$Kemv1|re(7JCm>PZI zAMko~a8)6v!r1TPtN@Q3N81agz#$D>LB~lvy4!HU_x1ecuC8X_7r*z0VzDB8pPO-U z*eKWB!(aAwGN*oZtNwRpBCmV!vtXbKNOy&PF9x~GBA!adl1C$|EFu~B1OE5|H&02> z9GFUl$UwJpr=4kZza+GvxmL%V8Y+bWCe99V?o&R3S7hPYDzvNc7UY zyYRx&G?usa8dr?a!T_hIIS0wZrCKB__!yZ^T4(fbE{MXAv${y08eDA zkx#MO;d8I4ooqIJs`$b9c;wn^#he_z5M|MCnx$|uzJ01m{DAW3M(6GGDI@4-a%k%v ze-2lTC{|V&kNx6SmDWLqkPY*_*o$hnQZruO#O1qfzK~ zsugwysB`{%cIcLBGoWH(gowGz{#`6&A1%2eq$vDe&$YUMD(Ke?ZT}>j=Ye4}0REPT z6JhZyy|Gg!Ul~}kI{<5tlc7b0%_Ud_k9J5rzb&CJkK_#r-gf(Hir&+z_SpK8?K?2ITA#4g3@owdh?J`6FiuEgaH6v2%lAd#8$G`7?)&?eqe1}~G-KufCOl01hIn!YNx%aexQdM1@&PJXbP>w3sS3ya9 z2*eaKpoQV9-z&*wm=C3U7fTcwlfAL1SpQKzpSfa8NP@w&K;oLZIO8a_dH}VqHzb(p zUA~=SA0N}`1DiR5B=`LUlFVSKS_n2GQ;d8~-X2kuUoe=EDmwh?vI43^<)ro=R}Q0E zLb-N>luY%^_ad8{UR;Qv?$x zZ|`jcoQUje2^r}2v3@P14cbcSNrgKrMaUWN7n|95!l-1UobM zsucq>b9?qXzcJ;XK#k#f@6FPq;fzxQp<3f7LiVv{7n=& zkbwicug`-@yTJ|;LCSC3ag_D-Sts$4jcr%Phxm9CP_-h@o+@!HtVHeWm(Y;va{MfQ7drda3-fR$Sr7AD9fMjEmOSL{Qz?|s2)(|(_mFfN zcPZ3c=%OqB^FwYf%y?Fh_*YyZb*^K>eR;ooAjfku9#u8Z#_@7uCzGm+S39{@Q#ze& zQdyljVm}dTa|o1bBNhnG@8~n_3+0Enny<;hWSk#5A)fE>SBm!4_9*o~EUrC+1?Cde zHPx(JdPqkqYI_z&R&8m?U1OA`L zOIfEshE*QF(fJBcoRHWGl8i9Ks#%M|atC?)d`ivczB8pZqg`!)wKpYpRWs_(^1t6s zr}}SkzuTeM2jMo()N#El6>}Snpf6>Yb@yHpL3qJyJHoeROMphrkNu zdKxsVz$B%0Gul7+c9}e9nvN<5a>h1vYxN=t}G(fY>&x^{FHvJ4Saf&xS7>0vxvGA#LZufcj_h}GpMwg<;8 z;kg!YyGst8Pr|c(mW7I!4C#@!d%BZOhUs3z)GfBupFb2T=>1(KfMmtd{EQ#877anS z4gpsrpi(DK2X-sTTvqtt)?wM7w`Bif@)o-x_P9VKvoM}fLXmUu0Sb41e5?>-vNW{@KT4ahAc z5&ON>jQD50Ti<~sY z!-_pkJnT^l>!wP1ykTU(;7SnN(COnX#YACRd7n?Bm|^nL;Qo0~qyRVDt_PC-0a;k; zQ3CCC1$J-lBN@{HoE5s{k`pUvL2D4fxg(DZW|X^wH$o zjU&C8u1LDSm+dqKh3+x@b@e5u=IL*P|Gw=1DhapUnkjuxKtEwK?!s^?P#Ty3c+6}; zM5PIGBe<$89|jXz!Dmq{GNh$2^7%GAd>l2){F4_v*l<{W#m>vgExONcXZ)x^5pwVH z%wu3MHjjVVmprxC6PzjR1aHsTT*8$VhE>oNe9LDFi8H)&q2GoP`{TX`3ximj;b_8) zOYU3i9*-WvFR|l17wG{j+OWa8oK0yarCNGcZQ;U+Bt!DasEifEnopLDRC(|G1UibU z%{~yN$Mtfx) zeB8p8_v?{7!>^!~t29@c7oMaV6=)U)^=3qRBXHF?F)FA6W*CGyoR&>H?6>rQRH>8< z=mY2}_cry_`*)?(m~;}{Xcf%b;}4!OE*FN>z%1a^ye#r{&h=>#|EJ`Hs_;Ajx|ir3 zKqsoOpBIqN6nX-#DeUH}PItL0q^g{RMd)2|e!92$hSA$9k^=9Z0O%p7AQ> z*GD*FNS$nl=Uw4QH2jPW8n|3s%xoE>f83t4<~J%zkGmq*FE2pcn=Byi?85f-8O4pW z^M{SITsrdZG{Pc0IoiV(@-<^@ud~sNF{Z`dKW1xTH1U>U-RzawkKU*F$8OG3_$2c` z@*UU=|6G08;Cs^Li!sXyn9pHG6ZrT^VPk=R|xc`&Y&&}z^q6}+#?RVJZja-8o{m57h5*2Msi)bM-rQ~zrE|;Z@ku@I1Pw6d*H3Ak|r|ivB+ul{Sw3e9M;3uR{QkL zA)i<{-;t0$^Vg!@xEb%_2k+Z!7;H>be$TPu{hX8#vt&E9md~D8+je}6Wo=WQ-Kt;A zp&{A9aDeLQd;5(63q{3brYD|p+=7KD?V#j|i&_2Mf(OnA4unQH;ew?Toye}xs z!Xz*-y1dD)B{G;$H>7*&KW*L@!#VJ(JHl&L=B0?rpKgbhEeKi%wqfN2H zitp08jWhFg%;>9UvY)7GSveX^K1zK!AYF+^JU`;zS5*in5@NIYW*+o^Hn=TL*;FJF z_2h~Ih!L2k-O{3YFjg+7pik__TgU3hDu?i)m`a1lR{v{)07=xH(k z^x9+sQ|NS0_1fmt*;h};3O-Q5gWnM_Rl?!c_DVsBYBJKbV0$-`mR8$mqgbx*l&*l! zY>$&-xiGPx@|d93M<+i2H2=qk)>LLTXggO}NWKdxc5$a@DKDdW+_ee+dstW{^%3BG zreXhUvj6)Pu5GCaeHSOThRr+omUEa-JXjXGHSEf0IrDc5(%qhD0baIslw}w zXmnf>1FYsLMMhbRF1+uS{K@4k56CKp@FypONe+f*-e?k*_HOL(8lKHyGMAKnOO+OG zwfg)`TTR5~R2w{1P+N&69hIpc6tLW+^VIrXH?$Y}VL2f7JB;Eq(uMK*3%{Jl%w!f=L+xahYzT zJup03UVfv}$fPHm?7JLJZ|Vb=q3^3L(X2G>lY}KASq_#%pdFX@Y#|q1&y}@6rH{@x zbK5)$yHY`T&pD=fG}pj#2P(8v-ioptam#>@`ttaf)|du_ITN`#INn(iIYD9i|<_?#z$2z1+SDgp^U z$T75N?$yyeOj_n!98?jQYZdTq3DMZaWME{;G|deY?+kKb^(92vS)_RRH0$?i{8t+M z_p}J@7=djDWXrud-^8o$wMIzl{GC!0WLhKlS|ls2yg%re_!i&ZuSK+M^KYaF0ZMcU z`(TEk2B4mT=&zw!hS+<6yg)QrtWUk1sfok0j6e2qH2RB~jkFW1*@Hm)-smr=wEe-6 z?r)hrzU>@I2T&~*oXV-h`LTu3S%^w3CZJzAYq?D?yq2YS&z(9lo|+ZKRPv5*V~N|O zKxnz=&AM$;xSYDALNA1zj1)^2vv7{MuZkjtEq0}%<;_0I@y}hKel8`rT~W@L7xpDW zTZ!mngCT)7G?1Rkf`R;h9nt^$wq`m=naT9HqSuJK%r#Zn5m zy6jEEI%{aHdW2lo2hD9>0WK2R)&Qa+HUCcE2{5aqvVv|!$qN}rgq_@6ol1Vr!BG-9 zMETlblzugw=4pFjTrU&@E%??v#7Ghdd!KvQz&Mt2FX@^+HkS;wVVx+nR)}HG^Q)m; z5l(l*YYrnVynd}+M=$ZwkM}v$^TIUOZ>SjayG< z6<%_E$n?Bt(`kjx><9v;=fpK`r_e8)((!N%W#03x@R{)8yTul%yT;g7q@6iL1n-jIyuU{L2&K&3yVC{luUg);~ z&a;}b4>Y6C^vuneasFS^^#AXlblaF;JbxaitgRh!bmY9-d|Y7NIDhBP?TL)UtJlLw zaAWEGYHvo?B6MU80A2@RE;Vp`0WA9sJAxm8QJ1T|whQ(I2iEpIWYJM+XQLA5V4s;i zuGfIHq@GH8Eg*a!?L>+OzvhJJeS(+T)Q=QidDJ&5e26z}NQU@jyU zcXHSWC4(R5siy#3CLf%RbLf#y5t*)=jao6fRjt*&JW2KHzuvnjZ;cx9<8-kgfqgRl zW3%+Jn$f~<9A-5n5iGde-BS=x(f1=8Nli)rE9{vFFhdSNGrxS^cH2^H(UtZNIr?*=`sR!iK znI=7#o%%GODZc=GNuBG~0sF;nqZ(U?-9@+$I8+S|-vw>2KR>?#i0^QZ$#oSOzCKh^ z)@mRJivVndyGkN|_`W_B<2$DqS*my;8Z;2!`o~DM7^P)>ez=BmrLxEPsStJ;ZBDqL z*r(Ty)`*ljTi1Tae)-mMefh^~Lf^i7!kE-Pkt9Lj61n+hK0BSb%yRwa6+ z*4rYIbPCrLX&hIFvy3mv+0_y{II}JfdzM>1;1idrzX_i{mK`%bT4rLeu14?Kher0v zcm|xIhjp?1{I!wkf~LbrhHOfaH)3VM?j})ub&M})d%Knc+iJ*wQ%)G@XNm8lJ$!_P zMZdbSG0Xk;eQyo^n3xFPxKGb)(5frZ4+dK^+|ROhkRE}WYhMV>HfYIXS3reKq!g!L zMvQEOohG#`5TM%Q-%=-v-x5uj!H@i>mi6ch52cd zPdz`f`RS}hpZ;F-R2Pe2w56l5f6$a-Z~k99P{7nKco1-sN3jF~;XnSI0a=P&;3kX& z1L=pzSYKKZpki{m-~lY4f5OWGtZyTB{{F`<=~)}sx&a`9am_p*>qYY;zy)XuO9}v5 zF^Tm2H?$6#ssa=cY6|a7%4-n8We;I&K*`8;b!&`bL+CSWS7RUvD{4f*qY2g|PFPSi z{<)xmL3t+Jbr%zYL1x+_)x;6mkV*wrq|Y}Qh@&%J-_am-y%IUjc7O;bg2f9fNRZH9CMo5K*>V3B6n$fSQHlq6JI-+L-SO;6@HWU!BG zz5-o|3e_R5g8BHrDj))ML`pI*vfjrrePB5MAv1^ZE91{RuM&BuyJ z-vA`k*p+((jBvX~fb80x^Py^O267f&Ow0Hh8O}$gtor$N!tnQ$E1aLUjs+ZvVeY0n zx()D_?PjlIMv5*o~c)H;oVay}t)uWVjny>Lr%w=CIbjt+T78phgx;gupXFr$99FLf; zUHUR$ts4W9aHD6jjC8^_%Sjs}yqDujCI@EBe2&<2qyG5|D$X3@8OOoAcuF%yUDi|W zVj}J*Vob&JR9=+ov-cdF_DbGkO~8ImQ$Cf0@YhJDU6XT0L{_Ft;e`5@@{h!w+8ldp zuzC{6K9Wr&GQALRChMcPUPQ07|JeJ-FB{pf_s5`@&{`?TV973gmXMPxI6k^Q9$EPT zV#+rn<>bdO)rEB!^ghyYepOU-a;ms~tKH_`l2NrbD$Il`NuTb2xwSc4=THUgf=GF6 zHLHZspj)nd+L?%miM+&W$A+}SpB`eqz802FujFb59F^os4xk5CG9K#C=f9~}h!11GY5hQ|1iQgR7SC`2|;QjQ$Ls(4LIJ^of&%Beai#OG69C%)yeg7~dhEeQmB*ZZ zm#)_UVZz^;0uql01oVns+Y?1#Hn=5#6d(ie2DXPx7n!YnTWZ6hH!=EE72I)+PZN4A z!>1(*KTihNbGtQskf&844qt5gYVE7naMz$jFKF$}8(0lZVrz6T|5<9_d#b$R^JH66 zsCt~Mgn-hx6|_tF$-tMsGjfzU{nziQzaRfz@m0k&97M%A7v0cBNqVg&q2Me!-~4lo|83^zkSxTHKeb=syP;pwC&j0|0GJB$<7 z);fodxSUEKjB9W(?yyG)Y~*t1*2I`{Sgjkz(hkv@8)g#FV6R@?Z0aaSjkWZT74e~a z-EI5fL2Xp)PGL?u&=23u5T-j%ny0BuuiahHN?Xr^396%yf2Mp2Eo;`5pEpA}BjdV5 zvQ6@V&5e(|*9qkZO1FFvXDp;du|b@!kAFr@Hcw0Je;=K&Q9a>rPb+(F0&30N_$YGW zry%mM7pTYI0$%7SK!}Hx0BNTWBmqW)UVmjRiMNeN-6k7@-?06Tpjn0Un(RYzp=o3b z_Fk2=n_WuQCWe;CoOp!cgckon@UqGeptPVQh3e7B>y@DnK92FxjBt|~&kUrAr%Pj1 zeo#V8)>{cnwpjn}g;|&KHxU+ z-K5IPbya7#Zw^A)wk|bEBfmaZ(K2|??dJ9wr`PlrVG_^%DP*w03x>VpA}`2jTJrfn zK#mLt+K1G4{++=5(h$f5({5YH%+b0{_cFLZI>EG@wijI9iTeXUKNTIXC?J#h3#g4K zK;7~YkRtkPIY8+G%E@WQf~r>@rPt(60BwpC)X-LR9#V#GVS+{#nHJOi`*7tD7%D7Q zjfhma)Zu8$g?1WMbh&14xv)Kctx+mVOsN2wm8Pir!Ra)cswK@n!dey!t!Qq1npLV5 ztu$HO#XFHGO_#>#pk;*J9~*rr0mpyvMCs}$1HSiMwDC_5Ztmo(c}#F!#KtC-bshCT z-wI;Y;y1tyRW#Vjm#5e*tBCUB9Bzv);uYg9FXj!n5oo>`;`I!;aQ*?MrV4eY=sLA| zDsL8%cyA}|q5-bk_rEEhMTiab(0CbMAcq$%xi=RRa-1XW3i1HM-+o{n<=Q{ ziU3k9V%BOMM%kSu)ERIgpzKVQC2`fs7imriHvm}U@N%b&8iFa4iiUxV!vJg>1P?M0 z=^79&y54B$74Y)883S&C*-)RFB0nlXpMXi-Q*!^`Moq6(1YUq1mZljiqE!6?x&oG6 zjf+mGu?bJ>|U{8SG+ zvkarHD5MOgeUqrEtrgCFN-1ZVf5+mo-1?B~n_)ryX*pA!)b`jm+tSf9tL@QkmAO)9 z=J8;^aMXfuO&wyf3Y5u-_bOw`u@l&CpJT_o$DX@n^K7rOOF!7Kr;;I%2$QE7;v;9= z@Q#BotTr|LDcE{@yet$)SI+!YiOTwj-=8`0gV2{w_gyBS+pU;Q340QC|0tj`#c=@t zzoTZ$7TM4K29q7rAqLC@etv#;nckPL;_h`oiS=lx#&!`^(3jtXy|Vl-88iLPw3>l~ zihC(AtO3>?Gcnv!A$|KYwIq)jRKLN$*>2Q(VT8pw3MYDd{CXI%!6YBCI z-!KR@y*{gJtC1rta9NfO?;AVIsjZ!iu@m&II_xE4Aq8As2T*UL3wxh@;8?(`vz~aa zb&^=Bbc-RM-z+UH+tp%4V;ZF~Znb~oz<#7sT$Dau#8I}(bG3x~ zcd6oe&g;j!Q>I9_-{)OkU&6aP9`riybk~hgFJWnOpZh@@M&e5d`)_$s*7z)rQ}I5G z%oI_I#EF`9@elo(8WK>o`4dt?l@Zjkutf5@?{BFL8|P%6k&Dj}vb9JQypY2%Yl8?X z=tms0UG&u>*zDI~Y{yPs3b87jF;fDM%zwrmd^72fFN~I}6{&ByHK#DW&Y!)GRSA&j z-));EBvhH$W4{`)HkUZdlD<$7HD7?}s+o(J?@H6W)3TTkdj}O}cfaP77k1__ZxcoT zsEI!wlMCbjt-8kcO9_;?qp2iDV?-s(0Uf0` z2LlUBH)v-cwEc8QV#pwDtZN18T4;7YeFO+g(hHV@ZrQqO8O4o~F$GBb0$Y*Fv;6x? zFj`vL$K2KlzK5@;ie)`klec=Q3|k+8ktjNL4qGOXQ6Bj1w&o^H#snfuNQvMEnOJj-r3;U-;(|2dNOLl`}Cg^C0e)-*(I zzdU#>Ey^06cF4ddTY{p>TE=KqsUQ3Vz5IC9NRo3U(oqIWMO&;fqZJXmn>bPRa0F2y z(yd_=CDGr-AF%aaVOn&BuG@`S;YqIr*;yY4m4)Q-3y9*PhEKp-a{l}5?qyDV)&MNH zT)gixn76Ebd8>D9^QFv{`8lwh0ybjc^9WMSze&!oSpr)5AWHGjML?ns>ea7mpc^f?LOx>ctA5X$qZ;iZ36%Q4t_0y|MR_ zDV=bLsBL_Vm;?i@-S4E1i#d zj5ASG1c@g7PrRpl_0{aJ0PL2pwV%NMW-SY4;iq8(%)gW3imU;= zBKmtIU78rx6{TX96|tJU;3Opcb?U5}8r`cR*>@%%PX1{1{9$y~=2tl8@=HD2?=e}6 z!VMP3)8)7{Nm#?_Np><}H-pm*rd)~s_z}Y9JcU<(Q=7J%Dl3)ySNn>bOIK3E$wFlG zlQ*7mk;j=1gqHE~9$>vVn^fGNMXHIG_ZT7i{ugV}D}0}U$P|1K zlH;``gTD@=7&_Iduiq8fAR&VO^B7?LZv?Ot=W#_XtrP%tk;S^4>Vv6t&+kJYO8gu- zRasY9^CXH3!;eFj;rgnzp32~Af-{(yu37^vinC2%e#x`AjE7yWGh2BTF`PIy9Q&N? zrFZ*CV-baQ6+Pw542V#BRC)e9G|UiniorTgMA?%8g(cNurj*V<3Jrtr+*;^jVQGa? zw@)ijRli8po1w;h6G^e)woI)u^FV}IG3}_+5v+GMqZcZuQ(|3XMpki zQdWr@ea@c7Aj2E^DZ@QA!N471MujG@gzUQv{u~iEG_~bTbt7wQ2r3BbpgEiOFsNu9 zKh0{wflzNPG=uaWD%B&p&p{Ma$vm&N*``V8 zXQn4@X-8NerB|9(RZ22JrRF&O%1Pv&)}V->t#e0YEz?b`MnZElXmhEJQr2WAQe&;C z?G&P@vge6iiUoG#of<=HP!vQYJ}0Ob4qjVOr-VPG=11#e$F&h!R~yYQ(l$O-NEbmY zMCdeho!CH4{q@Vn|9fZ^flMSHq+5N z!JU*y=T!`-wVg(3KoE()oP1uK`4=C$VU}@q_$%Fth@PGRnStl<*95OB@IFy|VrMF^ z9jKNaAedEfw6}l2N@gz2vc89&!Odi+8LIubhR`iAbd3#I55 z(`&FN+3tS>)&K%;%f3{XARGlL;#H3TTR*wDW>Q7hWr+Lt$+*(qYXT53Ji$|PqYgyb z9yjA_OjEe>#G;Je@aKlW1#R%TFI+5s2d5S$Ph2z$qH8AWoeOrjV=jRA0aBTR*7^AV2d942g7e!na&PI8GZNDCCEbUL9X1?v> z0=RJ&&b}$a^aF}cr0g5(b`bW zJba~n<0Rc>xWb0#71K6sK@fOW`&W74X}>wX_O0fh*_RS!YyU8E7jidLd`K?dy2Z_4VIZ+b=l z04l4;w%7Rd_N5=*BZm(hms$=VH11_ov(T7Oljfa5=VqPZP7 zpb#lhWUy6KA==?9)t|>;_3g>%&6hXBVQV;v&n?#J-LujD8i2H?&;+#TlZA{=q z8E3#gyVVT(ct;lt-o*BF|C_&13=mA9Ls28*AY1~f3Hb*f6cScL{@CHsGSVoIdaizy zV)HrMjh1+Ui9(vR2I=ODt<9zGDO3iC(GyO!WTVuJzt~iLj%FoeJ+AKY@#&O-!zA&> za5K_gZ!*W)fln!>n|&OWayb0Tdt71i=^sVm2*s3RGjbM(*=0Vp^ko-GcFyDJN3EZJ z`-+0$t^07{QZt{Z#m~wHPWyq4GjR42C4Eo#shy%d=A*zYMJ!?u`|6pJTP#z+#=h**sLaC&R%E$WfSjjx+_!xLi_G6@}O+U5=gppn`oq>0gQC4bMHy-!{MSc^^ zB?zY>H5zk@pP|VO$E0VM`^b5!%2=-&4>!wW zQBS=j9bwrKsVrqwO0AGjaPvWt%x)LFbK~4&@^at*`|;VUa0iS_l-}I;0VuN9f;j=h zBAbMB^VQLEqOJ|wCuTTWj132&Fg^4j=vwUy)Nf`A^M z6K0BnNxw>s@orN^>ECV{tUc!85J$|nWHNI1qex4QE7}Rp`q)N< zLHe}?Swl!-5OI&iRKf#gcs>rkGaC^)j>@p6sQ<&b(eTAf`C#dfLn-;Wmm1MX$-Caj zT+*zn+C?D5=zpGDFb*4GfpTER>0m((F-y|~hJ)82GK||bp+jWvZ8tu{GK0Wq3sFJm z$(lpE0jn(N6(IxbOh?D1Ib)-k#UVyHVYnSMqGoA(eqUVuoAqC0`X0#)0=Ke5Pg3OM zBfSVxkcZ?uH!`$%pNcV)*L1O0Jgk1rp<~X;wuiDlty7hwY!PlWhPm`PB)1Eql1IT#?^AxOgtG8;vk`RH1--aUG~AdYGp*L*BS*D-10*oO$+(Sjt- z)wMMQ?GPfhq7DU98G=^_iI4&d_LrnF#yAoi-uqFANPk&VqU>rr^f-+`h0J^?)vULc zlsxJGqw6iBqH5o;ZzV)ZYLo`)LAo2H8A?KG=#HVgk&==|S{ei?>5x!TT0n>Hl2TF$ z!RMO$zW?w0taq)~0Lw^Ph^lt$2bmjonbIOhm*>E(#i=Zw_r9^& zkw5lT0ysEKPVHwe|FXFLOwU4yB#NA<_qGb%*b~@dmmD&}@la>jHk`Z1#)X+!A&ZbF zKq``&sa^0rm)kZs?)#$z^ZSydpLm`eSsoJRWqzU`WZ6_L zV$$%^M+_A09Oc%_I8-l~&L?DmTi|2wcoRGD389Ej);&#Yx$ZALTN)Nb zf2Ajl;UsN%;7h^-dH&&33H;(MWFnh6SBctnT&MgUbt8OZO;R+Ep0M$1L_m=b^9k1W zX{)mX$jup4hZbozZ^%r>ow_Fo^a7FQL-NsAVo1#!KQSlj`IELce6|VHh%n33rkvaP zKfScKk0-pC=j0T|!<}-QRp0iCxF%GaYY&FH8c(a%ciQsGtJ9#;4YL)<>6G%lj@s!& zsoyz5PlPoz#v!311aNAR9WRbO@+q_&VC ze-MSrMM&}+UxKHXp_u`%mRuvIfT0y51c#a@d7XB@eMx;@+;J^|6(`gvp6DnOj?MOg zNZam7bdGjHZ^@7oQJLm8((VpZ{h39;Yx%2lf5bq)-xu!9ot>-x(R zYUSQwQ)NgP=>LkVfb5uGrSd)MR|gwp@=RAm%j=*Fzd6O;=UYgpDcuQ(Rt|>Vtw8LX zdh4!|l6aD5D^mZvcB;aUQo%V0)n6%p$8IQc1IT-3gW39Bfo;?ag3U9t5T1I2oErex zduaYGlr&1@tz+2q_0MjXL3ZBh2wjs!+8uhn7Dy4Ct;>l6;sG>;R|9UWw>Aq{?jS8A zK%K$UyL|T>_`UDMA-k(7Of^)6!M~?syC3ZX%8*avE3GDwG*w)NA?8Qx4D$+XJ2;N ztSq{8(Nckpg@72cuP})!b3HPOavFCG~DE;;P__y#zF{eM!|Yl)fBO ztnsQYfG?=-*#}j-y_F{o3eVgU#5r}f+U>KWrm^bg^#kl~8%*G03e^#>&HFF9>(Kvq zdH6kj%z3Hd+?qxx^{jt>7X`x(H4pfbXK8EL5|?f}7xBz}lxJ|Zjv4wGxvMBoFy!c2wz7AJF1evHuMN9^x-XBc}Y zJBhM)e=myL^lD>OnR3((Y$O|3DDyf74I>BoBaVB*!d4zT%6b*M9wUMi)ovT}T2dUH z1iVAcP+HF~(%w}us)Z>)4Fa3@-7Dc0E?`W({x~rYQpmA6%b@#OkG)&RSGSoI9KDrE z75iiqMx_RzoUv6<?ksP2@bZ9=?U zY5I_Q_Q$}1Hd}SE>(*JPDzfWB4@29(|JxOwevDHA+)f80^mh$)O`Jm0g=9)ZNA3GH zspsq9WNKX(SnQgl_F{w?>d3KRdEj`{$herC-bXul!aj`_uYu<Ub@W(6WT%H^(Vcqb zwvAf|3VKmZ4Q-DL7=OG0lHWll=I@p!3k%V?yr0PNWGgX~#`00`4qkhlg8}5a&CcZbXxpVB^4Yu;>RdT7ArKN3(-Wc|lPRylcSrygg3LL-y z2mp1IS7zA&RnW;_CaoGa=?y<@7ok_rLGRg+V9)0yP<^Q8Fl(r;t+<2QnOYi7q~m;8 zxLV8umP~_w7*?0bW&75?&~!f{U}}CNY3yoJDp3|Fjwa<%iK_(ow*ePD4j3nt@ z6Ajn0Ek+mj;{HuA%=Cw8Y0i^8MCI~i&EtD0nfO#>`CRrP9Q100l`uFa@3{Cv(7Ue| z^N*bk490_1IT?ypv$Q7h47QWS6Y(teRJi?M_N>wQyKDSKlP?jE`%3QmtzA+h$fmRgf+BrPfSi z0i{6}!659@nE39@R}$J*WF|7SWWfLtsfKHleaWXi{67clP=wE-ttIGfGBAG9d=DOE z4R_E?TDww0A!c2_>FC7-eEU_vFvy$`x7=LR)wP_!y4!f}=8V4}%4{5E5^{51PqS5q zq1+XWGG&T=^D8*F-0q;p9dktRP02eNPEuqvqSP*8BSZ>9{p4EB*qHi($R?pd0QkIc z_ehj+QHX2<(pbH;@rdG7&BS86483kPf8A#aeq+hsb@<375M@O^H;}WMtgtSdg}2Tr zG0y~!i@$uhB0GDRXR${en)jNy+nab8ne+a~{j}PAyLFOD%NuiOweaXBwfz4?~NxMCOZGRU`>Ww5>2(qn@i8WVYBY^DpSK;$hs<1 zCurcxv-%=ByG<7N`fah!e+!S;DZKWAQ5$S|(o|I4QuDAo+o_L8KOPP*O2cSv9Bpnk zG^~>t95?bv{3nv)XbC6wH-xt&X_PqZip+l1Uy5-YY~xtEwJGk*GwfQS%BY465r`eU zfAo98Z@J-h19jvtWJELLG)~G6c6-qHVo2A|=3kxZP9ZIu%rTCKex2M4bwhYSH|_u| zNJ#1F#<~A7uo129Nc|N7@;#ut2!mHFHR=V%u>{WyJeyS98j)#s1wm{jKgCvyIg=x- zuf{%0OxM|MKSx)zCSP+tZH>MHF1YDg(r3>Nr!%IS`QeYs7NHKaBsY~d1tI62XVsGT z&>gxGgI_a)QU`w*VTw*cD$5fCL27hL)pDuvuOg4a83xVGmfXlFBx%BBr26ipuFNzZ z8cN8{|EkV%zPgmWni>E2qMf$DG@iV-FTg4DrR3Ca{C)I3m0D*H2;ETDNe+)LQN6P z%qH#gX<44T*+bv!+>2ne2~#?X*}tj~^O>R$wSdgv*lsaArpg5FEt1lpxp{^)?+6%9 zN@LAGY8-eCm&!xkt-_0DK@#BuFtf7eX;}Gzr!JsB%=i{7CAZyMLBcIXBYMrnkhzCE z&As46;WU`N%7fVT1*|Yb@Mc80FY3~(^-yq5@SgTvv}dhjcn@3_^L5M@;%~dR=d+uG zog1Xr5}XbF(C?VO%@RhuwDvGm!Ig>4tHySM39@|#yB&Xq!pw9rLzU)p#bce;`w};2)9!C)u~~Az z%&xS$ZIskDU(uB{(jbBqGUj6G=j{3v_1>*sB``BYVh|6NWApTpEDord_dMs7{!_!e zcHF*t9Iz_zY3Fwj>Dl9?eMRmWEYpv;i4&M1Ut$A-oPEW)y~dDzOJz=v2MIzxHWK(B zdf(Mv;kpdXEvO(-?0NmM=N$Iu6v1`dR)P_?r_9sc6CM({HP~Rfz4ltZEwe>3`n?F# zrE30xko7#Hw%Z(5MwFy=Te=lM*6?Bduwy5ZW_%>m?f|7HN8%ns>s4x@^1tHei3KE-h{LbQuX!mU=nfb+Wkm9wZ~cZFupgM9O9N=)Bjm zt%8yp+&Q9R{0i&-MU6!z-!@}d@}RnDS;FbB0ZXgF15)bM`s>41X<6kDj-zEJ?Zeq- zO+!P(U^78ubl~|nJybQotjO3}#*ZAAE`vW;)3L4qJntQY$$`e&WqnOt-*hwrdrbJT z;%%P8P9q1z;8H$2E?)cT;@8DX>z^p@GUg0d=h;-1=_vM&>fhTx$*sUdG25oBcv?I? zq2Qz@@DiUo;-xEkp8tW{*Qnl$l_-xon{$WD)q?2s&GrNvwnwjx5K|b5?2oWpC1?P+ zhSj*NYvQX~&!KltV8)OSontUw-$va)*Zr0%29^gk)1M_rb;ImkVtm*wL?a*S@QmIJ z#6RoyunZE$a<0XSdFiDjN2x0QA`RrJrJ_&jiC?kfTK>HifQ}TJeU?;{Dtk80mR#`O z?oADJfSH&_&XS06-RAFTU`H23+?lq6rh86mJjSDLTQN?nmOP_+j^!^b-)5z>dSP^^ zM0U-eaRVDrGF{xPKXDtMvt3^ee~>1^O06O- z9ZHRm`qk~V5r>}D_-$wFSDDz)9Mr7U*oPw02$?oxxY%vEysHVb)ck5twd@<3FEpwZ zy-3mOOw+H@<5Xrhuu=>0w`-Hzf0rIH>bNhZ^=fvp9p>4q6xzfwn8#!Jk{Z!NJ{W3o zFLI$el%BB`tE5+?(NnFY$x7^HPPmLo**C*0kG(Hbw>Fdw0zu8q-PI!FyFrcHZKEX| z`GzKM-TG9z9!*!HNr9te{IXBrSQ&02WZ6z26Wc}MZRBJ0YUt&>cYS;gclj4Ru0E;7^pjd7*@WN5wQF z;xn`a_+(_Uesrwwp&WS}p^ zK8}datFs%$m_}|kypkz9v+rrym+`&jBUm=njNP-U6Its^b}Z-iQd?QRv!3iS%4AxT8g!cK=DQT{+@uIi1y&LsFYY=BBYQgpgI#{Q-S@b_3bYZrFsQME%bp zE3`>FNL?$ojkDv()naYQkflLHQQ7Vc6-H{pW16^Z$?G6kq_bin&NZ0IU}CUeOK?Q2bZZJyuPVt z={?{Hw49|OJlwo(D>%R2w)e#G&~5n5-MF8zH)Pk}5 zRO3~d(vU|5gT{($FMd2i1Ed&x4LF{>rcV8busK^836o(P0{ic3!$7}+Na$SJxg~Rz z4+u1vgNRZ5;k294+|jsjsmJl*$<}=g^a3k|+N!keXa*W(*ZxcfH+MvRtoM|8UJ50MwtY{V(;a7P&a7PSq_|$ z`=<(XYB3>yi~}a+N#`oYWcSOEIC4%B-iU%sU*HpNzRJ|}-BcUQLYRvF0f>)Sukj zDu2jQ5tJ4_OX~*xZiq)U9WSi|c|mmoer@wsg(M-dD;|_BeVF zCvUmj4b|h^LH^UGkK$c6mvDPF@D<(?P0sab{-w&7f8&v>syX$^&)9XPzLU$3eQGD= zHqQ|OuaDjA5Imn>*0K|U2{kXW{4f;Vz0TRKPuIvTQJGE86Dpg_o4_433j%)7A2Og| zpx-@3C=TVnk|gEz12l4QPdMgr)(tQk)4LuL1k;TeVNHeB=-cy-ie*w|6z3RPP8F8= z|EZsxqDb|e`Pd|evZp9$rgA=y0$ojyqIXR-a&HZbIFNN6U{pQ=dF>6ZkjuC?4b~d7 zn>{PQQY!jD;!Hzq1|D?+X6_|ux4=={EWqg3*Q``Hie;D{tFXgc$z<;lJcSY~8(N;o zRv9Fi{EnbIaE-9-kOHw;F+pGD)>IbS2xvzwW@vXn9dRqikyXtVQH zAYs2*zecY6o-hzdnpiBK#z4cE(5HAxL#`Fy=|%ATqrCCv|^^)3_ZHjz!R{J)EG7 zsNwU*j)N^nDt+S0snnE7PLg^8wr;ID`;WCUfmgZq&Ad27+Wy_B(0aLMv7Elu>IJa7 zn=tHbz6Tnl5OPhpQQdP2&&kb)X>bX6%@4n(_iiYR@Yb+qJ;2n)srd^)S=ooFQ^$b|JVTtJpx|01O*;=AKMNH#7<67-TO*2OPmyql4^{+YMADpU?ogoC^x_JASs=o;g(FaRZ z=AA+ZA1}ajZ1eoe&O(;FW~^@tK?e?|EUtP}x+AR?_6SANd`WpSgfUB1OQM*N6>}_t zA5K2Sn_^AB=eEC1k%G*QO%Sl6r^yhG6hoTlPf_+iC9&h!Z4KSRn9ZQ{ymn}lF+M&N zjgY~2-N}f7X1x;lENl|O86f?>oB+*_>F6Hr>aVN**N7)Hp(`bGrs59sS7GI9+iMF? z5?OcJ(|P)ec>2aVW))M-9N?}A6%pj&^3I0(z(EwK*ymZrl$9XYb3dw=UO!v44q}~U z&10Vs%AqgngyGz_qW%ve1~rY8<{VvYB-(b8`~B?v-E8^Kt$R@JiVwaRWkcTDUy4hO zTy)aLzF0@VVhtPrF{|YS8I<8pq0A;m2afR{6$?{~DCPT+GCV1Cl({V3t<(MczrqGz ze3|hGc#2SNw=9)sT56x_jDtV(rk8^@V93bus8^xMR~2*GwK+8v6ew1H%KXZZ@DZAx z1d9#UrB&6&+e~+&Lcmxv{`OHAUhzsJv-vj!7>$m09x23vu&{UREAKP1Q8C|wG;5zY|#dSsj)&P zV}d**2P1Xsi(60?0ZorG#Hs%K9WDKEVd`CCP&LSOs5eOgEy26$W>s6t zjqt(zxW%Gnt*A$D+&mm&k+q7_!GzYKg!oTISWj7)lgl`k2FjA6ndAyQ+q8~yj_oyv z)K%3Qyn6At24&ef`mH%Qq}yo9Dr5_Jhw95k1T{q-jHa$0lyH^Vl=3(<>M1x#4Dv6H@_C6Jp7J}q4!6{Lfj1Lv z2OCOylmMYM<|OF2rE=TZ!`)R$xkET(X_o<)nH#OL@spr{gGgplCZ@(kxG&kfz4m)yMn{*HZ-rq zu9dC+9=87HcK|0d;OI6770$%<99uF_WmN6i*47rt*P-rNu_tF!pMPTh1*s_w1A`dA z2GBVRoh(*d5Xe3qW~(&=-9~_wRlhO+Gd)8v;LS~^3jF7`r}kGQa=y+fyokPA^;CsF zau|RGzH-`+7bi+SaY<7J6&5^>v)rIuFgP_m9eC;}fWXqBhAjL7GfzOk-uGuu<~B#; zpj|6!dP{0DM?i2sK5(qoLjO4Si-VzjJszjC!D}=|d1Ykbg5e1K>(1{H-93sw%xZSY zfoEsr&?oGDvnc!K38X{lU&~tVKbAFW=y_T~X~B#A)F*}`|E6cls=IJeS54VAwA=bW z=klMR{*@eKOcMA@_IQ#@GUYwkR zZ}z>Y@$u<{kHTpkrv)y4U>LV_0TDmg;q>bkHX zBCYMZauD;eq%!Btc{)o0CuSD8mHK=6424Sr?-5>tSP$@qtS=RYA$ov0H_u~Sq`rBp zSwEyc5kOST;!RUdS&QTG)dU8{GvjZZh}bEV7=AX zS}L9U;;`rE(Vra{`zaoeEMw9ug(Pj!FVD?Gc!=(dNwtbY&?SyA+|`8Kh}dOyDp!^J zlV?1HU$&EOWUf`N{mv0#g3`MOjbcO*<0`5=76{7bvCwR<7VzLnd>-a(GqySEJNnyy zDVpW`_BW0&hU>L7ZC1EKJr@Dmr-Ih@t-3;n>Ugh7Li`Q^zL@x}FIs1O++I4aV(t4YuNljDLHF+>aj zWsw~GU}Ml>ormj~z>K3->TGhBkW1eEG=SyDqyd3PF}=A-yLj%oQlmCe4M>TUC7gMx zbpKaG(I%=`%B2RNLbUr7^P-`{nqM}Si1}TXmo>;XDMJv2AC;25fS0k+1CABap)r~( z=2P>g*pvTQU#9PaT&`|Xx|v-Yv~>0}MTNre63C-|%y%OOJ}JnTx>@?r0jMZEJzYe^ z@5qA#mj7(ArJlB~ik}Ckz!Mu`VAsxVmvML2$BNGAI4KKj#s`m%rh@OVLy4&|Mg$p;MT8^zUH>FRPy20!m1WD4H%Ut^`1zdTkVGeUk_R4fIFshe4?Id==qnhSd zWhN%J4LN{P#K*qJ;zM%E#!h}2&i-%dS6}|KD41-bU zz0j~c-h1?vU*6gh2GcHe_^%OMr~+RGUZ!}+olvucK%S#ZwJaExM<%Ttcamiofuzfw zwogWo*N~j%vM$z%F)qTmp{E}cjZ%MQb={N&eMvhN_Ul-5skKL7Ccr9HX{>2jYF6!S z5dXDe{U>C}gFP4gZ85e6L&06`01Wtzo0`1;^XHJ#Lln3F=l6}FsG?PH-?QzjN}_Cz z_Sdp1Ln$dKYBg_LJFA7UXXXwTTDbB;ZvE=^7Kx$IsdcyYz8LRue}wh`4q@y>qDZcKwkjztkkLl2tug1=z1~cKCJF(U1}J^0$=onT~ddY%$0KKdb)=F z0CvuL?4EGPq*t^e1>t9|aIT~{{V_P>h9;2=jGjhX+$c)_=3WE>`S@*#P=^R+^w%0` zH8rN~Z)ZLA?;g_=O>-IdFsBd;W5GQKNZhi}IiAQC-izoxudfy|tnnfzD&)60*?kAK z|24@%M|d_e?k8b#!TQx-0;o*LL#KlrnVPf1`Dngy^ zMCI^C@5z4>@z|cNI2?hoykXQ$^&A6)me64mk^bds$yLB7N#D1a&k$uFOmqspHM)|R9`jwngK6B}4C5w-PI$XZvE1M?>mbD!3*3c0105$<}ssi{V@&FJ$xc4^3s-6{~qDFU5NR;Z@_XESuj zlF_2%6C&<|II36T|N84_YNs!)W(FJ??uS2sF3}Hs5HZ8U${!RKPQW2&gS7hs6V=eT zzHXtKFBz2jQh6!s>dGIG>2>*EBud?qxpW-gyFE?}`Rsq_v*eW#Vd&EN5IDtkEDLZi z^Z#tJaJ)oScpBXN{r&eg|Lhc0FR!7>h+ciFd&I8)*z$C~daCm~FDR@~#7R=5a+7OF zy))yrxkS7$;*i3r&6;3CBJ<{)rOhl*1qJfPu9hgEL|P_@C{)qbf^vbe*d`!6Ah!Bul4&rZJea|>ya1_s?-93k`>bT$X5Q16I{HR z{8w`9(kU{C(X%amWw>IPseg9Wv;SFv_Te|MzC8aar-BXmozi~rfd8W5%g@daUL1EzcGo`wrWTfPu z*q(^^-K5IeE_m~<2Gxc!F;K|bTlu|Q1J$I!80qO^npX$w+I@puOl4 zHr=Wup~sl*w>Q@#f%WktLbJUDQm??24d1Kl2HpXkDtz+pAMN{_5raar$aQ_`DgTu8 zq=Otwq6BI4G#B4=THn=B;r*(H5_ZaQp3#G-Yn4waH>lEYQX|*U&9@#PA!-f~r>*O; zY+tkMsWbg{x3)#}UlxXA6-a)4@s=h8tx$=KHt2%x$tZSSjX`R&up$(BESsY*Q!+%z z!^@)cy1UQTQ-|FdE$F7zi0kexmu`k} z>EF-bGTRGa=i%=6V$qI9>e11>Q&3L~ZKj;L*VlDJD=raLY`1C`QK{EM$^NvUK**x- z$!@B0#mGUNaG}7d8q>P#b@=z!q`je?dX_uuPa3#jL`>LAAKYp0|ITnm*l*cmXTnIJ zn_90*#O4{pLKhWgnz7-bvE?ebDwT;ZUlJw=&<0DOu&=E=nd0`bB0GUE%+w{vMXpt; z0>6Z6J^TL<*NvAu3Z{tv-+17q2$-j>u0gzfSQkv!Kpp{gNHmFna}+bJ^0+$(1O)?x zK?A}ONJ|YjDG&Hjx4(a{vFC*Q$N2)~MU{h@Ag(}bY&@7N@IcXL4?*w|`p{c5h2$DG z86q%6L@GIV-(De}>*&mtQp%!}(dbdUoLqfZUaqt*E~v_vXAj%k6nmej8mAaLwCe}( zmqTw~0&duoU!*DCWs~uCeg_6iP(EdW7yiivWm>M{bE4t;L@Q+Y>bAr&@Doz|oCiop~m5bEttM5{3nr zb5|RE&88QiVywAiqz=wDoBBig&simvdT>CNaBSI3@WW`OMa@?A7p*v#np4s}rpC?8K>V zzBeNDS_%%jbRFw_oA@+|Pu)xz>CY`hVA84SabfndEp?v9%5f@*yK&bkyg?b8ey+aV z4`(|SOApX@dSFxdPW0xIi_i{cZJTZjo5hIelDbUtmC+clRpn2%38{^I9@|k=i4Ut4 z+X$+(O--XVo{3{K^~;kHZ+?R=sZj2}` z>-o5UySqD%7Oz^aQ)Sqqo`pd1Z>aid^joWd<98=;`rmWRfFo{E;lHwO0By94GZ|y9u}0!MVTHimz&}fB**( z>94xGdwULUi^qe-t>t839p9hE@Yd`XRa52x*xCLQQXEb%`j5e@yi>+xo`OnWTRfK= zftg%e{qgC(rbdDBDXOD5<#yZC=t<>av5B55dqyk=$~}z6rCQN{z`nX~!MxpU@P?e* z>}jz)ovbY}ZObE*iLwkOc<9tL1Bc9|QE6&MM%2%sp8@sitmxCAfcuF#@74v|;sezG z!b!21ZH5m03n9*0#UQPsY%zBmvB{}411G#+W(vPux~b|h>%53=604X}dUOWlMnB5! zQ6CAm{h*`+rNzbXK(1v|g9y8lyF*GGXl;?Mm$-7dR+I^fp?vlOHr-T0S+R8FarE%+ z2cL?9kM5l&zj`SjP;!T&#+b#~?B>$?^FGggXM!E|naVO_afhqZ7))kN)f(B|^PQfp zWgK0OjQy|Sy2QANzvniEQsi>OA;70dE8mmU7hc!}Afn+7vJ2KG! zNVv1~QLCWD^=61AKU$|09djO*%De_lERcy5<%KB<^C{kNEda8&2vQJ?i9`CwdJ`7L zKMK{Q>+kUux4}}0ZorUZ%imX=DoP3>d`k zZjUI{u%CC$qo?v8#eznDv!bfdho~TMkC*3zqk9scessB77fp7)EWpPIv{9|8u*Xh< z(31o1qF~S`vs{Gx)H`09_>rsZbLW;Uv z^lGM+Aapsqf1#M=;Gmk5rum|{bTffonV1F(ryfv&a-+X_j){SZhseQi5jD+5Cyi|= z+|{1zLfyc|6mT>xPLBva&Wg`oOxo!MnaauqN{Z5IauOMooGpI)Ie2yD{C@ObHMtx6 z<#7D!2a02^15KXK3?BcCln!idzoYp;Nw1Q9gd>dQtp!6Z$egMq=39NvpmLTQ!rPQEM$yyw8h6UV~%@tC4FpYG$HN^}00+>v!k} zb2Ql8wPpK%X+F_A?RN7Z<#r5W2bE93vtmm5V!;~$xS%-In0!l?-uE6z{c-&RPEP|z zYrR{6USJkm2WE3wD5M_Yh_??uQ!ucQwj}_(Dgea0yKT)sEXY()d8Vkpag_~Ob8g>d z{sRWk0brzHThFzatkmNovSalhOK0{(t<+Ui(EqEb@RCy4p@b#MMmMN%g7<_XbX$FP^yl_~mvp^x}Sex_mJy zcFi;UJr>J!F}+_LGE6(_qZRr~sqR}RX&ajYH%;wMR$a9ks zuB`oe`rux;jnsD>q^JW?11%3<^MoQog`mUYTULr?-*NVt;=5GuS6DhBIsa-bo@8;4 zIC{u!a|_W*>%SR!44%5;i!dNG=3hDvriTui*wa?6T+D@3od_KvUphKEumeyyEh^L& zF@C>)2*qTrTJya*O*eG@1n6)}MPKBAlKIN0!A7n48p&4Mp;g8F0j=>>Nwl)&YlPgC zXo_wqWWk%U@^f`0eW@jE_kNluu4-rs!t=>tBC7agtMFUNC6C$LR&k4~#CtVsK%%dq zh9xKHzVdvlj0@8(z5}b2L9W3vZ(=fShbv`SJ1)q%uXA2h3B)`%!jP#UVjbaTwoLz4 zq^~#p(T0;*oo*^CEXGhb&4zRNMReS;ol>6yk<4LpF6njbAbpvQGKSji$GUcbn{00g z{SpnA7DQ?;!NWSg%02_7i!CgC?pjsyUd8GkwA$+v%c{xx~7}k6~8-trH70y zxjj8HM9|%y7LawLSDt#vomf5f-y`4}>uCemEs_A8#r05$=niH(Up$?;dd>Pfoq6q# zr}ITr{bIBMPXY4wgNjz>b#)VxQ67dMLwfWcPDCwau(_!`5(q`JdKJb{%{wOSS?N%3 zTo!_pXkoC+^}bKl_C*LTy3I%v z!z-k@PYdNv=bWRk`AU8k)3q09s z@x7IzU3-?;9fSCLgf`x_PN#Z(Of9_GM_G5B+&z$l&iQ(EVRz7CXt+9c&>fi*c;zI# zF@;qkacv%QAVf8HQRK93^t=R2T>;X`$3=0R#FavMQNA2WGne1-2oVU@D&ayK9`&9pS<2i)QE!o_5;jOx7_uZ6X%oCM*anO;;vHv@VYiMo^f z3#08M-44^d6qED`+m|fJVUzJi43UC81jhGNGA$SDaW=7DOyR0=A_6?e~pCe z%RVf^|HeE4H{_*BTyJf+vv~aV;j8?`$o$(YBDeg2ztb)or9zVZAuIV@=NZ-dETQzwYe?WS+V4C; z?$FaWpf1(!O}_uJsnsHZlqqvi$@E2lsM8Oi4msghFQSHTRIx>hBp`qQ-@cC-h+Pr2 z)CjEv@}ZnSM91S2zm16UKphv#!oLbug{gubJLCO;J@t*LZwR=mhSIM~8mS?^Z=dCJ zy5TG;U$66;;x#V_h5xU8jQ14Km_d0t9yKpvp$2-M?;q@l9y(A$9|ZOu6raozI3%?o z7>o64bVPBdGogQ;nvol~p0uF#%eG6F_7}|o02?Ds*2CTzws%DLw|l5R3k6-M$;Wy? zFga9UIR5U$g|DsX@e(J#dIj)Ql|SnB=<3zmKRtG;B3K=gCkR3R^|OtNjRI%YgGrMX zX8!a&PN-Zw`9i$XdxAaUV7$*2yex0Y=;=)4l<8(Np2~-lHc$){FdI15w>~N*1+E!J zOY;kNoV8=DequiBUn~^ZmaZ@|mRD7BiQn5{XWcTzt$A%a|K9z-jI^7}Y}9z&8lc%hRY&J_M9saQ z4){^M-tYE5en5Q4{_^S4ec2el-5B2D{N~M`sOxwK+lR`@*Cq>wC)vv=PGbKzP;g@r zF!g@5pRI=L>;KP@eU88J0Yi(a7rjCv74+Ei!Ln@xwRSTmj$zi9`5){1d1<~5yR!8< zg7_i%HnGW#`XwK)f41zz__nqe&2#Pw`)81@9o;Cde-8H^JYyK3ml86|(6?G30B^Ae z)W^mfz%9apVjjmxf%O7qkWgiL`A2}nMLDpQvTM|U9CP;oObEVPul0_Aa0MAj7wC4Q zC&OD8>b}J1Y}+KBWV4gr4P+5N`iOoEzzIYEk(t)mTV>DyR&{@#2KP>VW0@&AfZB{^ z(k)2c>^`g4nSaneREldRvk$l4pZ$x>IMg5cXTV5Hj~MzJBux4c!M6Gv3&^|V&~}3# z@FjPmD3^epBD`wW{#fqhGy!JTub4L`qoxmg89Z+EI}2%|kv*x}c!^w43+i}!?PJ34 zy5DlNBjm)!ZcjM|xx*#-qIQu;! zpN~JR!6GzhW6>^ez9hL8i<7-1Fvs%>37>yX^eAdXlM>eq=5$x44zg%-%X*vc)+Vn} zs-g#X_YV}Y2_%(idI)7Z*(lLOOmel{ZT$91uBg1GN=DjT(*5*A?!^`XeNBvgOeK<_ zM4#UwA%0?cBF*S|uG;~DhLL{6Bxq6_PGbeT#YB2@V%XPid(r!->R;VN{L(& z9yEJMiOtAh0v39L`!8~OF@I9@8KvoIT)&vvL$D9YPTur&$+(|0`NQ>V1xTFC3S9KmSEOo^krnuv;LF)yCH{zN1 z7Wlik^yJldi8Ueq^wHb+a^jCjlZk1%ccmUA3PmSJ?!R}Lq`yF?3DnC7_d)!QSjp+* zL4UNCGjB948TKt%i~SWIh7%Wq0Ag*3Lt!{4@i}j(j0-h$Mqsqp5O0S;+lN3urM{vv z7h3uz#M;EqyQb=OA~8(XGZw&I-KtT$yyP_7W)DjAs!M=Qh zva!hq2X}!-#M#f4?kteddvSU=Q+p}@spgI;ZQvVEfwQKi+b{5w7w8Y(YtPxkk~}rc z-3OVCGd<;at*?`UM|CnCCH9}}yYBwX|B-_5$m2c?XuZrBEDrfeET#x@$V#@v%&f|{ z>!jUwHmoq*o;u4xWl?Gq?UIYnh){`uUvlc|3C2?xBlgCZ;Kgq|wKxMfI;0E=`a)b@ z;0opfUyH?7g(GEP{2!nLKFsKP0B$1*RPeH?je5<|bD~t2MfsjCI~+}q zEOMD}eUk9eb5e`KfMRf$~n$*Z|{2qG>(Jq55&jCmr>u;otL_oph2ikdu%TE@oquSW`Y{HNFl-7 zM6Ewke!6V_s^=(Nm_Uto&KDcoT#zOq)Hm02Zn%koRoz?1PTFq;-*$C&DCf6aG5BpI z4fj()D|joADf&fI09g~hJ|{QC5sG*=RlN`J!;g1?3~$soZr=OS3l8Ltzlk91clJ*q zM03P5$x93rEF^lVBTxNqPWk`7p=64gRDzz5W$^KR&yEK{uH<;~uOvjT#-vtJP6T6AlS;+?Sw9#0U+`tr!(xmVy)anC{#;KfVLX!Sv|{Ht@OQS5J1#=gS$H<1ut~ zzpjP;eP|w3MaWvivwIu^ZPotaevs9GVJhz}-6a&ZbTVUR{f^+?BYrajFT!B1_mbJ+ zi!VqqZ!voC&-LGPzUZ&JJ=#fsjP)&3_ZJaT@#M(n8?-N#rmsgJ8mUvzq1cx7j?^oe zaWPcp!UM-Dc+#~xOV%i2R&F?6HcHo0rdG#haP+Rye2s-_^gz*eW;712hyEs6TdQ+f zme54B_&o^J@6|g8Op>K6$G35 zP@%c;W|>+l2n+C2$iuXAOPH2GM+HyN)tUOv@HucEIY6eM8tQLE9|G7?Qe(Y6RH^F^ zsIpuHJ8I&(r=390WvuSmL{4WT$`AjJwS zHO8J@qJ18jP<%`XDBhAQ8(#ZK8|vmO>r9#Yx0nN$Qu1y~;w2Vz*%H~u+DAJNd#%@( zpK>~=dh2-M%ba_yZ#UC@eX%zW2b_Vz`gg?NzAfq&wwKL+ZCGz=@?!p4Fy3g;9gL2w zsY%&L=MQ@O^lpY!cCKa3zw22~{!XN$ z22ojH`*OnqvJc8LVLuE%ghOGiw0g@Iuik(Yvc1IrA?homs@mFck06rL-LdKJ6r|ad zbcZxZNFy!X-6h?Pbci&FfHcyLba!|s=Y03xG57_0Fkr2@=6dIodg)=fw)Kgd4L;%V zCjF6JU=rKm!JlgDJa<;zi0?xr%c0&Q)SHO#?=ZHunpGuzWgFWwa-L|sU zxM0@<+?mV+a#pCmtV%z(+{|@)K=xB@PrcP78z^gF*`2N`pEwK}%5t5D21ePOjJN}- z;17KqY^6`U2O#;2WepgBdw=DMpMtog@b5RzM$Sr};C1SIP+o-g+|GPzJA%hCD})Fd zD48X#(Dah!r5HuRemk6xVGwD@%W6Bc3gKv0(bS+;(joRi#ag0R6n<-ZzYJx|@TN9a z5!t#L_B4C={PGUFA0w>4CYL8%;>TW$k-hzEDZFZ_@5lKLl#4@jAJ*M(YCgm^+g*C- zoixiYY4zG9;BOoH9dEJr8t@~tf3v6e*e*inJ&){52$fh*ULEr0G<*w&{MiF(pRp%= zK_)!uBZBXu9pA+5oN#GHcW zmqBon=2b1me$ZUN&*V_3v05us={CKvo>2=mD}6wbS8g_|iT>9T2e3DX0_6B-Hv}r9 zjKH&W(|^Jxr(u(x^D2RFsiKj#vkepwA~^^}mpj|Fe#J3r9W0xP2VS~YI|AETZp-w^ z@$LOX4P^98%9+;Ibc)KEnS2g;1y&92K!crIRwg@K8w2OP@D!cv$Uo z$%w%~-^;JzCrAi%w3Krbdr8KdQM}7^1Np73gx>d8IC#yYwfhX#hi-VS9c=EvNV5h~ z#2Zuy$iXszg>*CN;ue$k?kQAqMZUGgd{DDEv4W(Ja8-i4xYw1~#}!wK1d`B67C4D@dbwCR z9To+v*F%kdnJ^bDhaVv$B!66(%{RX>xOj_m*Q!COrWp}lhHt#hE6sq> z6)eHNt%fQo2?_m_1K+)D+>2> zd)G!-rCs>^-PPYH;W<&!cA^WS(RU5{Z=Lj7uOV)xmm#J}a}bCtFonLidjaD|d~0u% zvoMnb-Pys*si{GS3xXRQK}>f>1qPrI9<*C`I6AsP>1^RGe6E@ps~vXfppYTr07y&< z@&By3g#kGW8q%?g^OyNJh568?F$0!T0-?$@(zJEifB9>?dIRMjH+ICeZ1z0lUy(YDc#VAw-Q?0mYc zmb4)P(Wv+zlwu3erTyYr?5z}rF0tunTzDg7h2K4RpMY@V2=v_pPB@U!YY~ADr2y`W z>%M30jGptj!aRl@rEKOX)#I?kO+vzIUtz6CDsEr$?(Uwy*jl z9}t5KA^WJIzK9fH6*f92^g0L|7~zRT+ZmPYOP@YTO<)L;_}0fP8f_<2c}a9*H0t)P zLeOeY$`TiMH}Z(i7YdfOeD;Z(R) z+~-$$Y`j6L!K`BLEZ&tFkGLrnP;Jgh>U+B-hdyS>IT=36+rWXI<8x4Ny7q@)1@G%q z#}#1+RL{imidfs^j9A~KZZgOE|CV1kgHqch=71vwsB|TJ+PB8d)Kbl+Ha2J`J5;)g zyVM#CU+*3_U^Bh@#7nG0=lJzw-hU5Ss20H3`C?P4TnyZ5`S~-c1*`r0&ZzJt&gkE+ zJC27M+OGm7FAo~huI;G+k+9vTcz8U^b26d)k2(5r^k~T9d)Sr;Bv#a_PRUoXQ zqr4Mhc)jZMo>D9LZ7>98H&^!@cp>IOXa2$a%FIJCn) z?YoEGFnbb*$QO7Rk;OOuaOG5=9wx;g`aTIC_g*LFk76>J!YW0ywn74-PQ{ejn@q^__+zB?$6>F-zF_ zJjUU!7OPjsvH#ssoznuDgz{;b{ z5(1+vUNKc5ROkNG!>g6;_xLXp_!O)^bUKXk=3*NR;ckqYRlUGX!nj~#TnHNk^`Ku% zo?U7#EZ6eL*=R7g$gsNT12I(G^qCXk<9@U6`K9;RYPC?fxw-RbCG(YsOy=o_U+t(E z7(|N(yc%lXjc>9T`=V=uQ3|qgLANYLhP}+b^tZv?Z5O#57f2=3S>9Fk+ z=x|XpJ(sVEPo{D4J!2&?mquQ27*w+xU#2?3lJcVNcjCfd>C#e`Hp~Eff)xqgaCqWm z{(>$k9zPGZ9KWV2dYFX$)VMTNXBt~6ZbH`U|LGNet30C}yD~;~R29@D0s+&YM1G+^ zB%8J8O-wtBM&g>xRm9h<7dkSEBF0QC0w$DK1e`xd)v*g1Co#G=0c!2{tU9imJ@qh< z?%of??z3!n24SZ2EeqL|I5b~HqfDpE)brex3iJS)XOng$zsx$BE2x1KU4OC}k1DSk zyGV$^0fM0I1phu52a#B(fd^9v%+)+~UN*0VFrJOa&l#Kt#G(9L$MLH%Gt7tYlpEn{ zQ}yH{pmLx{?UeTC3@(io`|f#Ij!e|3g2VV0?kO{AL{A@lN)*?zPpxD9@Ggv>zkXzu zUZ?!(miy-cxzp%N1rksQVDE!rf3JiuW0aD2nfjF}D3KS>?ql@S`OTyG&(Da$7`XJf zD*rg&KTK#cshKpI!;I_nj$}UEniW;PqmjU?a!@5@+JpVbw(^rdT7ruSrdXs{rh?ST z8!AuoK!ORyd%9G3H^l>aPk0td^Ei2@(tmx&UWaDiUB$SzCXlIO6BfVdhSVqo$6-&Z zmmPmdZ_}#qrq!pivb>Ldw@R;AzW+cQQ13k82JxslKeL;z60I3*yLy?9EYD6is-U6h zx@6}+mgP|JyhUz|w!t_3-G*Eo>l^QAsZDc*^4;Ef8m=cb2_IwI8Js)8@_ow2NcH&h zh0pcJr^KYq1!~-9@Z+q~<1h6<#Ml$reoUhLt2)`D78hJv!xyFt>qfcBr6%8g@9K z>-|?Dq*#>0D6pnNNEA~GT8=@cV!NcB9tkltt3`33PUsUjoYV znhVkEGL~vIdWU`4VJY7AHIGj)qPsD91Z24;(W#n3ME@9(HN;x6p!I>Y}o;k>mYpW0N2XsFO%MOb(Cl#h}`y;Uv+KRr#|y zlv1>a&46R(`D?TLyQ8!$U5&C(!T0TEn!+Rq95md)hSE;1uhJ^MHJ3hy0uzx6H;Q~p zDZ(BSepgePkkgRg(CoxP@O6TC(CqHrcq?02a0xuR^$@vAy+pyB#a=U=tO^`g^UvfX zEo~`iVs~L^A=BnddHs|H##@_>VOH^+612S6NtSab%#;oL1@Bs2aYUzodj7tH%usuf z(^jMVwHx0kAZ(^k6&H{>Dxh1-Ifb9o^qiy%_xUHTSGf27)cYi#H=erKg~h2G9xo&n zSY@+O{{{QS45oRQO|zWFv!~|YFSCf7>Dx((L=eFt9ST~4a3m>51I_{7P#-OHA0EQ? ze#LP0N5+@FI-G4@M?xYlx^{T73Rw%Z zT1oH-xKDxp(Kj%?{zbek=%V#^ZpahrdDZho$MW^>*4K{-r>SEu5Kc*GRfPL=rEiM+ zq(Dj@h<9H?Gr$trh~#`uE(&iF-MLGzbKl$BldvS_G)H-s&kJfQw~7d6fw1`)bC5 zq}8jiFn47~(&`Jmu%_5uuDTgRoM|zQl3xA3>U%ERil>oX2!=EVX?{5UI>r8EWf`@E z2k;`u@edPPyrY<`m$QEZjZQKpQ@-(sL)g6jETRQezmZB?O`&SlqH}?FWk|P1{S8dJ zKHNro!_DS|Hp9YyTzOb|;Y~a%#Fc+JiU8nIG7vijHZGQWW*)|_+lF2Play8`Bb-t1 zuG@uea_d{s*8h`x*CXjLeBm$=2{XJ8!82V@emFYv4aFha>2asmheh(_eK<8k;a^p$ z6)?-RRx}ULNUnchu&`{HE%Mq;-xKLe`?($l0B4=P2C6$9q3`$o{O(nZx-a5%JoYc^ zi_Q4kmuDMLl1+=(NHkv@IfLa>!&cH~=l8<*{*Ens{v)GYxU}+aO#U6I<0$k6hN$Sv zzJK!aLjN#W>;2@n(4R%~n&vjr=_%W9Z7ZSk^)giJ<<5u63q_)22+fg+M@cx>+$k-~ zEh<6foLrh*a`O39S*F`$w^VjibyTXl<6hAa7;Eb9Z@LMZLJ{F)CkiZqogzNR|6}K) zMzKrRviZ%)n!qItg~`XZL!PV~EvaIl zZ1=!Nr+Hdgh9s6x(1g<7v8+A^ROGAyq93~Mxy^fmpaW#%F|?_?1xGz6YE4{ zULMK%=ljTrP8-jZ#=0sT&CUhQdl#1~9ejk@#{cs3kmL9F+ zDR*>HF6d%wY88oPXP74X(FI%eu|JcuARXF*`JFKIyt1X^7KNRK!D*G4`OFf~B~-`a zaWvx8eqq!-El7{2MuZ3nh1JMO1v&{Q2M0t@PKuO2}qVPFh&(JY{dMOAGAvsR3Y)}M}rHr ztwcQ3c}?-_LA=XZN<-I3p&YWn>Nq7#DSfO<-NH{0zdnY$nHIPj8e8RYdvY7uQBVfU z!Og7@BoP`hcpB;xH>@0@^_sV6MGL;RPG)BjY0R@AGMl#gQ zDpxHjr3^Fm%cQL1{8jQ)J&=8+nKMyAD#uHYhKWT2XOTn)XP=nehQ>Q0s3-ZNkq!p5 z(7M>Unbjp_4`9QRI5{~Z#o5R5MMgeme&w2^w#wF7`7&G}o)3AxuoQu@HDR<(1+VoJ z#@B#VZ9KF3xmQaa%bQ%{o4`FX&dV5)V+8y%P3cZU9q=U3{8QT9afE>V_i{-x~jbWK^G5KDWSC|6O_qdOOQ zRGX>REoONeo1UK64GHYIK;azAd$MN}zAFj%r??9m^_Oc0!h$$0r4as3Qaf?##N4Yqh=km0hccXL6^%O8;t+&68_wlSnyTOBH2J zh!KKx)zlyxw3$rq?(Q7UgXjdF4~TUq=d2J$K~0vH8yNn*L8?e*8Iyon+IiwD`#%p| z$acgQBh>lO#TEetn%HoP%#gr+ z|LUDv0m)R^P^R%$?ziYLSTJMsDe2d^>n}X@{`%N{LsG2$?mmja!}a?!8^B`TWswPe zsu6DXIUAzgcl54VDIby$H*^bCB=fn+tZi@~K%`aj6e}WF`9IH%1q<()jC3LcxYQt)mX3Z9W{O_^9B!Xw} zx?hcxCXEB;OKonNIIpZw#N}d;Xl55Wj?1iLi71i5V+#Svu{t04NCcci{~QMbyU3r% z9vNVZMzgm2_&%@|z=4&8--%tOl<&O#OPL2nPTpSlc5+GD0f}E$Yc(^Zjtgq!2%Oe; zTQRZajR73k=mcP6c5MOJk$0*01vCkDecPxza6i+|(N*P!arXp>iW48Gw zbj!6}bB2YR^+#1L6pX_W)XZ-NY;?6LaH#uTy79ea)3?gF_R6A!Ys$;Y9EVm;^6U5B z$g6lEkY!X|PA4HqXBbDeNt{jm*i5w}GPU>2M_n_C3J7@rVP{_ANG3EF!Ae(KnSQGu z|6~KsxU!X+;t%1%s@AWf95zG6tQ+Z}VQU(|+Qnfh;?rg`KV){BW{Mis87ZZL&1C{R zmo1I&JN@SnA0mbmzOX_zMBa5YvgKkURWxGWmhqluf!cvrcVyme!Jndd6ric~esA43 zqImbX`+P$A^yuVgUh#%ojAoX;`W%2NATtbX4$Qz-QNG;P24a*ek{fE9_U9YQmuL5Z zpJ=2J9WjMPpW%6$b=c^KJD^hW$GZx-4+8C8+ygIs9!{l620(1Jj;b__xDkiz+t^-D zTo`IAz5Yl7RjNIe)JRlp8WZsZY?>E)r;rKerbXlFm+&ldLP0?yfqUJ6;isj|a>gV{ zfUGY%pI7dssu|T4C>3?ylwqgf4uQz)E#3`y{>-SGPgLzz+NA{DI7cD~aqc5$k(WL) zi7JR|)jwzn(zN5hSZy0m)l^HpneS#t%&lrKP}8tsNI~-*Odn&n4+ z#)aqU_m`A4papty!@V;R3KEPoq2m!KPh5Zwi2h5D_Olpo?FV6SkO_Un?3Ez7dv8**fWsoKzerWHcS>JLYl#C zZ6`qUj<4&+Bq)05Q$V+APYxRtfuew3%!tF`Gn*BeA%xhHJh|Jny_MS5_%Pijyt_aF z81Xg%(jE)!4EwPQIVCfVqdeDksMk!IHO`%m*+xI&z+{Dep^!_qss|3|FgIfmV~9 zzC_Q|dRN%nRiS6bXh!AzNtWL+s#nMyDzL$i`*oYzoRA1yR>pRl7T8JkC$P16Tz+`Y z{=W400Ij^x{h7*2?uM>OjmhG7vo%OJzuFdzymM@AEw-P#e`{V-Toy{D9*ir9w|qMT zuNf^px@=}Gaw4C51t)qjJ#o^$x;jjHdX|LlZcLm%=}neJBK~W75{l4Ge~CfO5xKPO zS^E-t;W+tx1uLtT@uHu9%5_u&fC8caMaYM1n zd8Kb){4+&X$^hO)L?a2O{G>#U$WyFJHeX@4>T-R|mez{EeSOS|T1p&;3BwUrmD9#1 z9Q)(Fgg1k!v0gy`ky}se+lr>$0gL2)y?x+z&Xy7{iSmsNmot< zOH7^z1t|f%Thb}9X|Ujn*{mj&{5UkaO@-S2T>$c~Mwq-`Pu)JTq0gZ49%XnwmgAIB+`d3t;vOFHr&GOLgX8`8&*`7WuNt3g|IX#& zON@{c-gr8z4{S2Bb{NY?n5|hLn@;veF>JpOQig>$X6O~$H0DBD44&?%?VP7oQ8#Ku zEcce`I7O2s%k=NpdE97eU(}0HDoxWSU^w%>7~#1+N!eCWiTYJDsJ@$0AIWrDXeN_X zOFF_RCs$Cv>NWzKwp5m(jn!92 zZuMyf`StaXR*sRvv^*ngitS|43hqX~SZzHuCfaO|G9*KIG?FrY8iF6(PdRMA+34gk z#SpB*l~U!2+XJB)cSwn~m^2$p%vM-(v!-m|mRbh9ut3b@=|UI?!}=f+6cqG&9&P#S z+UIu5<`;zWIR$Jj@R^K@ZOGUkrjcz_HQm-hn|5~L`u73{=U&A!&p zW)hE&UI0*RwE^Gqf4G4A+{PXe?Ho1&qV#$;D_DySAOpCh{IKwig2#1l3JS8JLUZ`3 z&!w5? z6hpTnDy6a;l}Yu_@|PAwB$}ls@Q5{a1>bKb7{`?=wG8#uS=0x&Qm5t5mBijw z(2d|3>LibUQ|TK9l6ffms}0WnXtqimGint?WeyzFA^rF-)7^9LijWczh>)et%*}%% zt(wG8k2Gv6&WRq2(xYWI_#S*rZ2EH?GE3y3+@k@t{c}n|(tk3jsm=DPdT+(>HJc@B zUq|B^ABO>3c}t6Xk;&N&mTB%OysWuKm7d3GkmHmxHqFKhq=eT2-4JjZM3! zvr^Uc)}jeI&<9}kI6y=CqwRp6W6c06pF>wg9yXKcoVs3MOS39XF# zgm=@f+^tO!fvaZMue-Vq2T|Yxn?bp)(zy~0KArv8gj`9VmV+t@>MzjgCrZ_o+riwp zPAry+KtpQexyb2)Tpvd)O=tfNJqlHfJ#WVE8T|*nq?PBnfzSi^D&YgX1JKp=fxL9T zg_g#klbhUCG^ZW-H?3dFA|LrQP}n`^MBQ9L*!s6t}dZUNP*>jc7cHFF|^*wX0ipcz^%;A$pxb^m^`So7LB zf94en+QTDm{~{oGNO)^7%$v>*-hUyn|rUqX*sAYJUGLbO6Sf0|+Z!xLSG^j4S5Q z0+9m?`%)?B=1rQ!7b)ZQa@gN$?SZ1)N+`grh|=uhB~tYC>`{VW=HjR8mpUfVWaQw!U_ytt$|U5P4Ja zY_2UE`YsfNS%r*QU3^$2F$Kk5^c37H$-fW{G{vQ(m+yZCUUm>VPvQjq!h#Ylr(Chr z2e7r7ZQNZllyzZfQ@y?Of`M{0Y)8P7c_YLYIffwiwud7HvIixgcSE}Cj6FFa3=)Di zL3dfYO+VlxBFO^V+N|j`IPpx&WXxLB67l5J-Qx-h%!n%28s$0r*Lcm#qih)=ZO{Q=ROP7^8N6z=~okHBtINB<1>=G?#x&*mY#P%VT6>+Ls?H?8$? z8)Kdl%eSU!>O`Hy-0j(4Vhm?&lfHzk*i1`(dEaeX_x^9zVG#@O7u)~F`(lNRA~BrI z!>+&%dp$qD&#A96#fW-8%OE5)t_GLbHfrIaAhcReriAcRIb8o?(;QiAzt2mc(ZGjRdqT(u{u_o^lL_z)0FjtiDILqN((qs_d(C8`M|`{uhN&2ky z^HS`)C)drFpF_d`t217c+9ffhb$YrZvUhQT6|&2<%zr)A<4ib4VS$CiCkF<6A)JpV z!mqElIe!x^#!82(2Ra9_;T-g{cjI=SYLdkk4WW_{T9FrtaRu!ozz_tgw)4XHg;=8d zOv%j!)VTi14f)X>gj|_E{}Kz90-sW%3{OTkD7I8_jYVhU1ZJIL^zZGCC-OO82s$aO zUu>m89^|uq_@%u^{9wR7iR92p7dL~-3UYH3a`6eUvzCiNs^aWZdDRkM{(<$*efP7+ z_VMZdSl1e{R1lj65&Av{r)**yeVF`PY0h>kC0Tx&G$u>0EDkBf>RQZ$tTm|}RJWua zuKh>Zk971B!n-Lgc(#~VPm4lvk@ED+b2NRrv$DUBMi^wfr$cM1>~#r=cHge0R$LXz zO1d{Brl`xo$wEt&k<^`;Sm!B%7G`ADqFtnXbtAX*8B8^BcOuv=N8Y4uk8$j|$(~j* zORcDL^hmsqEr=F|4!m+!g;mLTvJI7oP)@R2InK5*`gI0c#X&s`AX4}_gm;?pJ{ zUZ!&PL9s4E{DtkKOO(L?2kz!Xb8kMmmD6#;*TTFy*-`#2rI9uKvG-p1w9Wgcyw0+e zurG%IN+SyNH@?%l5UK{hK{z8cN`mh2?j=n5xd=^kN*pjp`q~pwUQ`eftJmUK*ia8Y1#befH(Rr2TLQlSSrkqOx8`0Nf98Gk+3{V4zsGns~ALfKjl6+sw6jv5ZXaLR@ zLiGm$N=61|kKeVHUL4_3-Y>L{s)FAqT!^j4W2?47`ej-{VbLIoW>nLM4XjAC4GCd+0U9dU%-I#M^C+Zv zpl7Z90EPI~gv6Ho(@lCtBOuE6E)ZIQHphZ%Bur69NldlqJD6b^65H^*-YUV=%q)mF zBBhN}kZ9KhCP0{CwToo;<&MMs)nNm1$T)Eb-k)NC$IYlLAvU}VO*f!qpa??|tDtma zUz{6%b^qCu1Gh9u#!<{DJ{BTQ@;ON(bOtHVl$m?KJa%Q=`9;~BWkpjTe`q?xpQNPJ zbu-BzH8E$kwF&HF`C8QT`7Aa3LtVno^H*+Vv7%B|D;y*pGLqVHa7>LBs+_?gYXf!6>90(!nH8Wsw4>^t+3PPH|-%;Lw_|$nyr$q|Q5J_gm6Y$2qQI zn}qtSwk~wcnvuZ$keacna691QezLHxeGp%=0jCbfxa^&N?x1Q~dVHC`aZ-3(5xK5` z0f=!E`vy}na7)k3*)x}C+rmC=!W%u}tgP|p?#(*uzZ)LK>CjxQNdrVMj9f+l`f?Vs z6dwog4-t#(K9$Tv4&*@a{@ zDiMj3&=FyA0s}57Gxbu@X_nUNK=UW(*tH$kz?vjLB`f&FWcc2uN`&FqbHO`tV_`lY zogpt2f1?nlhlfhNXuJvain2$YrzBd8ORcWr3J>P1#P#(kDxlo_kVNneXYQ}Gryx@q zy^02OV5Y^f->7nPu}Aj@&Ok#_{+$IhV{fIf&?ZTPpf5f}gK}4eh1rpJ&`JCK+LGdL zJ~Ss-vPy_NY&Yn?o?{re8cfM;>6Bqy(b$Ob`V(JNgT$_$mBpPeHK!FCg;Ar$icI~L6Dy0Z54>z2`q`S7VdHwjZ%?DPD{}`RTcX?ni4_i$y(B(K&ij90T zD2cH4b2mMZ2xCoppKyB`RX1Fzxc23S5M=EP{=n9}bDPAg%k&KwKeBdl zbAwl_91`qVAw?VLwhWB&(iDLLIgdp5;w74)Sp>Vg@pg$ z{rN<|ar7C5-(4yF!J)+Pi47vB$WNy#b(l>baVGUBLa*7GImA8@SCYdDp_!hD;$S}0XGrZYd{>QG`OHL%wcGAoVTAM1j6&<>0rir{1;@UCOPni-fNa|pNul?E zqSS7l3rVE^7SEx8%)(X4F(j+idD?1Vbg58v$4)9^REMqF+oiuzzfgQ&R6ug!i?_#c z7ZqxB}@W21d1%)yv$Qv^5rn@xP4=)-DSddayg8WQP=J@Ga ziPq}_D*d+0smCVHyMu}RV&z%gft6Z0HyP#OGx<%no-b6WROFlljz-?U9Vi4s;b>uMkCV#!dYzINs>5+k{d;N6RgZU`5Bf zjP>#pKl){R3dDkO`*ozC4QjRCl8ZMDld$^+)FhwL~)BQHcYa^Mn zJpCeu4eZlVQ8-$~jiO(`1xXj`~E$B$sCh4 z(hgL4>)25#;(Y6b$Cv%O_%VGUU-zqs)5lb9k_>anh6c>PyfKKm=9RB&6b0F~YaN)C zUTDu6TlFALw^ z{zMnU<{cvQeK_rye=hB0kkI$J-4Z<~5p%x3U-`=d&Ztx9#db<=J+FDE1T82LTv4># zX7$}l1D;Lebsr?3n+>&_?Q`Y72>o`_wYlDi5t$*x>(@!CDf_qL$#lNn>KWg3KcdCm zs1Y@sHSo0kJ_`fG;TTTok=*86FYTkWdEhK4(gpa>5=tJ&g!oqW4^wnmt>^LabH=_j z-QH-&bG1F`$Ui}vLf+)FPOmsutIf3%=zH{8IxbXpr^{2+Gl&;G_A3Px5`RsFA(1@4 zWPVN9gpHu~r6;G;luC7Rjc7^DX|$0imOE+hJEzk;apiX?D;0Ye7=0LBxGe1_s~SC2 z`iOU7RLwbCEHj%aPR&~RHBrqr;Wf44kG<}eGwX5Mx;C#U(}GRem;S<9mQLF z|F76~LvOpSnEH(Z*jFzD=OVuy3gxC6-|iM?&&+b6YlZNP+Om(*s}_~yz>LRFk!*TO zQG`i?nkI4Fd(zTbfoe?TfPbKN0QSZN<(BavfooAG{2iuIWbb#2bQlHN{IE1u_B-lK zZ*`3%x%&#(&Cj?yGKxBa`Bf^7Nma4k;R^9_@w5Ty@8U;)hsdbAOdBkCB$u%*1ksJw zQdJj>!t;G0jC9gl@Ra>m`yk`>Io2(=dpWM3`ir9i2iRXER!yb(#sTR%3}~vnEfC)u zgN=hz`raLs)oC+dzse(=C!b<$3_(DAfvLK9FZKp>+q^7cZgw~NxT9{9%Z?8Mzf{Lj zj0qOg=0-_-p5Zjgay&kbih(&+;9p)s?OwP#Tu`U$bri?vu}R%-M8R3+n%}VZpT&Y% z2Po@QVc54d^qy}Z(nc5u3hU>Bo{_a+oT=aHjQHmUlIvGK>NR=XUM`3~F56nab}h zL%JvDO+$8(d3xb&#wiA|FX_V!wfrv?h$`HWvqsG_(tRpi6fvr2e7xvYwDoDMBX9?= z1q~DQafl#eD;ifrg32CS#LTLJ(jKwD><03;rjF6qGaG1`$sfA5{T6HCXxCW^b)nPD@O|T)o9Q+$b9-%lzV(pt z*J`?-)RWj=?u+9tmWHj(d%D@yE~TnkSbvCK8o(HJ2WzUq$xCYv?H>sa;?w7|r)r@2 z>yYVk&3zt}E!jP}1ZR1%#9l0oXJAS_Vew*jQksK03V+_KdetKELC@wPU zc?~r+nKWf2B;*EcLTcY@J9;L%UqxnSW_N5aiY#M1>H$?V>yZc&FkOg@NqUtp!u+qU zTrE{qRG6rP%qEuILL(1vQZpA%ML5cCVJ9YiBh^w02}~-cuKtwQ7f9SQvLPkAWcCY8 z9rN^Ss%e=L2k%*j z_U+nI$aFY9m;ZOEB2eUp!atABfuCUUNbD}iJpSbF83)$-0d5Ee9gl)1czAonyvion znfkJD2;g&66tYL1f1m0;of?<(w1}n#J^SHjFrfnEB?N`8p~{o5|5S8wNPMGS@nW`~ zePZa$tr&)TJZyf_7+%FlIw3`D$kYF!^k_P7}+t5#}6lbQ4>K?|IWk3qu( ze%ZUm$8U1D-cJojzJ1|jn;>8~r5e|lI>ToLGMwy7YeKw) zEZJj*IU9G|8Pxq+KCw|!EBjHxjkZf=-W&KDm3s7`K|P6yw{ZZEAsSJY7)$I^MZbgh zU8&9QI_+%b6QO@0MUaU1~ zt72rks(pP+Q05&!TM<-HRIoRvGP#<_)oo_P+Tl`p3Ge6lrnlJ?fgMD-3PJi@sL-$*0IoLxn0uraIqA|L|eOseIzBhQipIL zk$K6}SyPi*FLBO785-x+aASRIHbU5eV4P_mP=t@%=rqyaBBNYq<<$L|<^NvCTub?X zS134zJ4{w(-FljWVk?2yeWO`|){PXsBMZZ`K}-s=seuT$&+(6<@FWnRv;18DVOlmp z4lBOqEmy#kCCj0t!Y7sNG)4!&7T-bSQmXXL21dQ0P=&Z3;f}vsOhS;{erx|;fAeUlrgED5_Pz)l(N0^2e*B2Ph?Iw(7Rty1Y)-ZGksNKKv2tOmB{eOL zTIA^@04ZuDz2O(FovY1&4+AwL=j5L@HJ(aCR$B_!?H#%5<&J{-W;KEO$C5v6%sE8EWJ9sYMjOOS{;x!=bt3io#f(T1IF+K1!DB@+ z1TWU&dc3Uv1SX;ny&dmu=4wQ#lwJ4D({&L_(f+-BzuVl7(*rB)6-P68-|fJ%TTMWg zP;<$%KdmFSY{tvggUr*a1Uy5p@ef-gnfy+hz`HqlMVBhAPY!;ZxL6~?J1$N6ND_&%Pnmk+@S{j~M^55@h(k|ydK zn?N7GNWQ65*W;q-UhlgrRU_8EKWNzrMm?y>e(=QP_h`g)hx1J-(OCi?bepLc>TRi} z)u$)g-JJ-8jhj&jg|zOj_h~ykuH&|u)8&qZI|}8RSSBXt$nNmHR>^ng8@{qDW^Znq z%B?)!4Sn{z-^WMg7LItlyH25iM@s^WX?Qi@m0Y&>oyU(T{`%mtG;h6;PdW+jvlTlsW`C)pb{S}u3v>yi-|MY?ys zxQB))W;Fh46XC^Fr*({yAUIULp{ zxWj*D@^ikInf3RFaeus=?E{f>pv$^KM{G|q0h5M843$J+N(a+LQEUw@X%5GDb>-=b zcXzHfe-RM!9H0P@f43lki;3x_D63M;BZ=oh?HNeA*yBkZn0%QVZy^Gbb{J~j6Cnhl zC;Zdz=Yr3A*X@xAx&hwKuK50aY>@b=#AO-@`DPzNb_vr>)ysZ4Ibz-L52B2wtLxg^Zk>XetG9}2kaK?n#4;uEr{w9~ZbQ5Rf}CL{&$AGtXj zLp~wSQr#WRRJH}H+K$6qW)*-Hxh{7KbybXZK3r4>=`#6`6cRRyu8p;evK*Y8QMCl# z_;81{)r*Vm>9yjfHnvkHOh9|4c1-1M}Y*N@@+FeJ# zduzyJAN*W3$iVOo6dp0W56+`7frLecf0XhQL_fcB91%eNDY!7#XJ9b~yW>%9{4kd3 zR^L>tBX%^7RLWnAH5U~XX)}u{nO(j6-#h&^b@KoFUy&qI+nscc%=byve2mAZNlk4KBq>o35IaRSz)@W041lq2x3{g6aC(Hk?yU-47wHhkEkH=Tc}i)U$Q@8yA5ZubfWKL>aJJ(n|B z<0V(Oy~RUl*EESY+YQTYqv;N7xG=DXXoodFteIO8a!91G4;J`^cjgW~P2nPcQe*1Rq^T4s;Eg zv7b_wF0Jxc(~>Eblz~`c0&Qz^US6Kg+B;kFi|0&jfT?F|al2RmAIeN-$zYg$`6b-# zRr}k{!5F-7puUw(n0l3;YXUh9z7=17dh;>d#&u~~IpVVC(7@t;n1 z5qe1oS>c!F%d#fE{eR<*$45;NYnHV`%xrdSun?}F0{pz;@A3z#W=qEn-*^AU`oGs5 zUN6B-_`z32MaOPh0zNcb_3tU_Qas|IxUaDOQq@p*WlGljk>_K4L20~Dr;Y#T_9%n^ zr2SgWt~;~gWbMj*MF)pkZi|ULNo4D)qqkZp5_CYN960dbe)2hadul;Gj=AP@@TKJ% z^@Ql=d3QPUuWuDknK{{q3ys6?L>>#WJF*1bWQ~;L8udGkI&2nN)t%n>*VSMUT2vvA zoivV5opu7pnltCkeW=7Bd){IMyg_xM^E|qkq`}Lyv@`{VK*lpme;_2@O`OW=A^l=9 z0!On;k^r(I;tmcDV)?P+Ivq~e`({*nJ}VJeovfi18}d!X=I~&T<5O7?Up+*lJp_Cc z?*1~%v-U9lnFshglBPSWl1blq4pQ`>#(`kRp`!;c?T0Nq4*Or^r}vYaUvJN;x%-Ok ze&j7lPPBN#|893ruvuwTr^yn8vMLUD-m@HtsI|`*zMSK!*r*A=2ZXWAe^3BIm=O9P zK()Rb1WCNAcCwC$hj5K{inKXf(trKZq4Uklscsu32$uaz*Uc!tZz$74XXoHO>yo@O z5Oolyfe9e(jc20}5MMijaFgm9L zm`_i|JPU4~L&oc~V}$Pp(~-#_>3uh1ry$wWYT>@mBoGplpnRiUpgiCv#SBH%jthu`=D zqwf7U-q}jiN^->kG3cbL+}4%E*JACMmb1Sg)Xm{sx7)vj$I!`{GEgnF9jQpZO8k#R z>)!$3#k5$r$yo!|pKu!q`=e9B*ws1Ta)H0WBmy-d5Bs^uW*d0}TwHrr187khY}J4% z&4=G@_R+lwZ9i)oHofudsBG|z4#)#Sr`}{x4*>$LBp51zqPQFu_h>i_i}n?BZv88< zJ#iJ}1baBKp8b?y`z#2$4B7jv!~Y+${yM6vt^WgsMLQLbNxncC= z@l~02jqw)twsDJMY3bQrSN=eKyO3L064yw1Kz*q={|MH9ak%>JpXCl6DL1+10~6lk z*tRKX7$?uU8x0Iz+{IUcBqPGyiV#3z!It3Ji!A=bz}gjENaXCMQbKrkpg)NZ3F1FO!9?#qceB{ z2@dOuzAHbywBH20FF!>~>>&qGb$8c}@C}w=Db)2y5uq7|AFchm@~=!_@!3VY3nY(> z68+icjkZ1Cm__2#9mi(3;5O^~?XHJl5nUP}8U!VR$@oOD30Xx-N=owGBk+4JR84*^ zcf7yaHt%EYjZ|)2hbJf|zi9QCyjj_}K^~I+d=-mw8Ay9dCi{1R=6|^iqVn|5hmzaI zlIz3ex`{+00{YI@yVE1&8slwMHv7%2NqzV8DBsvpYSQv-_0bB+6fPaUI$OKHO2iZM zwm)A~$l1jB{3H`oI(@21c^2Za9_JjAQs28x@*3oa88#s0zx}KAYk1rq0LE}glLz#Bv#;Uj1r28yDmTT9DFB5$I@AW%Zc6)w38 zuH_qu50Fw7`kgTY49!Yh^gOonIX%!Yu;1JNzoLCH@Vt&syFyQ}`(qxU$ZzkJz<&>Zx(Pgx zXJSpdZa;X{h5ZF3MAYM;{)^8{os>`15gJho?pvSYKYpd@=E8Uapj5cgENK(jdKi|N z7mH`nyaQBpg;H$JP2@Om+eL zF^ITH32~N##($pRq4so6T8)RgUw+?K(NLxbvy7DRa2dRbJwYrElM>eQ5)RQ)k@&KT zl6W<&MysI+WqXc4mr92T10^zRG1%8JPiz9|l2u&{B3*wI!?a5ygDo`G^@~MvexwAn zn?(LA;YchM(C`sCL#U$f)Iy&@A9n;Mp96tq}Ba>#b zu%~9mZr1uN0=?`V8)EQxZlD4tLA)@?PCy=|}P5?pJ6tqZre zU0eJb%ocqb50)�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%0D0lrn#^O*<7;8uc*19J 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 RccC*NRr3iXbTOjt7Uci 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
H#2-&I|lpjy9bES^$lBY5}5+ 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

%`sd#=Zh}u!eUMp8OlW~6CgjP(>T~VuK*{eHD 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

4S<1=?7AV*RCc2AUlxE;3XylGowXS8Z85( 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%0DrnB{(p(^oqHYqD3j-~U@(A&jZH7P*f==>5~QTi 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 L`(cIRpTYkJgbnpI diff --git a/img/eShopOnContainers_Architecture_Diagram_old.png b/img/eShopOnContainers_Architecture_Diagram_old.png deleted file mode 100644 index 5a45657dcb511dfea3b50324b6c476099dd77b08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437646 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%0D{PU=tpKv< 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

A7gzpQ#SWy^)veK>yAQ*))Jy}ECAJ3U+( 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 UAIGM#_p%Xw9c&ZF6p*ZZ)rl6(GzG& z)_)@kFpCZqGmT{P znu{VkhxBY+m%JS66e~K&rKvr;HL6)&o~`le+nqi_=1kvS%uj>P19yxb(Lwk=#N9+Q zeEs^Wei}~jbnCF^K9PyFy~7?b_davKAkj(KxlBbY6Tm)hKV4g>$#hI9sbe#>D1W^+ zI|!}@9VvAU!B50(0H)|7B!^6yJzrASGqq;IMhd^l9PZ%u%P-}l2ie|RcztY*9MGwp zQhreO8nE;D9BxIoEMGiZr4#SAQbghZ+-iH%DZ0YdZxfYu$z1uPnn^ouICR9fx9!xa zPxbg>R_v(3pZYQ+qU=#&*mT-%DDHMGyJGICck(BGvLE>coBHqUo}`t8wWI-U-rrS& zF!R@>S^wB+|9fQbM@6na@|~759uvS(5Nfk<_NBlbL;`Us(AW6FBn)90&g>*dPOP&^ zNRPlW&yjjUA`AHJwv~hw89lM-W%H7=I&V^q*$?jB(~eNxiOJ}VQ`L<9y7U%3F(vig zx;Eb^Q>c@%~-;ZdK~LHHwsTu``#G|^%|cA@QzUz#>nTn5DGo}zJib2wSJC7 zO)_27+YBb}@Z4S$I`6%n^S;qU(t4qRrS9l~|4xKd*`S#JY2m+E<-=tPndig22jxg92 z3xW)p>x9P;SMSy%-UOf}%{D8)4i`mI&(PXMy0p|dIi2i}5(i5@+4sOhy*`Ve2Dv9^=oJ*7iG!^R*QDV z<~JgBMLh_PE}W}#RV9YRJVF|-vkIOoR*r%^)%H(b5aYRK0{-FcSRClt!;LdV-#n&^ zfb{^(O<@A2)(LcDs!J{}3E=A88?er7B_{)}V~|&+&P3@DjX7a~ulPv?&ly>7OgVPH zrN*ggbsm**$V_H(ScH+@T8|MRI`^SMnQLQDDe|mNlD`VXUJYq|5Ls605?xVogxOho zGVfJwxFATXEtgiS&6g~TU;H{+GN@*;>EpSm#*(62?d+K95<>RF(>)|TPJJ&VjD@bL zvb}zZq8uAk8EWxL<7dKdy_^&`XyCn5hbb!7U4)qz4FWUp(i-B;2pndO{2Xxo{5;w>>yF4x&qgv}5t?wUG^!%tt+FhJ4#G zs)kwu@eXrrp^Z27qat4re898UPQtU__MoC8{fUd&dW?mq(8{dN)?Z6YeN!F42GnMh4@zKa(Rfoc;9#O8kCy6@&zwCZE0~ zEbP^Rt)3;Bf7%!sW>?Uh+^*##h7LR-wdm}N@&Bfd+gbC}5kHBDcco(pwr7s<%*fsa ze8h%HrhKgl`yzVMJ+%ORyHbSrjCrwwOT(v0h~EHDKhZIu|Lsg6So$d}W!UeMaEICm z^hBwRqfuzXLE-zjC}@imm{`I^;e!M$?2l_+P_8Tx7d`)YHYQjP#hToD%=-QE@ex+y z`YE;Gd1wt33jqE5Jzh4c!!O%c?j3DZgAMDMK54in+^tAcEqYVZ5mO#z&dpc_NHqTR zxXd%Cp=Yznf21Gd4YirPpSPl8IZt@crPuq zJ5Tz8f{k?(zjoD2LleUq=in= zqyx`+H7F%%Db9xF@8r>44xv5H^RK3sht+hHZY&eVOQl>f&U#0+-wW=h86CnMyv$d# zq2AU8X!z1ygiq zJ!lK}0C$J*Q>G?{xPWv7dD-YGUY*J*$Kx80cCZo8G=r^mIZopCVm?RU7w%QTwIE6( zgCe-dd6NG5WJH$TVTmxGbZ zc!FXUtF@MHl%t&G%02SimpzlwW_3yo&&V&I7BVRXz5lXc=}Dv}i|nX!p=3UDc={Uq zs^siT0zK%Fs1)8!o$o5H(4imbZGwy&VN$ay?+94+y9g|M|1zRp1GM*1PFx zL5fZ|FYE_|YyeA4;?*Y(>C=X8XFTv#l>b&DWB~nzMCXrJBd4j%0fOMLDmO*tJ5{0m zW=RYQs!K=o?m3Ocs3tLn-UNecOCYkrClW{(*aX8#hUI$c+_m(FM8Rsm(E+Bj$)g&+ z6`eJ_#i&f9g}$u)pqNaaW{bV3M*SvhK5KrXaJZV)51kI;R5p?z%H3II*q2fY0xJmW z-s6<6X$W;|@SyjWHl%0XCSp~&2kF&{*o=jM4%+9L;!+7ud-o-&nC8pGZhEw;uS1Lo ziDfXD5=nAi0nl_7W_OYSA`-$eyNnCk(1e=AVVm&igGKF57kOW?hAjlyM&$PO&KhNQ z7HMc27XlL!ui~%gbuz38d#>=%V!il{)jsN%mudW@NcJsya;;0Bu6@7`{Z97rUuVO4 zZ%fHRQ9v5dBYX*2`bk#*Yoh=KJ2)9rsR`!ytis-Vt%>+@^7STAcZooNKjCg@M~Rl;A*>n5XOQm7l|X?E5($%$Uxe>iq3}GN;GYD1Upm4!3R#0dM>c$4>C(;KR)iD4 zkfwH&(|p8Y@!ii3&uEpnJQ8!{FEPXUMb#?AFee#PsC2={0=#lf4k5 zu=AcGF%zDZ>MwjcN6ye*USkgfrx@y-I8!PFa-8R0z?D*wlcNYf-G^v{Wcn|w$$PMd zijt)gEU}jt`CnD{6GNI1l?c%ei9*YnLK_P}vDL=h_J$(_8eXVy-UR=y1va*)Q1n1X zT;qdB`m5bRJ2vP*I$3hJKF0ZE%>x-prXT^0FtzaF3L$8vPO@vUWNM&KsnM zZzjf79nK?a6>Jnkl?oNE<1n{Jv9x!=2$niw;D}G4TcF3jy4QzG9ii@ey~K>jz2z#S%=i#? zi*-nuN*(WZt?@p4p!1y8CeDxAFi)mz3Y2-&kbPM*E}RF|rG zx))b6E+^cAoC_>h#tBg%B~uJML=X+QZJu$6p@ zgO~Z@{32eU({CIk-4vZWjB#oNzRU8oJ@;!D1*e#b2Tq4=P8u;ISrmfGFS0`t&J>8o zmMs#4@W3ldz9)(yiZNfg%vlc2a@<_>>qm2p&-S`=MUjFdV^o<2W*xzQ7VTgNt@H%OTdLcNcR8a1W0Xm zzM)2~^_Fld_Az(|Fo4VPbI<|2mMq@^*USC!Tr$(sRMQ#^Z5=QiQvL?S>7<A4 zY2PVwbLVxQhsZs=MyN@g;wvr)Z?g8*9-S6Uo?gtL1*5j{J?mKKS>M#tn99!yBLQB3 z7|$%4*Q0f$u{n`$?$A(S;Nii!;lYaJb zwnF=r^cIO-V<29n?>!+PHE{Hk|JDWpiUx9kq{70X2>n>p&95ho;3zTYvOPt2IaGSQh`KHFwD_d0aknXRFj)k}Ffjsn{oHEIug zbT54kcNtoeo|C-AHWuZic%L*=@WO(%jSZIne5X}abvrmF7b{|iIx2(T0nz<}!0J~C zizEn}uFVTPvZHVO13=d=^Ce`GhbFQ-OBk2B$F<4ld^q|jCYvxeS|GkJxPZ>t<<8bP zgEZ27zR*S6P`dAI0Q##3R%kP#>#i21Y;64SWcvq^L2ZF*%yz_@BT)pzG5ph@bMI+{ z;{HNrL}ZjwX_`YK30*W%|6vPjt5nsX#@C4A`)h1$%%Ie;A5NibXS)btN#YxeZ=(WC z7!;@defb^0ZNGxU_v5*ozp+?@<2=5@Y?BHMKW9|!le)J!MuemyfX=? zH1g0y&bJj9DT+V)CdtH8Mgn zMCf=^c-0i{b8J_IN|B-!mON&%X}L6wmk_u=da!R&<*I?&6O&N*IxhMtUFNi}bm3e? zw{xezo1VUN$phkVn5J;xq%xN?qE>H8ePM-6j;tO+!OUO@9HuH`Ab}+jYUMoKi)gWk zw&tjjO7ZJ*lQH-rYRCMf)s3ZO&?H`|;>XGdSg+^lqpJow3F_e2;enCCGi93oGqTNz zc`7}~=+$(-IIN*?Nayx=uV8`saT!J68X0C}+u)|dqK^nz5+Al%;B)Z?V8W?*lg}uB zEO4{(3JHfYiZW9l3YtJ$)xo~c2#T>jmRd1Cu6-!~wWm{kU3l^tHWakEkHL)M7QpZd&Bn(cb5TekbFG@oX?Jt}~h*+C}De zI1wcw-r~xiYal@|Qkg3tLNHRD8E>N}{Z?Us9(Ef_V7WinUUTfS)fy!A?=E2t$Z!iL z*{9dxHs#7y1SDy8*%=!~TrZ1eLaLccgbwP90*QjMfT`p%ZlLn^=Z5|}x<2&&qf_fM z6D9BOBuUK43Yjp)LgrGxM>?7#Gsn^67mhKp(<`AR?;JRd+vo`vWpMx)hDtw*+1{uL z&4`@b@}`j4o_`@G7P?*I{-a3$5N`CAw+k08+I?m1~cz4pFmPpRw60PPeyYu&IU%D2Rv8^^F}eIjD_g|2`hP3 zrw~q&Kzz?9BTMJqL6N!EIi6otuL@zI+8GV}^hFG@(CJN+N6zlF zj(lpQ*HdWkVJa(Olk<;|KlF`T#p#PmJfOwz?#FaV;p^yeEFbaoUKPzd!46;jYY|wx$RSiTJWU)!=F~l1xs@<;-Kr4q)O0n;-2M)SbnQPd z79Vg}Xg`^LGX{^(JNq0#c8W(nHQy%&V5cngTLT|D`up>de-6TK&kLe)@uDT2rSKRq zy`G&o+x&$#6K7a@d2qS`E$kFYk%?uNTL%qA%F5xDEvnEa=dOq&o?h9xORExy_pHO_ zf@QS? z{Gvdk`8sGCg#=BXT?9-^oSW~M9$@Ag3*lU+k9@r)b8~T?l$Pdmf0VcWH7``*cb%P0 zxYp_G`{~|9|Wc{t#@wYW~Bs#`{-bI|@YyidN_=I^Pm9bAoI3mXS$6@PzjQNVB3m zU-m?Ka2h;|2o<(jU0HrlNIgrAg_Vd*&Iwyf5nuadwVEikr}FjNV@^ZkV77RHZ>g3l z7PiWil3vm@K~ft*qjfhwG4bvm4!=3>wxv7tQvB$psOZX(O>!km=>>K6KZBNvU(D%v zUmqADWu-|}WW5Q*aQCBcO=eerY_l)*5G;HfN?(83n{fX`El#=G(VS975TltF($~^O zm4UJqE#Xz~QBqhzI9c(AEzrN6ZT5sk%=SF;F%iS$^|K+&hb@e1Q{1);0xTn>9mly1}38d<-%9J zDwc91xF>t_GzLF^!r{ne+{#74d%Iw%{O1Erw)5q5%rn~Y*Q&s=1@?vMA%7I$`Fd@~ zG5G`}%z>~>q&yUpo@&t!#WF-Q^&cYHfcfh{y^QJZ&l)jQlK1D^dkg&(NyiG?86We~ zc3Kt+a&n;&*`+U?+(r|+nlr8WpIK??5cmrHJRQAgJ*HL23xkcA1Sd53Wdk^?f(yUM zlh5HqNi5$_TL_rcl8MGnB|{W7Ryc>05mzjisX38GQP_5TJ zl&0FM%H8*+^dlZ}5|C|PA}!bnH|1r}TC99qpFM(O(;1gb0E+L9qd3Ji3}3T@EO%Pw zS$um(fj~v^!CNg!`eZxkhpI_uX|&iujqf%58#M$d;GUd_LxjR60W*3K8Tbl;iJ{(m z8)2zhxO_4Wm0^z#&@9l#rg#3aTDmk+OF~F9ONU6TMdqYMWlxYQ_Odcdmq^XHM}502 z$U$^yJ`{19CE9>0E@wL;#MO;?g5rs$ykFA}1GibXf;5A9mq6uvhOAyhL2p2aZb*9*w8m%m@%eK?Z!CPyvme&1M*7wI^pU2_d7)$PwGcnh5rDnR>N7t%kY-)C zetDcWq~GGq1b{k<>18zt&42UjM_>0?Ype!qPM3uHbfp4?=dJsJo)ZFA6Inskj@n)S z(>(rt%q{i(LF!VI{?QjHDKCVwU@$iL(TME3qFE$K7TV;w_m)5{w~A+1x4nG&#Orqz`_9}>b!a;{cb<7v)^vhsmdfW)P<8(YnFPqMz{V4DvNs8& z=4F^T(O?+qonbS+l5JL#Y8*0VFyjokaAVI)MeX)+EUlmgB!0+_sWK;0jf($8h=oHJBn?Guv<`7%7GXS& za1ugR_yMTimni_rnw{fCpjD82HZhRxyS%|C2VZ&|=K=vC`v*CCa&ZGCdSxp(k{LES^5k;Ivx^?T~>F3@R(yGk+^0 z87;9S{SfZicUeita>szs7O!}NI~+$iAZXqqhvLggPYXVV+C+a=%uY`X#!0eBNF9He zj!PBBMgR)tIHoY)_$D!3>&<`m*)%FZiKp1E+wYe}Z3pqgDT?LRST=8$al?)dA39S` zgZDOi{NKK!TBlXQZaczj-G<)-ry^+j=%N#R{_=QGs>beWS6^@!V+|MHE0KAKIkfvW z;?`ig?iCI>KOmpXn^+CUV*Z0;`2Q1v2?%teTm%&&6A=N4R*WAMw>m?Ho#hC~g==lF zut{KKb|xYC*f0)F0MP;;Q5o0#sAPwPp)v~H!EzWXv3pCf0i1MLhr5ZhmFUVPq2}K4 z&h8Q7I2#@)vyi^*SRk`UaFy{%vNtPjXVi~!uQ=JxHa?i?YnG3WyOWF73sQi2ZWOp( zlOMUgJQvNFkite^H7qdM?q=dg`CIiiC_k~j?~5O&Vy(xqcJ@S3?}>DqQeJe+P8xEo zRHCgkH-3$u55c0{z{W=|h}b2h(ek)O4{|z{wdL4~+@gP6M1Q(V|jucB*fK+j~ zS8v2b6_V{}%+fNE{0CYmvy{1_CxNkV|0C8uFQq!weU;fKTT$}B?NVHrE+APaA)R|B zag44NB>X6F?dhC&hisH%H|dm_2gz{vfndmq(c6TA?Hr$-e%t+SQYMOO58nyEXx$2K zGoq+^6@aPMMaP7dOi1h|0XE#gKJ{Gh+XuR+YR!?TGA#}2%quWx&n0ZT)bvJ#SgxB* z%gIY<-_H9^o`>!@yGeyz2Cql9_^%*ZgLiYA0tI)2FCJO_c+(QJs!e;l^U(j|SG>2? zwMseX8^tX+#Z=KF-tFzBr`2r%jAYnZS?GuzmaEaAOID?2fFv3&+nH24Bb76nUKd zv?cSxH*^QlY(#dVN4onCl{Ywl^Kc&@KD+VKqba6h0^vRkZ9x-9RIMYyeoZ`e) zgD5OcC|VVl7Cw(AN74Z&P@57Cr=64bqE2r$<0FNin zBZ5b6M=f`{Ik$?Ram}wJDi@(ySuqPd#*)ASVy{u^ioKVq;tj7atGj}-1#=%h-Mfd? z9rtM_owq`pAz#Lf1bQMW_FzAY^jNH>$zc;Exkq=heopsHl@gn7HvC}c*CXd$^&{eY z?>-yAwa$LAn&TOLBscXs^hvswyAfl#%dy;bBIt)Qt=;JGDy*+#70w`N+uV`gwdB60q}-MRt{H1AasAmOXxYUW~X@SIYd}Qd;**)xThNNqOp`%Go)G}DaLze2=YHr(~PC=OH#E7fm`{mL*`)lmd#Jo$4 zdu?4&!S22ZZ#7UGIm$8)Hlx>vdC=-421Qpe``EKK#>bD*73#0^gRGs3S-n*Bb%hKc zs4V^Pq#G^Nd}R2k?9_>PV>Fhiphbdx&Th@?$(KrSW!uO6=jp5`3_^d=EO?{OrVGe# zeiM6Ix5l?)*i7wrtY<#5#l~sYPWv!QR9q8PsU&V(gRg?)>f)||k6&pLMd#ERvXY+H zdp4CTzu=}LXoA8!hZAq8obMqQi#RYm_oGD15G}*<%7G$*S@f~9LOMj*nk+}{hY|h) zA01_57|ic-Et0S+1^*82u5agYVQf4+Z&LcdO#QK#`lp0rCz26}YEloqdcY3M!@4CV zie2q7!I9)KF(*%1yOeO|xVl&U&RVepKgeaun#BAya?a=ELHu$FE>u#})DFc*D~9TtlP% zPNqX*+iqugv<$Df$im`rkvMei@Q66Wm(_O zRR6}N!C{`dQ^_zsLQb*iO(ebGGLn=gGI!oLUre)lQL}fG=yLZR(X`fynzQ)3ckhU% zmmRuWRU(-6NiEHctinL{*-NqT*k1M89&&Nj;{ZfA{xL@?(qr3#JQ#h=YIE5sjQ z#vl=R=W$eT8;b8+v9ep(?wht0sd$~JY4+_>aZx5Dh3rhQT9uR(mU8aj*7nq%ZH7NZ ztytOTJ|+qs0mT$c&bj+x5M$zse`6{e zePRGRG+dy!=l&Urs{92P_!(R1@T=uIHm5~7u2;ab>l~=UiePt7NZiZQKncFm(xx85 zlp9ATCqme}M2-NL-MC=W!ab`suiRacy^n9JWBjQTAY%sk9EZG$-?otyj~H{%D@Rs(K45ABfjhVsZ>bxx9XXHEh2alWZim zY>U94g&VznCn0<|`Uy>SP(!{wMttrEmsSd0_(2su?p99h+kmT;Gt*4lRNBbJ66K|~ z3DvT+%zn)Ny?4$`qDP&{Z8whsLpIx^Ot>5RYN&n}aW1eIrKrh)1Y*?wze_u}v70cb zcHK{AFNF;B9|MBMo;~WQX;T+fB+>hjD!Ngo|Hs%{#zon--J`dH2m->;9W!({NcW(W zG}0yA(kVy`%}9fEi-0I4-KogX(#?<~-SEHkexG+g`~TY?_9wnxoO8xH*0GMYz6lag znWtYO2?vbpNuDX|fn5~1Qn~cwpQ-=oX)RO)b1-7c)HscT_eg5vT;3&~nANJ;|X{_@5EPr@PiV`C~gfA3DrW9O>DT z&dWM3h1K?m#8QahkE2>B#}yO0itdbg-3FxR#R51mY)-r1es?BI|Me(prBmsN!#f!X z(R_acuqNRgq*(cJ(K$?E=`I`5Y6C8?n4{0PG{o6?4}-UAjS4=)eDz!g6RQ;qD+-Q@ ziw!j!PDReupkXjYtd5-MpD0K7b_hJ?BV2>ir*`hon!i<2#uVP&R4Hq#Ee10&h|q`t5g#M^nzZ##9S3a&)1TtqgvsF6V1O+tCXrWO`U0= zBq%Jv|5Zq{Q9ii>!#@L9-T^Yghn-Poe{sCrOb3TT>Up2dI? z6%0b(E@I1PW@hH99EDV5k8h7RUkrYp-js;znP!qK#vKG4-qYy!!;_Q(@4`OFO0E2| zR0=vE8?(ulj!;t1@+5f9pI~`I+5EZON?0g0S?tG6W%I^a(`q*IMw|6vM3e(j#_35; zz_W!mzQfbxE4iM-tLUad@0Fye_W5UZK~nh~H940|51SAUk4)Ss&f_yiG%iz6gTYw$ z!YiP|Z+&zE;uy~d$yWoA;J6#}SKYwipgzuiAngIokx0ZzD``GF%Jvr*I;VwbLAZ#i z^EO$;S-G3-0wb1iX}@LO1qU`McVB&ROikdn?4D80OSRH=r(W=$(KoW@H+n0Ws@d(8 zm^Q;gYYRu3Ev9X_?Q_PVZ^Rmwtqw7$z8i)NdM7BdyXDmHzX$l*2G96@PVySqPEH8o zT_nKtuQWoMg$1P!n}RuJVn0IAOaK(Xldi zO514>_)wmvlNa5ew$;}%`fZl;BWY#Z%>xm>W;P;MrH~qLJ}@;kKFu@f73f4N{L=-84CD(;KU|0(B7EpNx z`F#JSDl%Sso<1D%*yhK$o$DY7&*|Bs&+quo#^4@mAB$B6jkHKasX8|UG$Jn&0xHD7 z?dS+;P0S>YjlGjWrq5&0*Kn>N3Etso{4_yp0t@j|n3q@b7)_L`TeDrAK3AxAei{}5 zr8}ulZG^B=$cZtpwzVzrmYCAc!&Aadw#$+8<%F`cb#hB#wkHIqlrz6Vnj`VL2Ra)H zq1Ng}rQV9xfS#Xd7X+e4R5{Vj*4ia3FT3VT7e&-Vz1#(wdN3e0w@yd`@(}p#mr?$& zlok+h;vz4R@fw6zWn#li!%H#!0!I|R(54?V_F$4YA(r+r)Iyw~*UP?N--?L=fVBh| zp6Xruc7tRytdABn*ASc%ST1U6o80cH=^Qyk#ZSxbVgBN%`<@FiIEXmvz>Rl61r?FYAo2EX(Ke=%FU|v??o1TN zeL#Mqb~BAXy5^bhtEOeD_DWsxjskr?XIJ1T($O{ZOw($eR77D{?#OKpvf=t&G$hO> z0j$At`E6~i19h_cyyz!5JJIferT6mInzxzmh%-^@L0?3rtfAL);?%van^Q5wPKf5f z_E|B!8Yh77Y}-d5MN+~;8bh*j-2dpgfNU;}ERt(h1^{m@s{+51ay1K&>P+PGEMt*# zl1koIF9>rbQ8n){ER<0B0|x>GyfxYQzjz-R^IdhpXQ?Y?yAWU@j0OhJo*!^(SFL^? zhUjCvA6YKu{a+YaOhjlI$9ha-7oH9OK5Lqsfug#&jS}Rt+}*5>{p{A;n=8;!D6Zab z)LDnkUw*jz7SQ2Ag+6sEtE(tx#fqRuAJctSE)X~|^oUk4s&*#xj1&=$#OcnHlyGwh z0L~jucQv8xA$v`-Vo)^>x{c`Pl-QeM$94br|Ifqsw^^8Ojq%@gWm4z=b<(1=m{-~! zqx#F56$`YyI0*RV@DFSwy`m~z9p>vAIky{ZlLGh+dY8h4o(t18jsv>!F&cV1;PsLq zdX?RUzfg|W#U~3Qn|snp-%wzD;bcoX_f+O^A4E0%)CuCOuv_1rqP4TM$o_QApV3@8 zO$0|ZL3TRU%qo66zBwl=TJ4tLup>!}=kk!*6-X{XOel zKa*;YaUrx2>JB|oitb9{mQ1+ICip#rt!{Y~qYjpkph#%B;82XCj`zU!R~dDHn{VB)koh#%05k*-CY_1BgY@|L)e_?4De%usuqZGIF) zig}1MdD$jhm#TEZ+zJo#M&C~O!~)o9{(6RRKuJx(z`!O9>XD4DF_z2vhsquTM@0kn}zU}5jR263$(OF#=6Dm02ZQ2QPILk zmx*cV4f9wM0i0q1+5+uD{G=9(X8Ttgnb34|Am33g}L%i7ad0!uCiP`WT>kO}r zs8{Qq$k3K#yz!gdjw)aE7m(m{N`4I?)U)I<*iD+9z@3)<={%v2+bSAxHVBBr4|owu zYTHrwDvX5pSo!_gkfWqtubrfk^3%ZqlmzY3!iBr&t&Y84pr3kB&hf&9Kyj--2hW)G5#&{668(;HYFWNh^aGnwB)^!@ zn#wPd4~r%YrK3_hns2?mh}Le687~&9I4{h$NC4YG{&>>$m6;MFj?7aca5JMaq}^#+ zzFa7Kbs0HMXsHGSv0_Yvv0Ee06&0%) zjJmiPUf=@oQPvSJGg=D7O0F^R9VWNs9HoSM4{Hp=lvjLAFY<|Tw!WFhZlw}Y_Xb__ zni*W~0`8K}h|hr!AgQsSTV^=l)#SYt1^jULVxiV*eRMSvhls~KzB}Dy3(f2$QfDkQ zE%!9yhkIYs1?<=&<|Y3@`=a^#B8Gpo5K7U+sIYeDR``3K^3CC>C7#*E1t|UK2%Aj2 zmiFrDP88I{hvHT1IB$U-+X2-W;jeQXx!p!X1lt+Y39S?rTK{6WHk5)%(p`!slZPOQ zwv7~WeInmJ!7wjqO{6GwfiL^;-S5$pZJ)i#XJk_5;xugzI9DZ%=6l_Qyyin59?zBK zyik&`IA!^lW@Q3LbM?5ghBYb)m{4mYC`0%o`j7ig$Si^w|43X}uWA~lSeU$~D;)uv zi`@BubWvC&7$Qp0O0YHxk)&Ds;%B+KV7Vc7G)|b52u}>_Txhm1n^ptlbZ=z_v5-{6 zQF{|s9O+)%_1|-%sjF3bbEawg?}Tm4?hSvMEwzxd z&R7=!2T$USPXQ&E*6cX!Vnu+U{rBTHxnmLQh5J1VO1=kS9}IGFZq&GQ-fspr8F*y` zQq=sUX;4XO$9(|lIkiPvpX9t^i@S*%8en$faEqU5UrWipNLT^K)378mwUrUJR^OkU zTCm2e7ao31jlSZ>H$WPV+1~W@htUx4`67k>Dbv2sq-TraT@AvHpKotGEynhT#1QFAzHnCuj=FC4;tBH=_{|ya&_0D zS!Dd$?ke$gtFmh`Mfq@Gp%65|iDjNqjvSRBmoWxJ(qBcOJzF9cNS0U%(TA$l+ow9)}6;AB;qj(qE_cin5Xtd_`H1q!;PAybXadAr0 z1e4a!KS==pVOIsnRiuLEie+yfCIMzX-v$Q!Z;SP6T+bZEUGHr@P+75IT;@tj*s=y` zPXPcL+R->=OT75dsn7tn5ob#p#6BCg5S^MYoEO+ng2bOA09j;EA)a(nJNG&5yU4z5 z&VrNCzy=cM@CiL2W1_V{V|f=pXN-hbA{6v~k)YDjSvo6T7))PBeZ>$7mS_X!0eG8n z_d~z07$d$y!4Y0Bx{x#(WOL1r{YshWAiN}YSP0}iFQ!CNDDb#2DdHjD-I2Quz_1li zBZrNaFPWN7)MT~O%uaT5LlM88dOXKg=%1N_sW`_Vznk@(lf1Sn0ZR%!h40Vho2roY zd8qa^E-w7;faQ~o6=t!Fhg6Z1V>*tLlsg%MON^CqTp5-}0DWYGvS^d%Hq!)k_P7{5 zq>x=!RK7qpi>}szGPdI^AJdT%9jb&W3Js&L`oRfv4rCvLfO)EdrL0cB%WGN@X@;V~ z=kqz8)nnugK>GX4@Td9od})p4h!%_QDJxOi1^SV- zTK{|IQj68Hl|K#4h8g{n7ix+LjkfZPHV`_`h&ODvVS^Sxb~bz|s$?p+a51fYITC~t z(2-M8t7yl1&~3|h8z&VTmWCQ2rAT}ygqKFY);m5{`_rfVW7N`f$0RuI$&5LA zY>CEMF(z4!P8rz)h;mW>eQ!-#XW!=I*2}BgONHVMpCCKlAknuaCgb(~ubDHc!8}>C1C)4@Ot)Te~X5#Gw`@xlZNohhMs^UX1mM zTuh1Y1>NfG1)MT|(C4A0U9alArgV4nyQTOrU>N>&m}IqkKIP&w3oVMosbkQy!p&n) zmdbY*_k&RjzRlF9o|O;8`d52|ukhCIG#37H)SrA*P zPi8U71qc_0u%YwyhJyp?mkAzWUdn)l)Za(YvMCriR+JJY^}mW`9dO$JipdX&+q?xh zfS_|bjN?VN|ICp5>FoD~{9nw=J1CxvrZrJPa~Na-#6c8V7K_>A5uLbwC{eJC+`@kW z4MMf%(dCgWlX$yYAz*OE&|@F9rW0)CiN$ zQVs#|p>~LUgakcKtCkp8f}V)l!jPV=hPbJx0czhrHK6iTM$^KuhoMe3_XN|5p;pdk zo>NKPKJuh26^8i@v<>tKiGBD9x(qG9ceIhsN>C4KIN{S$hUH`v;wO>7BqhWwwS$gVQ zjn?LThcq?Y=@L#V87C0)tPqPJXsxNZ(9j6#u|KP$R<|fvNa%OI7v9)tRqL|!pmGia z+$e`$&;4{z3Ox~2zQ{3M42e&*t?AV8J4Vc{$4ZPAY&(H_+y<8}K)`W^( z1fLx2EZ?B!^SesJT|UU&N?=v4J24|Y^Z@AQQxS*EjcX~WP`Kv=;2WA|hEj8@cP~!o z_JlmLTK(DA$yjZ+)b)!cc-Pl4_?Fx;@Dj^0=afZAQW)1ECp&(+L{+~1yR#Be{|h{9 zx!h!{6O~w~t)?luNREPZ-y1cE)Fm%^(GO|qtyh@HXLt`C&Ih zjW+~P8`npAki3L4;kb?jU-??MCjDI2Sz*ct5{n-30}1{_QVBHi%lK}0B_6$RX&{JZ zLsJjb6dL6E6l&jsMqQ}c>-!5kBO3!y)aH}T*l_UiM@F}2nCRb6Wr=(V$iKkZTpO58 zVF^CgA!-*VY~E^t5n^wytRFFo)N?()PHPJfJT~boe~s-bWb;g|+AxmLx5CW|K`9~` zOcVbjn6N)JYG!_N=IaG64!IB}qP2;x##FuNWIz03j|Mh;5T7n-441g@ilupmQ5YF7 z-B6Y7T5&8&=G`n~Upii#6U&woSH~`FUY`#Q~ zpF6w99ucf9qlRpOA2(a94(f4k3Tacv_Mjz;iA|Pf2w#erD65CXJ4WS8P?PcJ2}jt7 zj&hbm3S{T#1Zy8fFoqZSf0_~g^vJn+Uv%DQm>W(uhp|HK-2J0rA#7>UPa?>F+!K}% zr)Xs*QZU;fb3R}eyZ_;>n5G3!qn4;&zr2}k1CEu~ZfJ*>(+YC*DbQkY^|uEr7Wd{m zc!*qCS%beSdwUEINS`||fQSkIa4_hPpn1mEPhn3J5k51U~4KCp!V@}#X`ry2`lYj7+}cg}Q9$)|ldmJ5|GCB;t^(Xq|c z&kcX;%niw_z;A`*mQ15sN9|&hqPU@}6|AR&qs(t|7q!$eB;)!@5m#u_BG9RXUnX|n z@6Ru?8_(|Cjm|r0Zaliw1fQ73_2@xrkYz2wDVZef<}s;BwU8e9&Oy&?oL}AS{!4?ad*D+w zl8rUM+nps>__6=yNMF?Cu&c)gAC(FF5dN;ZxGQOwzn7fs(jp8shfUpULz}dK_Wbs1 zB8Pwv^5wkXnOZF2aMglnzK#Khvr>Fl-5*l)1;aysFGcz45zNYP@Acpl1hns@gvs;z z&|l>o=r`CF_D=`_f8xyf|Fi@DeI-rEE^lVh{%sHTF{`vo0PiR;b7@aH{-~dec!x9{ zu-N(mNZ@`0s{eWifro^KbRq{#Va&CPjs|1|1n)pZvkzskDicQ~h@x7%5cGw(U7B-r zl8jU}ZZg0GGOS=X`rUE2di6&r8tLVUgSwl*w_SDX+Fjb^k#wEZQ;lCN`vsN!36Ka8fr1H&}Yu3i2B}vbtN42g#J8_$D-kn3S12M z0AL!LcNU_QfTPe*M254Q8Iu2;8c}XZhGBgwzqBX;pM(&;YW1W4V%hS>{??1Wz*H0r z7I=8rDdXBBUtnpbd>Mc9z0o#yCpY}A6^Lu1YIZQf5skT7bORx$cnKCPAaH!ek|34{ zkLUf}gneL$AeQm_RYdoS^mGqH5i}eSi&MQCEca2VZNKPcow*v*PHyGH^*6~4X;}IY z-imF~x2RBU{6QOj>KA*@OtYrajDApE4hI0Y|jVYe2ZqR5Cm8$dqZ z3vA+}{gLervG#R=!=$i*b*AIC=>VXECb9XfbgDXlJE#qyS?u-(drHgC>_q)vFc$*D zT@>X~nyN|Mr9-5b1&LL(Dd z07hc8_zm94UPj!??G@x1FWSCnPaY?$0EUyiN{m-NnOFeTS*7tiLLeerc=daHrATJh zyBlWO-uOq=mZ;ej5zR&rvvN$0)1nbk>j~AGp!)Hq?yFRRsac)_WDP3+)KT$$u56_q%dWq)iplHNPdp;|@$^=oir z1)4CE!m`0(!$cD>{pS5#wwWtRGGV~9*^9HQ#}~}it2th(F5D+5IGCjl>F~G*y6r-K z1U96(=M4Wohv|K|Lul4!>i?){(yMTq?U=G6?%9f7bpkE>@c*^%s^`5Ou}=HbuqZcH zA*K57W}%!Sp1ign4?&ZBLEt(k=AKVQKw6-Yg+ot&gS6F9r7f`^e^vXw-~7am==|(~ z-#p0_0jI2U=a0%Ng*mTjdWIvWu%3E(S6Rxi9&~yLJpnn;or`P21;HyvOKwjaH|ibS z_Bq>Svb==p8Ab6Av)_THn*|97d%gNom6RN!8fhBx)f>FXmIR3kzY-!!9l!(@v-IB_ z98QSrqPF)F;p7qDPh5-oAFZApkR!86BFoG)`h})f8yar3Cyq&N5qC^ROFN1;n^&gG z!tIyj7Viw{8y6}Y4K=rP#w8Ru~mV~_dF+qTA5Q<5tW6jSMtx{{L2Tz#kQk|fbS znjDCNfWCC(CoD?V-Kxy?4Z~GQu~`>28t-RQAp$UDqlQp!t}qQ*&4tiFawL;cL?kET z&vV5~9Uh1wUhR!PqX!vljv*EhSjGfviBzD7177OGu?uq+UtiJsR&iW0(?BBsP08?v zrSzy)Z0oiC@alqq6{@`)smI0D?P03i5^*1FN-Q?`$7_(~P~NqW>%{C|)X(87NDyH} zP&|W&daTTKGCd~pCVG58y#%ytFE5#K4jhn)tJ)&(kzL?Tlum;j+MQgx*R(x&AZKUb z4_5~h=Hhr63~irJ65XVfv<)OdP0qEA~(+jGl?KZCdA z9-OG%4wc`gz@==nkLllWXf*U}7Z|I9>24pPGl&D^j9r*y#)Uv#(9rnBs}oEHMkWZ8 z5UA3iPL9&;sg>0qtrN#Qf*HF8afrkxdH1_a-UFuAd(lkOl`6c{l@so=vR)$ofpw(+ z*VqpqmpPKXEGfKQn%sz1cG4B(71gtyyX@@Z8Bu?dp{<|2E1nK+?!(qCUme7bb4?T=CH@;}*Hi5hu{O3l{X^94kml=v zw?6T7UXTkge$CrzU&;QHZObC@M{rZ>Lsf*bTwfrxf z>N2rV2!!g0Y+P3m8t8vuh>GhHi3(aN0$J zeX;tEANkWOQvEav$ze28TBm#lw_i@a5#Nq zP4DT&hD&giLv=gJ^wNdlyvMkw5-d*9D1gdB)I&PAmMC_3q$j;i0>Li$$S$9r3{mlz zkH49ofdzfA(+R;SM9?i-yd0mbU(_qV93K*hNcesea*Jp;HSJ+8rWfIOvLD(tD#<_v z0(h7wShAWP44U9~_=E(o2^bH~&jU_C^5O%}nV?r%4+nFKlRbq`f3qZ_;^i#}K-AM@ zGzQ;@6p3jfSb1seqMjo&*{;6BLz7{c9#ILMyLbt5+aLNhu7(O{1kbVdGR_6gT293m zbEGIYuuXdpfTwXfbo%AdW(A8+pwLv?1y1VE0D@y1@n}7otoXY?KZwjkp|>9!#yQEp zYMflfI=z}@Rtdsed|Nw>6n`|SB&QT$J-~S=0(2asxVLl1A0loOJu%5XKY4JQN^j=M z_3&VZ?x@Fol)~l?21du>cC}|wZBW-b#Kv7(|4vz_1B(rCTR`jC z2Ipy2ePy-Pq%vovpnJ?`@bROV;()hr6_>F!ZX-T0jP+Wa#NF(3zu~pZG|< zsySA(lfkSZbPQ-0ZeM?39q4Tir~K`#AvvN7;<`WI!K*vYKc(Y%5Jw@~l0zTRz!xxK`>}rXwvz?V)-LUdrTqh~`=KDc z+>j>@Lcd!J&CUPUIlxJ!{pb@yShEw#SYU^;KshexTmc}ARY=M;&hHm(L8 zqm7_cafjG=_8|r7PKvKj76!E1rXq-?s4845-zzoHc8}K^i!N!+TO-;$hkFmRo$eA^ z6dJ7;9;RI-c*X=FX{kH=z{{h{4srRury|1UZ#m*@W*BIp&vU4)8dbKytH2~UGc6+lzQOjzQP@gp& zW9ifr3`ex-_D+-_8?$u9Xu*kd!=wJ*Le}la4&vUM808tI)fGm;hkJF%Z_Tt1-F0<= zkcN+sZUwwElp#x1x7X)|detT#++|>)qg(91tiaI4KUusu<32SMLpt@lhPm9{nR})r z>BkOQSNgRA8`GtkHE@)x$e5CSQn}5SFJBBOzWZ1FuSZls*NIrxe^>)!SKwX_3K_IA zpEL?GUr$1)Ml=|g_*63vF=oUDP-{8#yED4o2wK?jANlVeu;X6as4u}tN9z0fq|`bn zw+Ifums9fWe)mMyGy}u)pPJwz)4^@dkK(gMqgv*T5)|8vXJ-JGzn$kV!w>NIKOR=( z8@+Cp)X8OPOKnfT`~iFy1qpZT&G8=|<8J}g@?RhL{DX18V$y#!UTI5Ym(OAn8^5Bf z=RAv!RHITDI|IXm1u?EQjgp%G0U4sYJt=eLI+{`Bi@uoM(ZAImCe0Q>T<*>w;V8 zQxEg~F?n=MOrX$FR@UEM1>h+D7g5@g=;Lm%&7BrU@Eq3NbbbdMIPB>Dca`la$5D=6 ze*&}9H{<>;@7O@_Epcho0zMehZd-XweI(##!tL3uO@x4 z7SG`zST#064t;{gp0+M2KKCn;gqO`q_}BJS#k=v+s&OT&}V~*pR?*5 zx=ugTMdhs9)h~(j#g&^Of3Yb<&aY#?N$m9K-Bf9OB$l)i96G`Wz^Q zVBsSa^p1M4z4RG4kV5iR`lq{fG8f+e5f0Tc8oJ#Cw_8mn#owK}h}=w98|@%X@24AS zV{|A*FQ?m=)q}4HDKAZw{<33I_`u@!J)V#npZCTY$Ncvw7~GkyItUhJEVaZ10Ngd5 zU;>sNfbz6_m7+sSa*6=q9_Z~Z=Zc18H{;L?7a83=(k)ues7RHm8$yU^c}%2!Fz zexxx)1cz=hWIHsqbC<7;Xq!t~3MN-LP8Z({_DtKe@aF=Hh7!VGZR%8P>sWDRh&fJF zL~YZaFOk}{Y770Hrd7pp%SCYn}@9JVcXt+*pSMXhudA9f0oFKj{pb+ zyDwYq>iT&&SfH_^o<{$dl?1HN+n;%uNkzvz`5d_AyeHv9R;otTFNSJ~F>YS!y9@Mp z+e3n=o&`OLd`jJk=#Kn7-5wbCzLIgK)q&aTz?U-kauxf7q~}91uY)eQW&dI1QgE2l zT()oU?eLaJ(2>9ytvJkkB&SnS<8E84^mE0H)869O$L;sXzz@FXRA2nIe`}k*C?Igo%rD3YxPeCZ8#NgbS-~e1*}&ZCbYVsWDYkU?#;Y;sUTvfs?jPu8;lA+lIzy-D6CM1{tu@F+PdJe!5(g8^+@sJ~G=iJ<)=pnz z25!c!d|aEfX4KYWGj+OBQ9Wm#ki)Z@PZLxuTqK-;PMo)$CCx>aMS%JMwIc(g2Z2W9SJJRmf zdX?nd_LtD=Rcs4B-fy_?YQH<>wrdNzzdgSI!Yx?SYHt_3mnu%5+@MU`dsZOO!%C$j z-=!dSRqwoqdR0bnJ7VJd)Yo@wwD*Y{MmIYy7dyK#V@B0wWr=o6f#=z<`%-bH{rjK6 zq6sLXl+yAtBh5wHpZ5<+M_M4~_YEu+vJ+856EA-iUFFN34Yn&Zmq{*Zn!-eP?i>z2 z!%?mObx#LK-{V&aQR48Wrd-lNdt(^M3$?6D9>7sk$-*l?Bv;eV;J;F?VT=-Hzca)L z=P6uzO{%IVy6yzP^Sc?3C?HJd;~#$|4=YKIT`cD@N`9d`&#H?kYls*7FSt zL5Y$dgi1Jk`p^0)E_e%2x_4v?{I-manu5mMXLeD@sllx?9x+($;W6Utz1he6I7k z-$6bD*BZzQ@!3;WhXr~z57t%*)c0PY>onNsz8j#F^<|5&emII}hXa4`u*T$>{la^7 zyVoUr3o`u$?zXgSS_2p4cJdq&^S?6;s;$=v!A>Rdyyl#8mM<#UKSj8w?9b|20#D-3 zIPfI4|Eg<#%1eIf707jxm>9tPsc}S`7qwpibS(0(W19NrOjBeFoSM8<4>uNd(qK&k z8TO7JTOJDwq+WZbh(`OFp0eBAkRyaHsS$B4K@y3gc&e{$b*?`cf50>O>DVhklR39U z(mmrQLe<@KK7k5*qD`>I_;0mof+p^Xo6uoXlUcauq)%>c>VHOiUE=%t5(xNGN?B6ge0i;M)k&)d>i-1 zwtV!xuWa=iG$xz`zA0LlctR0W+Y!FmzGLFj5?hsZd>BW?c#kGv5Ttx)?Wo`WH0ww> zuk7aT_f&3$HkO#PAH}sB!!_2EFV;6d_06WRTg{4UU~sZJ zWzR_I?Wx=OI!s%fMiUQ!+yq|V9`#~xv}so8S#a*NuTF1mJc$yGI_7%sg*b&ti3Wt6284b)c?-KyNm z1nO&RYrjqnjR=hkKmqePK?xU;=E=-|-u;`-*g^Nq#>pThZ7EGZ0r|MfkU{vr?~*s=0Z$DxRk#8d7|yg}c#; zAfBRnebt~}q^mQ1h(mC~q8#dr3D~sFUdG8UY^b1qtf^R1u{(6E^7VL-pQ#u)ex$-) zswzfc4UJ&RZ$j`dymI=;n{i=q`g$`f?uML8z|i(v!VocA`x8X%PTP(cz5V0i`_q(B z9M4-fR?s*S*s#>$;0fz@d2O_#-L`!}Ud&Cjqjw+6{37FB%19|Mal>r0ZcNr?oM~kl zIF{VzqvCF?Ro-0BS&$K~UZb@t=Y9`>otm&^97-2-HZ~}S`#ow!Te7+VA_+^Ful)6b zuYREY1tm9~19%H9G!NKG>C7f&(La$4fegM56!g**t-6QV26M8hzesL%Z_{E|a-lc- zHkE~`e}?fe_5CKj+2O7lXXfri*YpPip8oR7>dezA_5(o_qX*aQ%O3-!<%`~q?BxPA z#qd^7>=*S!*iL;yHEMIk7FjqhFSyxeSmNyY3I@|lPdT$O_~6~mZu;+N6j z6*oR$lFQss9KtP+_jJ8-5Wacu2UmA1seG_*9Iu5~qnDWEZxwvCF(g=I@SxxQ z1GxaRcYG?U*r`fG2tEA+2sE}Mv|*9Jt#^ha{@e4DQb)0jn~&T`a|}OQdZ@&O^nP(9 z$pL-&mqCtGhCot2<2s*^1qV$;8Xws3YO%@-8gO~WTs76 z3(A|+*$pqqNWIkXEeVv*JbbKuWv(@l@{8kKBTHx0S9bEdL*1(=(LSB5X2D;%vrIc4 zlaL-AN{RT*(yOS(p&-&-uIu=h8-AJfITkH^)O&#pXZ#fV7KS4a%>?yqrFPqNIi%9{ zF5QeBDNBEoZcAo=73{QU(fd`UI=O{;KC2lh5wM&EmwFDP5jj@q4nuxD)e&f#(;L)S zTpSxck7s&vTKZfs%o^)fwv52j*qxPl%GOP!bhPw%?@i4j9jb$L+9wS|a%0;+awfHU zv1W6wR)zRgHLU5f4!$&>*VYh7!qEH+h?}kf+)2?QrUF&AXo5!oLc+i2Jkp`(9F~B* z4%4RvvdVPEYnl`4_zNw(y-xJIB>MzjPpjEuXC>=EU(IcF3R#kLf zlYXfSSt`!BFVUJEFfI5IKpPkE9vISdw_HbY%+W(*l6YHRzoCE8;0Q0djdv=Z`4&j| zqJbo)_QzPu;#Yst#YHVHRR_Kb)(FM?q>R==ZCgXEA$f{oG1`A-VnbE4T(6TDF`Lhw zYMbAX&c@G#%|(2Y8J1xmwVu!o6ZgRAHWd%^beIMU+Y}4r4Sr@?%lz(35#H`|m!<#3 zHN?nNuJBCZYKM4u{k_U9>2#WKL|=C#!jt+OM|xDu-`_ez6#xp-!tflVa$=qy-OCI6ARg-n&IXM}ci zNZTz(Mnr(c#i^WTYXOel2?PSskFTz-{@xo`huCbmbC|X$Q5*@(bpT(Ykd-zR3DO<^ z{^%qx)HZ=8Lw(okM!DN`Z;dKY9dh)>Dr-+t9%Y`4Vr%U3iwr~ z$W9@?@3J5N8lmNp$oO`GR@@JIp(`&QcP3dX#0dUTS>xE16^Il8D^fI6t#0>wT-E#w zTuD6(ws%|oTw18@6DCi*9!;vBqsauyoa$yx@| zvAH-tmojxK{t!p5BUgI>7C3(Ozfq%{hZ(_nsp=@?Ok_B%}FE z{$jAB?P7cX*6ns-ZS>$?hT-XGDM6^wjek)Q3&vi?9VSY)3qw7z-l74_3i?-!86 zRim1DKiAs^xYPC?&2z$N+Q~UFHuAb9{EKC2MM8Durt(fdpJIO7azbDDhPL0ITCiXC zgY0r01HcmR`>qUX7|;wer+h~=Hm&r>Pi_S)a!T6L*gWi&;cpluTAAK{cPPzoRRk`e z+jvUFb<@j!VvT#gOSlbV#%&q~KjUx$214bIM_HZK%7Enle3JwWs0e3)@#sL(t!;9{iNK--tV z16a1EJ#m__5`z-?QWY~<6!GrFWqit~72S?htz*rn6)dN!+a_K-fW$M}Jj`3m1bisp zQC!+`e{|An=#l+z0+p7l&igwV>Xb+YjJPi_i0u^_7tDj+4L8L!PL}JNq8}B;v7Bm zRR@i!!bj&x8f*ORD?#X#zNq8^|NeH$xuJiKW{PMNo8jrZ;a7xV^O8RFXT?7UPdXxW zH_knz%*9sV!<+bC17jJ92EF~XUF$$7PQCC&@NqmuT8plR#$Ci#GBA85wqAX^k~qOH##$I6yPAF=A~~tYQ`(pylk0DZa~TJ3w{P<1jdli=;F!L3wvZEoEd-;5L0QJbb)R8d?- zORT_D>xWPiipzfOieTw>h-v1^)q@aOKOO1(fX0w|&+CnDT#HxrKQ8k^Y3jIXJ@5mS z@I?1!Uol;qmx@%EOEr7%MtJSd4wj#EcXi>Dle6Lm5RhNgG8{`XF<}5LM*>qLtr{zY zEW$cd)r>Wj^Hr=)0bbd{Y%=$Z(pS7sN!F68h3a_EUK+CIUcneFUuPl!w<^6GSB50>QL-wT5Cxv#qr=AMV zCBLb-k+7Ovwc|B%Cs#7?#sR1)P48e;sYmqx7<_d4SUL?M+t!!ulhoYMxeOV9vcF|- z%KlO91n{#j+*ioBdVu$la#AL@;slL9ki=conmmB`FE#7Q7%X(WJJ-Vu6wU&4tFs7( zxSQJATFaftGYlZ;Vj_2O9`eaYD}uEzWrFJ{==IRK3=`pq)$$-p-b0)|DgV{R-JWvm zr(3fj(vO<`2DWdA`Aq{+ZZ^yQ$!tT+JwZoe#X3#gJxvSfmDbDAwQO2DF@YP`Bb9a} zK!vIhQ1=sY^~zSojYiv-gY9RcOR{AB>GiSB$Du9u`Z&B*%!}d#Bo;j)~ zt*;K0ck9L3N{7ysiS-!!Qdo5Nb@%z}w;bd%2T!VxgzW~HeLYQlUcM%`FuuRnW{emr z@{93os!zY0+6kCqi>QIL>Gh1CW9KJm6KFxT1DcjY5i>xN@DD`~>X&I@B{6?#=(v#q z??N1nkupT#;c@OQ&i!TXJ?kmJ#E{*en%?WMR^+P}c)qv~zDM1!luF&Qg5_j+HdB6G zB)oRf6+WuVaN#?A&V*(<`~#R0A0Ty}Wr60oENB{C#s>hivSn}hK4)(RvJS~-3Y@W) z%sj)DC>{n~3Q(ACApBAO3k~>{P)Egz&S#iZTG5}c@stUr_Bsn;nKxWu<{X87sFdPF zk@u*xHm_#xB|7^Q(GX(O%6eS;N%0dp(J;@z$w$- zL`^EU{QA!Gk+xUh5 zQzsWcRQd`--f(KH`AETFgpK~25v%38+*A9&%P~fG<1=-WoZ|pn%W_KI55S<_ESpVD}!x-q_!=YukN~ zZe+`CovD|cw_kt`vv=##n#yfZSbUVA+I_`;-Af)slq>g~$Ml{^$OSB=7rjq6z#t`2`%38tBy|6>&ukJ9Q2omm+w&;~jezBe zs{5zYxYy=_17q0rs+PUmuc_;u<|2sMb(evl(H_eLiHPS(OwT2*f%zw47a9_7li1VU zY0IUyKoPG!vZnweJbmoWdsOMG|G63GQK`Dck3&fM=i+~)O1-!KgR}Yun7cDe+)EK# zv*}F7vv#ZF$(McDA+-|nk5WCaR z5?wO)^hWc^^tyKD)NmR{Dr8!Z%QRxLLU-u($WV%YUBI{bkyoux*yU$~5dG3R5JSq# z@T{W^mVg~>r!le8QE&U72gYBr1;%n_)loyG+oyI6lBW+&AFCFt?=#EgDxSI+9&B1*m2`}_NcH;{3byB7um`_~0 zGbbyuors(a>pggND~-6W-^B)P#iBc` z`e@Z_Eat4xo3q;HZK*08bMddg0hNQ+LO4^SNbWqvw5%lMWo?3lDe#j{PGG<{kHqmW zODvnR%LlZ?dYZOFNSg=r>l4<6gQgaTbR#RS{OOD)+K=*|8Z>OcRq&2yER|BW9#zgA zDVYQ>mIz&y*>ACQPYAAFEA-57^-CFk@f-T*L+;WSO`jbK;;xCrXl!hETx%MjUX3W& z4QUeaiTv-$2t6&nqu{!rXLl!)OTW)u+B$`0C)%ppu3luO248g3{$7csU7i2-M#TT@ zlfdQAT&V=DQni%HU3>6BbLkmdwqj+HxoY8W zJ5k@ExmTL8;m-_5ZTzqZ4%lV-4-r)pK8hlOA~gyK(lt_~1qA`A5$V#D9(wN(vCxb3PN<jO(hk$oR1QALd9X&EH+> zB??m?sl*f3KkN8|v5*pr0SYDf`k}zp476gVbsjXd$gG5ALGem0EZ@nKyfeFIIYSo_ z0#D~$rr&S48&eeYB++BkOLH8f0#svzu48JhN+r|UBAEkqJ$#D~(nymwUCFs*dB`P3 z6BNL2%XBr*g(;9w*w%qrKax;OZ6FsZ>?-u@z+mH3C(|j{)m$p_Hf}_EODpKqLQ6+~ zjQJF^EGU_Z_fF2cn38iHKg;eq_&93q&RQg4t4i;!R^b@^euF9*zK8=B>RnB*+Fj8o z5_N-&MNM5Tx7iFM=I_&amrXLly19p^pvmhBm-!H11+MxK2h{57Q|p*vM`J60!ZA0TJ|QW4d@bmEjJauIP0aIZ~%n; zX>mpKu`$<+iA|8{>O-X*VOycSif>mMV*xwzSKn#Eo@lJxVOb_JUz&A%o_P3!%7w-4l(!tD^RdZ3+g!qw>m#7O z%!Px5v3f7X94>DAttzNWC}y>a9X~NdJmZUnKOY{(P(IlUN%oL19Mt{{74cunA%3VD z-Jx#h{c0*0I17Vj4#N_?SBLkxlF`lm-7)CT2JErr4etpeFe?!F9u|nnY-ilKOfQtC zRc_EHe}9q>qT61BE*7??OGNey%?H{W0zR%ecUQKtK8Cbc_kR!deHT!}>Vt2SWI1 zVXSoDZTZtWUYE6M>?|7A!c@O0ICg)rKTgQA5^~Oa(-`nHAwyqD%BEFKh*QU;uB9KqKPUbI*S1RpEbA(Oz<-k7a|*Gx_(4 zKw{{}t}-;VU4264rDAB#s1V^s{HzYv7iQ9Fe4qB_$BU^A@-ZUr%-2li6@A&{?!vgJG=>j zI(Z5?oo9i~B1AEb3}2utguq3172Wd73N$>;fJhAVtW~x|>@G;KP@Nso#OOz|c{NRI zSG!tLrcT!M)+jxh%qsGYfEHayi&&)}D~d8D#`gBD|L$yIe>!KerkdJAGnL)S+)#a? zdz8BQi9P#d$ONwv?yKjl%i#E&_4;txm!?@)K0?W>&{F- zK!ddBIr`Ta)_7~EnY6+4D4)RuTAGOQpoYkWm$OSrFf(Ti_T*4vjB%UW@%M6mKusZX zMMK~xPbk;d*WHX}HyzqO{8Z{AqjPG2$+bbU0b!q(DE;M&VT}sJs#w~~^gp6wV*%h> zu_XT=7AMsk?^p1j0-=B}2M9pD($E;iU!lr=!;A<$rDMiL$e_#bwpI$M7S+Z4xyLbudP!#0 zcwGIobU?j9cfK|WCmX*n8}wtlj8xo@y?`1l=n&IBoI%Jx415^gx9OE1l}{s{th)V- zxyS)|qhx#k#WhOVRSDYl?p!59ZLDjiOVLY4;Otx^L%ifkD@Y5vHF$49PQ5Sq?Mb~J zktYw50mPrP;YgUw^sIJbqw$5ITDjht zTQ=k}K8jA&-xjCnbLbB?r5q8A9GhQ%2Yh!Rt`UbaYFBzuV_Gt*zalkvqPOeKoS;TN zQm^#hG&KKDYDhO+b}32`*`ODD5@Y+I!kDV@bb|}FbhaFfO0#33T?9bPd9Ub>6=-;y zSAO=o)dBH^GyI%UXGZp;IlZvO_VC4%2o|@J>RV@fU5;1d3EUU;?|SUPrp3@E-=lQ-;*M(dB$@&64{$m{tJKe!PXC|tDb8B&I!?T znzpxm6~06bD4Ib59B3Bcgl+$uYVO6-@LXWIW5BIV6=rCotU=ZQ_&894*#p-e;JF~C zujPJgs>-GYlaewA`L3dL3)sZXRDKO>Y+I2x@2{@^8^0Rb6ls`Mc&%Hp`1F7OT zlR&}XhrROmr-~*Uq#6uA9J*j_#Kadl%3)J7VYyXdjqI7JvC%TjL#cxuJ!8mv{Tvgu z@{Ztuww4!w?y_&u!z4i?{>C%tu%jyi%g>BZ^a)~LM0A0k7*^+Io>;vkLrs(y2q9$VoDuG0<(2=Jw}720j%oxo4kK?jnwnWB+}^V=#jA(V^6|AlT@-C}T(1-_Ih$7IXv~o>-cWsDP`V@x}{^vzuz+7XVwv2P$EQT%0eA9^w=2=@tdG48HgIWlhOSS=kiWRi3qTP<~ON*aCa=W3gK zOj{~x^%4wpAm3PQ)?I1vPn|Wg1s7_~cG9pIg!3aQ$B?J1NQwxoDjKcxFeOBXF6EnS zXq5St3yIfe>2k7-%u_Z@Qg~Cluy%6?F(t-ys@{*nyK;5w9hE}CvNRI(w z(;#;3ev_bd$Pj+e%uu|2yXZlhmSv;5+Fiymx}tso3xDxhb&2sI7)-)dX?etN_~DS~ zf8j7r+d2${K_msOa*Fwa;JNGT-kLqK8WVR<(Q`zaGyE9p<7_zm_s`41IAU`+q=gLh z>kzk^^#gvqr7heG38j{BSi0(ho(<)ZmL4y4zK-P92{BNv1(9IFq?^25AI$siU3Ig& zc#)}*j3i1LH%vykyT)?W&G7cc)Y8P$aF%zmtxIsZ0GU11Gt!i?)qAo_=;;!@um!fE zw~Z9~0kNXpE*%3nW2dO&Xmnd+gJ-cd{^p@~`916QZOQqRsR0|c2XDh4$(*svmzW-1 zbMk)2I5}5C{{yonwZ-E9_-Mi;es|cR$8G0E2)y=cKdSV0cn@z=Gv6Jf(M@-^!-R(c z@RJKakp{p&+5BwL{<8KMODb%EV7eNRe9Dx;L?B%-J(X*e0`x|ftKKK%xE`@D3(Ud3 zdc|^$*HdTj@a4qPOnte0c|0CP>CPOA9IcX4-2{FCsXm$KnYhjtS4dAW<5ZP(^G!fs z&mb(E&YS%PU?qg z0pSkqhTFmg8iv15tBU8p3zeAv@Z#31zo!t#-4LtU<6NG?utdlehFhYqr`Ra5z%t{>wJb$wQMIX! z_i(jhlVdg-s@{3C(M6%}cnAq@ma~=vK5DK*CAnge4TxzuOi6=Jp>a?Z(-e_5GPg0> zOycYnjv-6T6SYau_2#Wb!(dA6DmBNBKa(7LXDLKdHe`>AM-dQG0yc3{Pc=^=%k{q? zz1ZvszFw~fQSWUdol)wNTq{Pco@RD?w(w>I@sQmMx1IwiGQ-0YF|S2ygO~vBD;yIiff`$1?YJTY4`DxEf2;<`bVM)H(kAEC*RnLr}cN(u)1E4D~Ccv#jY zgV5kVu>Hd;B&qVEDndVmB-}=NJPY%9uk~U*QRe0jA|e=XdUr8TGiZ0Kpx}wq3golc zJ};9SOcdG2A=MH+_rPw;MMZ;FkeWKvjzAaU%?VYm0!b{wZwYK0IeBd8aT_!+VK)zo z-|MA%Nr;7Z%|)X~HV^iT9k5_-o!UzWb6%un23{}d2uRl@RlK>HXoW%JnSN+vjuUtv z#t-?f`W9Q5@@Q7~Go-<@d*B2&bMn_;ds?N&fnGvz8IM~2lOr{}@lw=bu9r9%K{=7E=pm^D`$c2prT|8L|23Nulv+@?!K~~ zE`9+>@__!y4{4x>i;E9`O$wf_uw3dm{l4J1O!+Sj{us@{cFwbuNPMceczK!RDd+K} zXv?P)ym#7$FCvK#JBc)iPe35%A8!HOhx3iGl1~W-jlx#=1}Y=#)>~&9qms`9-|!9K z-2u^y*V|kFsLEy(yc{hk(W#Z?TxZT&>J0+l?{peA%@=In_A6#r!8%!Kw$%U=>y6gD z>LL^zOe`#^MpA8J1S9gqN1eRIEE7|`n?@e_++J2i#qVzoF1v&6D=4kEpK4kc2I?jZ z>@00Uj@@u#uqjo93L7rL6*0CK7==+EPY$nrSL9o`%Yp95_1 zs3zmmVhi50$NOU}@0Ks-{ADY!EN8q{N0$y=KXx-&GCN(rCOOxuDc*x>^|6TO2`1Gsypr(X-s{yC}Z1?9QJSm@N z9(I=JP-2HbFPe-z)PShv5an)2YkeHcfmz4E2}!?1V4r&dxlE&@g*V-ZvW%e8h`t6= zY3mIjmq;4#M!7^=y|5wPWu4Xusm!drZ#OM?X-3`8#Wgnbpu9mVvF@^7&W_|Sak7Em zzL{4&m$*g5oUXm6KuDf6w^QQgRnCn#zoTaFVB53ag9P^&E}|#Dgbhi&T;d;W-zVVs zagft=s(7LYMY&Qhx zErmmexE$qFHK36M-gg}s#xZL&%0DlUz-8`_Tr{jR?!G(0cW6PfK}ENXNSM$AptRY* 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

{djlsfjjxsP_z!#0mF^ETm$Bua4u>*Bw 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 diff --git a/img/eShopScreen.png b/img/eShopScreen.png deleted file mode 100644 index a21df7c53c3ca8c65e0060ba58148d2bd851cba8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341696 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%0AB%sP=V?yoBZ=kq|a_cXbT*}lweOuw(R13eZim} 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 b6CY_j@268W1;F_Tz(-C>`9qb2N$CFr-ZAm` diff --git a/img/ebook_arch_dev_microservices_containers_cover.png b/img/ebook_arch_dev_microservices_containers_cover.png deleted file mode 100644 index 678539964aa5c12ad7b3eccb43a104e1846113fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45897 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 aJECAM(kEukl>sQoM@mdyvjeem^p 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 $#1l%nu;*{y)Sd|p?eKgx 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 gk4bAX0Ixmp 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 diff --git a/img/ebook_arch_dev_microservices_containers_cover_OLD.png b/img/ebook_arch_dev_microservices_containers_cover_OLD.png deleted file mode 100644 index 1837354b55a23573100819460ab85f1e32a47d03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31800 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 VaqyTCwAwceNM2p8LB=Bd{{R{P+&};T diff --git a/img/ebook_arch_dev_microservices_containers_cover_V1.png b/img/ebook_arch_dev_microservices_containers_cover_V1.png deleted file mode 100644 index 3677dafd299366cc5082f6f4188b7959abf594b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35644 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 diff --git a/img/eshop_cover.png b/img/eshop_cover.png deleted file mode 100644 index 5e2f01b87b39403a6b0efd4065d4b8829aa46675..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 754161 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 v>6UxvnCk$)6K-!fj zjK{(ce>h`)y&RW;TRFf!ypOS;Uf$iNSfpoK1zEr6E?|1=EehZ`5R zc6cV46P&v+s5QRH`x2Wo$^JHs-udho7MmU;kweklUC(gXpm-R%kON|R3!JNMRgWAMVgYnH} zaIg+96T#jq(L&*e6Y6jd9HVj0o?R&@uSLKRpUdR(_Wp#%#ZlU932KkGGBv9PZ3H?UhsawdC1z(H*4}?jcA5jOTMpgscRBL**{lrywHLF@0MeezGEH&cbve8wZ-h z%IKV4W8RVPl}F!qpw)2AuD%)h;5sCUI<3_4>>KJ2}Y=^7tzwT=ham z_G*sgSZnHm`L`0_3Y-Jo$XkEaZ|mmMa||*haWC7>i(AgQSjR|3ebn$3CI^bXYaSe` zp*N=czPTx3W2P(0{Z)!sfsBjJeMI}0#cu+uC4b&OZMS^%g$5E8xasm{Fa>S}c|IbV zI6ka`^&~YfgaQ?&zEpj;N;>zG=T+He>V5)E&)jSZt4%u$JpWGk=m9CM+mCa?YD7UC z|CKhG*lVt9VxNc^irHtIGZ1<7lo~v`)$>0c;3?@p@M9+}i~)XBWs)4JAa&vKZV|bB zOM!1xd$(SjIV9w*d64HYLh&j4l01Jo6APyv$1JaRuMFwS2G+szdp& zrJ{N;>KD4BKr>dSe*0^^@_+V2tUCXJ0^tl<&hlA-C!mF!y4S<41uBMYc})e_d)6qS zzd2?+S12b`sEA8g=gQI;J?LFgcM)H{{9g= zDJq}39m4Z0zic|MV!29aWg1NK3Ifqzv)0gAOo;&93uL3xrmZl|2RJ}q+vy0gcfam~ z7!Qzrt*YeLoi&fq;w-wo$XuM8TchO);=r_WC%t|) zTIU((1Wr0p5Blg=3G-o#tHVz@ZfoDgkY9^ZcA(UaZD9w~G0RA4ExEg1A$tm0K{Mkt zPy}53p6f}2zV*-mz8!bq0r3PrW>tJ&hIjqf%`R1-LIS9DIO@@Efr~JjUi8LxUM%VL z=GSk|2d_I?K-c53MH_yl%3l zujM;x93}gd8argkt9_e1l{l?WW-AFCFp>>I6N<6q=fhKSW zi}FK2ea96RZt4KdgYvGCb##*(--iwzX{nHJ7fZ-SHGY$*3Pa{pGdjphW)1mf0^L)a z9$<@zCBRD9dVjYp)FM9N@`58lQ8`d0Mx@AV5gd#bl?~c&`pQMPYKeD8e=;Bz5;)FJ zLjk28%U<6DkV0mApwveY_arqV^U`02J}Wm+WWxyHK_Rf--!t20S`0C839q@!X1_{} zh~NiK^YVLpwRc~uR732OXM0#5UQRG*cAkkPDs@GNkLjYB$Yu2e1Da z?P=|g@b&$x@7gvi%eC07E9JAEd1-&jsROH`Xsk8*hA$;xAdMCc-C*KJS9eNWgtxA; zZ&13fej=h8Cxsg}twGufp{D;KgKS{+PZ{1n4G2T?vqtAc%92Dq?(I&WxEy}__->vg zfZi=A!yA4v{~@3~i~?9#NAO+9d{MbdsoSIFl9TK7%%^WWpM|AK%jZj>Q7XKGx{sA2 z7~tT+?V)ZNG>RBp1~sopzxnHR%E}IO)z>^?mra&NL}R89TRR=FPyL%R@K&C6dmM;N zKA>AZeZS2_@&ez%CtZ>*8|_ypDv71_D~P=bMbY@F4;9L7bXVYfCzRXs;9HE)UC(-( z0cMq@+${yR|4gXq+qdHudkm<+*W@mg1m5V00yRemTmboQMbMmLDB6oxv9bCB8-Xce zk4PNmCg{+@X&tP9;Y8WAaln^5@Bvcf!S66g*=+| zdD)yp!8K9^Y#FVGIcAbrWka8zJYI9@cO|@K(TBEOK5xZ(Px@!0EF*pE$__XE(A#vW0c3QFo90j~S|Y$UY=bhfnM4Kmt?NnBRq3r^uhWq!B%2fqp8@*8{- z6p6s!QMukxpmg1-;_UrT(C{@A9(nP|rrjbStocRVDdtdEqOLpu369R(f8Tbjf=kw9 z&~;D^fOujHWAMDAoy8vw`)ZmJs{Z>8GD&ED=6>63riY-=4eA9zUxE-U|e3B;OuBolPpYE~Bs+I35wMans%fNaH9HfAZ-8>o7WD)5~ zEGqVSS*wcgmlUz?W{7;3-?QPARZKxuO5C30LSw~a_g4gNrAIf+o`NDRAV!|Ghwm;g+Di9L=)Zj$1f@Zp4Se`}tSa z`Y*;`-zeEA;=M!H<}^i}ZrwEEwFF!cQvtjL@!0Uy zB6#lZ;_$0 zOMZx$;hNN?0pV)A;csKaRP2SOZv(1=1m}4>3#5W7RF->8qyQ%QAr-LSzz6u+gH!tf zR{2msYv$laxb9|p26%p+-+`w@xw+LLcwqpuaFbT?n2(QVm}l&BvXUd|+k3GjlY2LJ z3S2}2bwMFBwhsCp$zmBLTw^~;fE#iIQNUpCJ`c~@K6@~$^9zU=GrtIGV0TaOtINk?0~Few%fr{X`fLBH@zdZ<`P-MvZaT^`4Cu`!8dAk{#PSPdI53^jD}6<^XB7= zd2P;NFJ1v7!3-Zm_lO&K9e|BmcHjrpdTTj9H9x1*)+01Yj`umh2(YLk1N|vs{V3y) z2}5(wDGt^@rv+e5#!^jlN|nPok~yJ654pZr1;7HRU~+wu{V-soHy}yu9%6k-D3$`r z5_BYO{S;*j?IgNM`kXwjfq;M3-6VpVX9o_9<@k3G>I{z!r4X-!5G+e!CfM{`_qM4v z6|x@TBJ7K?0Y*I)ABnl*p{2mP6PxQ)%ul|c`#`t!BEKuj167kgoIppjUH%Y5*w>cl ztdTVKM_Mp;uY=To2W{15lDhc}X}H&YHp70})U_V7087r#&$e36x@!9T%H+F4t;23u6xVO{ZTc#HxV9?qSUhU2sj&jCx@#HzOQTY z6PCHAwqzgka_@IsEXI1jtI0pOU^bTvjvfhDv=D!OUqtRwuz9H^f71EQ`ILr@8x7rI z?2eN_{85zEF*carYnPuDsV@`OVSnpSrAW`_wnr)G)*}ZFKX<*+TYIoo%$z5Q35w{k z_w4DvSzfS2w!^vij~Kz-ss-vHdxd>aWaUt955>DSeMRiag9T@@u&|$sZU$b zJj43bVCiIDr}x6Htvw++b=U`Cc%yga8c|nUg+8*jMA_$(XZ_QZwl_t!mC!IQU=j9n zj@%Z17SJr3xOO@qp_`vj$h+pTP?juqfc0wc(;GH>=OzVrEP>+2u@5xECW(8TR@iXQ zUdbKKIx?$w_oC81!ur%FnU|(I+Ke^^Y^I-nY2hX=)5@QH8q0B*HSE-@&Dd@KnuxsAu@WH=+Gg(Yl-Z+Nz7<$E9sgsZ zdTo$IpKMX|Efcupa_yS1O}t#`r}Z@>mFw!QHK`)9wOG+(ojk#tLOWR}6>RDvLwNyn z$%#p-9-0-~XIe9}LFx8k<OBKIQ&6A{g{6G|HGPqV$46sEYh3D#yu{U}! zs})>LX;)>d=E(5#!qtRfQ)ZN*ARg#+(o9SKokqLfTThWaHzH%`L|?Nhm~Nz^W^pR) z#K3|?J@8hNPIT@8J-cd$0|9p%rl99;O@LZ9`z1~3HjGq}iO9=VS_CkpQ0cz?g(f_!NI71Qx@ zYkO++pukqb><_VjWO%M#HG7E9@t_=UYPEPfSPG^apv)qCy4UQ;b2D(r(WvWBEAi;9 zLe>atd!C!I!#6c^LKLl54t3NB6m-FnypPmLD{dF**o45-F4%iGB!Q3ZeC_TG2m5c(xHD11`O@x?;J_!}Y7b)ZbNom1AAN_H zUi1B}VZd!#h1<4rgh`ZH?QWTQ*naP08@JaI0I3!x`0)DM0pdAjMr%i%CJxOX+Kvel zi8naqbeDf2zh%v}b=Zlls9Z%qcOk&9y*Z7jjX!(Xj4=f-5e0Zc`%h(Xt@4aLQJ=xk zH4yN{l;1r3849K?i|4w-?IzNeBii})VRQK&*`-c|pGDVl#3F1C>LDE$-{(mnJrD&| zu<3V#2luJpmJ#EK=WVWAaHA=|UVY~Co2$(dE_QPs=`2pe<+eW>c@T({V zZ0N72*IE@LiQ3Qj&0e_+emtHi5a_(~`(Uj458dPJnX#y5FTi~GFt@t5+sJ;l zdbihh^@A)auzDX@{46WhMcBug-<$Vk+>mX-m`op%;#6dp@5R^lf?J63L9)AyIbk2% zo03!qIX(PY0Ey_Tg8j*fZ`IPwxoGJI*?8Tmj(K2ajX+gsa@$-|{<zh&N`rGQt*3pB3Fs;~Zqp~ZE(ZI+n(_3Doc_r-SsGtaj9 zXCTaX*8q`@Lb+cj=F1mzd``WnScx{b0tpa9vbr1AW@0~x?YY+~SSYYjeKpD~;Q0Qf z7xaU!1E4z6v&<_dzUHq&ZBlY|*UIbXD`T^-Gpx7y#WTBv7DsVbT41@jK?FBJxrjds zMiUMg-ayRQx5s}rh0#iuQ>;f0Kl}$Xp&QC8umMgbedL_5c3~_-ILNr$#nDVI0Sx6? zE5)>4-JfuUPs)yeLT=wXJm6(CU^*iZa4bg@@tWJ~eEV?t%2Qs{A5%vh-8{(^B351t ztTLMI#pML${(3iCfo)YJ-zha-t9Lx#&h3*Lk636FM@OHl-_9&pN#)x7Flv2Q9f6s@ z!TEvm+UUA$TeI<|Pj8}>=rd0Ynn>h!R@JRCxxQV!HDJCIf_tD#eb0NGFMNM}b?~`$ zp7yaCWvBB!Z_ev<9(0SkSl|4Z68(@zp7hE6=dq=^-5X&;h)1f`U%w*y9QFV+Q-2jc z)))5FimSi7d0_los<5t(N9cEnC80$ve{71`mSX-R=5MqlC0rA+-~{&Wx5}whBDZ1L zX`^R6bS?(OZY=@3m-h7Qrsk)Pp$dK;qKLG`xC;)$D&ExIEQ}4XTvrTz&Yk759!hf7 zr-&Wr^A^LKwME5fv@(7Zmesb#ktH~1_kSQSA{Tk-m;(|4t<`)L!bdBdKeeKwZ;N=> zPekZo&+b#^@#31Uc(hH}>0K9te~;TOWXmIx<-79#Og}-h3|`4GHE@ZY%!e)cz9gg( z$!lEa-y?nth&blbTQLGE)J|K0U2rD!-*bH&r468=`GpCFejpoCHwOFDlB>NQyihL= zn;&;yiQ({k$DK-CdEF|-P%{@l_xj%xe7ht$?nqo0zY3Mx(fB{nlrc1 zS^sOEaH@6#c-x#gCqtOf51hPUo8_E_GF@+M9DZ!Y9L%8XF;;7>9qeI}-#E%n1+m)Y z4eeZ+iS9v2Z^=3TjXUu|sGHK7=UU}LsB&ml?|jNL}D;(twlcV-`6Ap z|6KDw*ZmJ1T*&6Omi?sB;eufUnfBaB?fA-nz zXGJUi{l}Ke%sea2O$*W(S5z-Ps(Skao+Tw))!^6dImPtJs&kwaSAJj975{5|_ROZ| z%xnW1V1NDT=HeRyv-e2WhriKrhW?#j13(&}Cs7^ER#e6Fln=)mucY_Z+36RzJ=7$Z z*4~_OaEC}&m(`X`O$=3+DOmt9%SzxU)j8%9p+>f3#f4JryJ}yMN9LfghewV}*>-g) z>y5`i0Q{Lp0|Vg(#14APZ6H6><93}KRg#qvI{047qhBn z^ak%3g-8w-H8on}H>osr{OAwYFGb>6SzdK94JLM_HRQei_n*Osje)xMtR2@&AdM2d0VOLe!&NIi~>C=dKud2V#r;hY_ zO~_M+-JV~0ecnFk4)J_~XN133qwU1!dWz~v&0lG59lE{ZA{mf21LT`S{&wD%T(mQl z$ z&9dCkzPhWn`8O7dEs&X(-q``mIztcavjYYn94|1fHA%Zt;{VEc+luczV34>fJBaSBH6(JZ)BhM?_b#BXGp$D|Msirp) z7OI)#q++iJI)0Ykn-3C2W0c2-iUMzAJarc&%~`MAG$EJ2R1`gye3k_vzA26$e^#=$ zgtycg@O^WotTa^eiH9YucHE}8x%f?9psob8YO=c0)s-yH|1VSAWphk7sUqw$C7ydc#uvhSj+vV}*MjXg!at zg)Obosb@rcifU<<(r?_jU~_!Q9SmeM4nzoR!l_Cs5YE?fs-`{+j4&=0`yL`^|7|rH zp<3%_SN*1t_~TPxn#Izgp!3b;!jj9&H8&JsfiJHwOGafIFMm1oN=M)4f!D~mqbelo z_=s&||JN%|x0{tmAO%Xg+YT3gd!j=^O@E!Iz8hScYaXaB!xjzhKk?WWwP%f-iscy@ z)@`QZ@G$$t<=sg99lNO!S4sCQ$nEmpboabWb+p#C?sR|E^Ta!n9>bbr__LCVkTD?P z{)F!>)i*`PUw@uGHljI|r)rw#`M^!`_ir;v^g~m>`0YZ6{(%8}0WEj(OXi0+3r4E< zSBz^s=XO8u8BLx28PxsY*QFTAB{No`_Wp+tOR=?<+ape_Z2PK{c`kkX8;6!nZDH0! z&xTFNKQ?pFfw*c@pF0n*e#hWBp6?YIzZ3@et6*;@p7|uK8cqbn?Jb{z#iyU++};y6 zUS>)DWLR5$a7e4PUf5_dx0N*c^0dyU+%vo2y5DA~K-F>L7ZVLgc|yFe!pPGMNNJcV zp6-$7FWP)s%KDfF!~*7GwVk^S`!=>gt!YV9u)CkU92Vzq9(brQ!Kj$gv|RNOZvH*Q z&~3?*y)X0ip#{OA&wGY9oHkY8^$`rLioJWxls)E#&g6YATUI1IX1NjEDjfR-pk?LW zLRmu$rKKRqU1Y)&PLOBcG#%2{O3(ekY0dwOb^V9zcMte8-EQTyEd#`@ zkOWHhZ;+~+){jc$QszqQ*B0;o1n;p_DrzisC_|K$JhbDyFvhZ!-hNGv96AF@*u{;d z4iZyW6RIqC>2PB=hSM2j+&<5~$(x>i?WZAq$zLFSLoWWQ%39y@ziAdacl00>nwFgm z03k(qs zKhiWvJFZz(v+_j={dxT+sWR5RE=37HdHU2FZ30BgiwbVXmLwz?JV5(2?-agLHn)G_ zJ`=`+D{{%3*_A@(29zdffXkUtzRkKmPckm0WrHr2?`1(NhAj59x~XqW%YNTgSSU^h zFA#T9Uzy`AwZ5$UlwOSf@zz%q5!0?@Z67TCyN8umEa3TNGJZ*-aVOW@Ark@%U zYLu$6Rg+wm^!3!T?skpYc56r>aOhEz)S`6pa?>9YgL6!HT}NC0_i5NCABTty$3_xP2iZ&)FGht z@bY9g^o$f2|HaAH=_wx|0zQ6+|l(1zt zqNI;9YM0;sdl^sGDk7VCrygQNh9V61#39G~-n_W@>6@3L+kFScwDJOl?ZBi^45}YJ zZyTKWD1ZvPx!5U!yP2u2ogKUO$iliUXKkv%{-<3<%-+vyGf`H^Gq{7YEp8(hCxKqZ zHYzT@*a`Z9jsRb(TW&&tF)OBGvIB0ad2o)N>^poX)$ew&$??3-L##e>c3AGz*=N}0 z>i2WL3rhj_OM3khQqRnr68N`4dM%Bst8$dLlO;Li->a7(#U3kXOgS&smCvAka#zM? z18&)hsgCI#KZnY&#g(AREr`vXoI-32^i$Y~w`Fn*$>O?5Rw|BUAG3Zn1th~Ztyj7h z@Xbd(ptNGd`{FJ+i@csD6QX>##pk!4_FPtfT|jwDUdo=%mEJl_ed;GI;NYp41;Q$a zb5t@i`-4keL1tJ7ixce+S|Y#S>ZXlypezx|1;p_=fIa5f%BAvEb*CQp$|0agD$}64 zn2Agp%y3qjOE+X&_jvj1ajxj8_qaq~+FxARe;~xDq1)!gx|mB7&l`)z%UrN@&F=iL zW43(&{s;e!OE)!$8dZ|E?t#U5e$^MOJ<;Z<{XP4V#P}tTQ)+uFPiCoke>?b!KmIIa z=5qtuM$oqH8edoB?wqRZseR7QVc+j`3wVAD_eox0jPwj=sV|S1DKS`QAIgQ8L zdY4I8mo~ui2cBj>eWP@xtjKZ{5`dqyb*C)t?{~E;`xp^mstkeM=HY!>w}1XP&r8(^ z%wwKU=;Omu7c|Gj>!nOA4PKq$Wg8h~qc4)qCXGAq<2BdjecsIL#NyQyZsj}hB2889 zB}1Fn|M2lluY5glVQmQsD2b;eHXr-#rThNoEa=hT4Y&xMzN@xxCl^pyd6#3L3|v%dRO zG&_8RyjWOvw|PeUi~L@Dc!+nD2=E>0ej<~6iaX}_KsJPD!}DfT-s1suLS}%8dG2Gi zhl>|#MYchZ;=Bj=&wXRV=RXP>EGvwg*Y2Jb`s!Jdx9Qosod$F@8zVD!ju2)woDWb6i3P-3$vI zg{-&`yuC19{Dzfds&=ZQsyRB(;`RR@0O>#$zXohxf45EaWSzK~n@`zfK5cU$af)36 zTAenO6|fc9qkX-60)ykK(+Rc5xWMpG%PcE3OtbXtX_l&=E}dq%h8Y!dM{PfTIlawvD$n*ks2Xfm8@4@@ul8T9QKT z1KHt($7&=+hvmpeZ8jwExNsnED~1L3MiP=jy4hISRt}bINjX~~DFj9#ARsA*+gsFM z)aN@nZ??fU^<`ZT3v7-EXpRUd1J-*Lc1Uq3*N|)*3?v2dASqN|5IchkGb+G3sq1+H zz6Qe8^Kx>2bHrH8i<1Fh_zv`W(V||_VOCc%Hp$64UOT8_Gq)0(h zB;tO%B*l2CY?H-4Cn?7AMH>^io zK~yg(eIwHu>+S4vlA_$9qn<&I479e|sKQP{Qm78+D&Kjs-AM}BxmfkM1kzIqVX;ux ziwikh3`vpCs$Gw8v8>6_Exgf8dHAxCA?guaRW%A=^fb1DbK8AJsn zMOpb!?x9Rx?^j9vq@ec;l0x4O)$Oppha<9WvXHkW-Rif!J+^s&ukAWqveBVQ`b~ z+6r=Gz6KwFd&mX{;~Hc_P(V}!g2Ioe2A|bIGy_z{2|yn8LAeH5J}^%Pg@H8S=;sWU z7?`O(PzOM|=01ZmCm&Ql0B`Cp0B;l^Pgoz=C2rH~=~WvCs!- zr+MU~bO;j$xej8IvQhp3rnnEF;6C*MIl+BDXTZ+jHW_RN^}#0tTU53%SoA?EgF^Mb8L34sh3b!q!-8tA22iMOb7~y2|uFA;F&t8 zk`&}mJ5iU^iSi6!%j*U(!+<^+#5*~p@Yv|}Tw{xugXby(_LEishu&{$z>W96P>-Rn z(Z`a!98@P^oDfKqu+_eqghjE{+W^}W`yCwVJOG^VjBs8y#rLD`g*4o5J?GhKHW8LE zNm%Z29opQ1ByC9fl?LHLAE>IX1E}=AMS9Xu2DhQ+JoHcO2zBJ(is#ss*yqHVo>RwO zZtTI%B&?TFM-NXL$-NMkHlyvlFVL1rKMU>Y@0;xQJ{sCMDUa7V=_KV1^;2u3e^>OK z;TUWVbsB8)a`2wfA9Sq7mwKI$4rL6gFg&Z)QIb}*Y}~KW@Q$M%j&zf7exGytg_P%> zM`9QGuco!}60PRLb@JTnr>0Ka#t@cpy7u=%d3pUvy{bj9iT0e{^M@V&)Y@MU3K48X@qyc%R_x6N`9`g&Ff$19KHUyPU^o1Ap1cZ)G6eML}C?>7jh%xF*dc zo~vwk;zW7Wrj3U0VyJuGiJ(qUK>F%iiiU44Byb=pARGAh2jx5IN8Yo|5Fmj(fTS4F7+@5F0%c49L7`_83d47vG`x)1oTN*hfgFeQaN>h>i3dr+v4*Ii z45Z5#$_WbT5aTC)Xwi`$oqXJp=zzvFT>|@^0s-zxk*>Fn^ek&n2#SvE2G)@i$j{BP zOrgoT`#P;}C~JeG1sfUbvB~j4_oSFB&K)X$#$UP^VpqOFxEi-Ip^E9iQgHG3Voiz)nbapjc zMj)yn@Y}6HH)KUY1Nf9cK%2l}%gmY9KD|N+q-M<&cx({hY7vlXvxU+H`HC09Naq~u zZEF-bRQUwr%K~kHSAgpv07zh@TOhmC!gGNdX&=8xceXkZ;+Ofw{OVcE*g}566p)|P zKpbE*oX!cnbW}VkASq@|bK(S>G6M5O0osAC7XPJxUY=k3m1eeCKw8&DfqLDW)V&4S zwhCYnh=8P61RbZ2+sl*@%GBu*%gdpwr#nDj?lt z83E`nJSk?*vaVV6I&ZLc)qCsosn#aV33&Dj7z1j@O9fjz)Nd=*A2w4z*>2+{w#yb9 z+iu&gvfX#w!uH&0OD8M#+Gz{>)Gk}vXLj4#KKHS0?elwXXJ7dE_V&e3>|kH|#E$lb zJ-4^d?!JwCUVL(=t!$5NHnW|!+}O6=Y>92Ta)E8Sc+!@RkJ!S&KAYdyZF9>7o9GrW z>dxCd9p`nYowyhhFnjIScY!ap^`zQ#LSTHXt=|OqMwXt1CytJ@r&^(Lru7R% zPpaR|Q~bG^4r!XUJzsMHKTq8$)aoW98sS9vOgmGAtw3+fXm9mNeYD@?!en(j>0xoJSh~e zUjVhYv*K|9xiP6aoUeLV0NJK@YC`3~TV%X#j*aTQ8fR6u_ulW~uc z38gbhnvfr=ry;dfpA>=MLcvvU#Ab%?XZqsF|6&`O2NQ!aUKBjVys@#(u`c~=r#@UpU6f4z-SL$1`O6>+gv6;Rfo9X?)lLAs= zX+l!)-B|)Ls=kD0Mp<=`@1!rHZLUS-(T5j>zInr`yuN(}eLwTEFQ+!i>VDQnRKMfJ zg3a%SMC-Pdz1_C;K-sn&?y=T^mG+@Nz_b1_xfg|iFQfz{1mpn!u<)30{eA^x2TuzC zG)Fus@L8=*S^`FM6;_9Ddy^*z5hb30Sllp05{GV2tX_ZPYSOO2!*d#@^eyw{3)NxT2L7wK?qO!?m;09 z9u$F~2pYUIypF$-lu7APkM5bF@{m6y1%Q5I4eA(#22kK$6o3N;pUD8!fr7&L;F`fJ zgHu%ZeIT7&^PIt@15+vIRnU_R%zRK5G#Nzs;EVy322Fvaz?%Znf;w}Mq~|`^A}t1d z)GPOO&HYfveofvg7kNPp0m8lB1G%Gqz%_$4@~<7FQ-UEEL%q=UUOx=z0SP*KTPR=G z#D-A+p{=|Rgme@qfN}3LN!`@~oY3DK43aN-a?~~L0BIDS0VG0S^lK84RJ#~k+$bWK7>u~yFH{y{p%R|VyI)UQ$3?jsSB@H zDcAmO;2HHK^)$#oN!PzE^s}UFp{zWkzwjOK?;`cDG^^iLwTY*vwER0n`q)AFl{V^j zCHFjE!V`{j-S;}CY)SZP9dYD7&lL_^DJ%AQT@se`$(J(o-ji-}9_*;ri=I{M1RHce zT!(K^=yyC1ZOf6cq!+??UZflDCErgkKWWidleAE-{kiN2bzZHXBz^w|Vkh+y>?Iv3 z9tyNU_#XTBT;J5H7X?5+0sC|HEO=3P{%c92mbmcedglKNX=B~v$T!_dcKz>%oEX)Z z2C{iTssRhEmdf+TuFoRzAoz@ z)*y7OWTWF{o0u51xf3HccixzLO+ZpG&7do0j@w*;((%a=8yy?4p^-i(Ci(|^ ztdC##2Lzz|iq=!kTcMP;RJOx9QZ3fr)nF~{v)qGXcI!-=-ZI^$H%_(b4byB^(=40Q z-e7IguFe+Aqy*m5?UvWTIjcc?r+{L6L!-6LsuNhAA+S8nx@OL>!kk7M5XhQT_{mJ0 z07sj<+2hLIE#O#aQ5oBstjI6g{DLe1;lI)fP?VS=!7t=GI$0s$H6ZXdo@o~t=(KsR z0vnJN0`lY8iu-lH2It+a?UoZ@Wx7YlY}M<`X#({#EH}Ge`OXoLX|iDfvawu?jb@q^ zuh}LG0x@crxw$sw!Bmb`0hJD)^09E;m6d5L<0-&viwz4fms{$rOJKZ3pu9tMT@;wcLtsF_ zX(%rMqVn~sPPzq3nC_8QT3rnd)>#Khp}4bVTic8o);eRVPxnYlTp?+I2 zK5CmTnrmCFSY$hFy4*b=cHMTB?Xvx*wwrX9?KZVtw_9aI)DK!%X!+1$qb7&b?AdI6!wlM1{_W z)Ms4PUxsy`sV)F=h$`B5NI-Q$fEACNd1*Xzn!J2tdZ$M9P7SM{3`omO_0}`H&U)%* zT3HH7F{ttlshk7#^)}E@XA>>6ZK3MJJt_1qEYCE$7lnILq?>H9`uJSEuVYGogmjfZ zgbKtWwsS-Wq_ChJk%4hm!gqDS*Z8_jjw zSe~gKJx)>#XVNyJcVHZ{11}2o6Y677^-@-wP!Hq_Ndh@B*a?}CvVoM|8KpU_GzL;> zCoCa$@WNS`OWERVMHeakh3bO~6n~-mRE4C-N^`cfka3TS1qwf={2`IZ5A9LeE5t~b z4JpsjuC(4|l~eB=Q$r?mIU7r7Y_vmtysblht-}_poExjZZk)k`qQf@JOZB~3Rp_uy zAt_2J+oaUxB!y4&kSA_;|&m zp=m3d(yk*!0t7^rpx_q*{lkSg2t)Xq0At8T#6 zBl?glbs!D#d_bF| zGx1T{lq2_bP92bzlM`rCuhg%r&b=S$=zTD$Q{n_*0!Z>cSM!W|alnKow$|G2amg>~ zm)^#@M*Ue5k953_Wh>?4nTMx6lQ^7jdX7!m{QTA1+`$`ZCgpHjrIaVUN8GR4NZKK+ z&fQk2pJM~b)91l!rX2W6BiDB@Li8*ynwg zxTL2xrEk%eZimte{e|;TU*zrarCt}wd1#YB0t6dEorXFKwge>}=>ir#Uh>WnH`JfM zhpJychBAdb$SfOO+D4to3|a;p{=B$9z$Jvno2M9eeQ?vnk(;LNQ-opM`-(MyHW>~JvsL}q8upC zxKG=YKW#?d$~V*($CcEF>+S-9u_OOiB*L)_3$iRa%_!f>v8{15SKn77xpIQ z@pQ0F>F{0U|2*GY2nqM3(0Bun1}BS?c7hym0)qI`#Zrh1${Wh;mM$ ziiD_O%Eu^U9mXBX6Ow}Od+q;;KuTb1)sq5Sl_sQ$PYL9Iq}0g@<%9CS5`rQq-V+cN zgBou@Q1mfnmhlTm#!?#B6?)Q^>rPp|)M@!*n`Mgvp2a$A>z-*HrCF9L2{3gFB$YL= z?@uQrMYoMl^x5R(kj z0kO0O-5k3Fpt_oxt-Zc7<)cvmv2*qeD+y2!2u%5}$^vV+><*i zudHQuHS0WEFE0?8m)&`l z0U+GlHb>!`6Osatl172GS=L!U&01zpwRVB(oIrVBXRDJG11j5qfKs0TUrBY6Z*LYj zX|hfM>UM$84quBx{br{6P2CLl0>Haqw3xTKgT1z7e8e`LKi9Tey2!TQbeZkA#d6ze ztL3)yHY;uCZCBY&I_|L5#RkrI6kQke}r^P3B-pZBpkL|Fz z?Yiw|w)0k-*p8bnwe40euq~I*w-xG(OD4x{$=I+h8t%7w>TC1xs^}@%WOvcV3b>=c zMpEEOF{yf8pt8;lo)pb9t-E2GW$QL_&DU=vpsl*b144adq52yx`OAtK2atp6TSc{J zzHzo?1i;fyPE5Cg>Y|u3sVSZzNkyXf!3iPwZr zQ{h_Y0PI0X2%q-RY`v`&uw6>LhDuEhR-U6a)UjW7^~;6<W^tHqb>C|tZ=
Oqltv=G%pfnrmDqa+j6e{14$~mO-G4;0vioYz? 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%0AJa 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

vs!)zcB≷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

Y`{drp*<48k}31-PE-|0IlN6oV%LG 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 z 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

P8J*JD;zv&?G7*6ddF<9P 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

dqw2$0 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

-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

Jpcm2BWZ#_E0 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 <|sGT-TCNIg)s~_Dqowe9jdR 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

WJ(9=i5^ zgaSjJ5nQI|Q`i(Pj>Ia6+bNxmB^^k_F+Hl>+uh3uD!fr9nk!s4^y_OSywzM!uoetg z7Bm5gKKqb>U+Y$%Us@ia_qsri1saM&Jg>1=*UM0fSu|3EnGN;soOYGnsqx|1L z6)e0qz4eA7S1&dl+zq#BB}93(I)Wac&iGKuBWZPA;#*lea+Yud&YkL@9M6*hAlCG1 z(=8WrvW1?8{w2g;TAeJkKz0;kMMKwr(o~YY5A4bSEEa9i@p{4a7s*ww)`UamM%a`8 zfP`DtzkWfP8(Td@XA>2r+Z9acI#`aup}Tu#gATz^@Mep7IQHf{GxO+FWz717=1OJv8Gab$O@ zrFn<(?n6g3aoaPD9`$ZNR>BJ^h&42|tI!SY%#Fkb53flxNMCUGMbppjywPZp#C z#XtoL3<+kQ?%0XmnECw3-OKPuP*Jx;!f)X1%6R+Jmgp$=`**PsaWBlxY@Z7dC#Ghl zcHQg-yPCOf!zzYRlNFdUrLA(P?2gU>mqu!FxQWT9Q2}6y7d&hg^4~VhtVO-y4jN zT$9){>23P*kxNIc*2S$lhvQx3%BM?^L0fdJm!QOf^hz4x zy5)CyaXBO;7~^_8se|r0VAf@gpk-g|N%|=hbDE}fz~g5aSCNd_V?d>8`9%E&eYnS* zn@oT!5_;7RjeROL!=w8nF=)FxcT^x12353`o$ukes8Mg!>rrWSKJ4@V%TRJ#lHYjrQ>N zl)FQ1pzf8O5OL^rC83V7IC==J&jBz9oGzI+xN64o7s{Lk@6aO#bJ^6tcJ*fBNq=LG< zPHIu`y^6Rwok*xWX+758A-1l-SiHJaxVkQ`%RS{q}|+%{Aa?T;TrHDB%8tM7Uogo!##mr`)g8 z5-rcqW($kYnxl%(e%17!B@$zut*A@AA{PTw@UZ=fRYaK=j1xo^Ha8Oxi{!@?Bpa;k!}B_JDQwiy(Q zG<#%CZD$|s*9i`NkkE!2=CEI6CaG%%6FdkxZ_}c&);q8eI^y|Wi%g)pJlh}wx||`b zE--0BzmHtm@;NJH+FUFRy#B{Qpl2LtA(B_jC7s~kM-R7Kt=G}}@VH3~H#_?EByH&u4y8~{*X0*+BGR&0%6Lo$M)XUJP z)MxM+bF^l5brfC5>3+}(d&Aq-DQvP)QOD856i%F zN`I>?_M6$Z#dj29J9KmPNtK>Is;HY4w+_VWr)F#}D_Ff=cIN*6WkC0c_%3R`?^;~3kY5jbD0cr2BhDJ*0BP8xK347zE>+N`D77bq7o#cuFjcO zxZ({Agufu`lrz9v5MfD&pk$I_Al^84d260}3K&njMZw8zq~_gX5Us$15E&{65Y)

Ao(;X%RaIp+^a6dZX~k{uIQEn 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 E53Gg{G5`Po diff --git a/img/firewall-rule-for-eshop.png b/img/firewall-rule-for-eshop.png deleted file mode 100644 index 996b632ea688173f19b9cbd5f1cb72060d0b8c51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253070 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 O=GoOe1k*|)|j(z++!;pC%|0IH=5^qGaUN6Z+ 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 IKer$J7dv&s8UO$Q diff --git a/img/loadtests/k8ssettings.PNG b/img/loadtests/k8ssettings.PNG deleted file mode 100644 index 6bd6cb058f156dbe3253f4146f4b1cb44a77fec3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67522 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

ZRs*pBASEDrYvpi&{h#bj;}6H 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≪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 aO<34nflEy1{^J)TNQ%n6E*5_K@xK8m48pYl diff --git a/img/loadtests/loadtestproj_dir.PNG b/img/loadtests/loadtestproj_dir.PNG deleted file mode 100644 index d880e9ecc5dd323aa586183764ced6a435faa4ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9246 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 Sm=k=a2T)hmMwBVpJorDnqdO)5 diff --git a/img/loadtests/runloadtest.PNG b/img/loadtests/runloadtest.PNG deleted file mode 100644 index 8c2cbdec201b1ead0293dde8169b8610fe954569..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10315 zcmZ{~cOYC{*EW9iGCI*oh?wY6qeU=!O%PqQU_$gx2ons^Bf3$dCPs@Pxx~_M8i6crLoHnkthn!qR)Vwyt!~XqWMfbBD zvOSl-=J?K}`?m@`PfOo_VZZYH#jL34%BHw$(1t6xmP*1Ka3Ev^P{0Gwgv88%mAE{X zzC+yiQU<8*YH%&aN7UXxvk-?!Sx0chqj=wnjbNPYtav`4ColeF5jY>E5-|46@H&x|wEc|vmH{0HMlcaSugsOd& zRXA=F9XHAjyk+q{0Ah+-S@nI9(!4hnU!8BsIF^VcRUAFDg(UF1s*T^oL@RZZ>UPr9 zNC@A&dKyD6_=e|`j4pD6SEEU~B`lYD*B$QrEkVb(cyNb{_g7_addYWVJsOs;mrlq0 zDcIATB#R*PocYnX4P5=f_-22GbqTsVd}TPoW@6&8rL@S{WMDG^z$Br5!I@llE;q{5C6 z%H(OfGI`cy6H;{Cf^>@F0-*=0{7h4*-2zGJ#V>#mnMpQk#5<|)xA)PR<9xz`J~3eF z*^;D=tm#DS*A7d&mTrI9??@3T^%-&(lszj|D%CvgtNoJGSZm1QJ;Po}td8~)Uc94E zalZ@`<2|dR{s3E0M;FJ-#U4KSLAf{%k~~dMp-}pCN`5G+$8B7yEbiJh41Qjuw`6IH z1&Jw%6!b*ATwgQ&u}tX(&xNtq(-$S*ZarqfTNxzac@mQ>7su9Be70OM+$+&Jzb;}VzQ_gt!YT7=gKTb&quX=Eg(8V2!sDb)yo}01 zm-S4tRX_th?SJB4wng_~T(DVdc#IO0v~EA=G3S%LTtnx~Gb}N|e`gY2pqW=1qRuaD zJE8Oq^l&bIc;RZ@+;Vd92S{(8MV(tAbDSaW8>*FPowLFaI(C`X*&-`bVXwy{nm8(C z$W`vHEjAM}bZD~c33}|m*bxYY zA85rPhYZiMs$6aW%VFT|_pB3WQ=p=)H$|pFbCn0al3aOMKZ4K)`9A=Zm1{zd2ZVIu z{6#ey3@y|}Y>Nc|_(}dnH~=WcK@bAQj!- zUQ&*iqR;PXUm18#8yXYzXZFQC+X&ynt>?y=?dIPz8d=9pPo5if(P3_#%>kzhP=&ys zd$abI7pZ~OEZcRTV{#DR`ut@z7}{6~`09jfsy)%wVF&DppwQ(nWrGTx>j=tMTs`ri0Ys7d8Ov;8m+1SpUqdr7tcOf1P3%E+7+*#nnS|{ z*%Bu{J9FUN5Y9h0b3K1Bf>Zy^0;||{z{9und@OlTJjF&O0k+|})%aM|!`>XKVB<6G zeYkHxBau!NVu3v_{N&y0+Xl(c>u#sKKQDdFdCj;hUi-R(!UHH52Pm}vwoGxd9Da1# z%#pjgQtxp>bV2Qlb$wqy8}M{g8LsNn?u3?-Vv>K74NF?i94%?r5t zo7D`o-wp6lM7^r@`l@rAV7(w-b}y1B+~jE#2ZFv$V>ZIaA&8)P>-m_wx&p`QAKUAv z3p1lF8{TIpqpjN`x|}L=n8F3;OAfpn;W~(-S+_y$i~0eS2ivPWThi3EiG;WGw4!e- za)m$Wi@?}zD6buGAda$sH&y(u`4zzCeIEAQhfo2}Gq)OM`=>gR$^vxr|CN`aTs zbV@h-DbdG5Ng7r*-2>_xVf=eb&yBVI$ogr{ISgc%^@pn0AH73#z34y(a2>>GUw+23 za+HQJ-@idYf(P4uBY4Q+&1*rhrD=J>0u{rItR0xiI9BM;+VCsr-n&jCEKNxhH1VNi zZ9pROjZ==E5QL7B4@Tx*2gIlgAywKT8(lx1*)qN!q8{IR*j;4(lcDubs*6*h-NSqa z0>dU{28EA%nhnHa(M--#TG1lIK3kLP+a3#ix@?@c=McG^!c;06O$Q`k2O= zOb`EO(67MOmvZj8zdn`-U}}am^d_Z?a*Ih#8IUR%i__YG*^49JG#l>wBR9Hyegb59 zzeO4h3b&wUie4)4f9KQaNLyVthfQ&WA(Mm)`7JsMp7xHM5foaoAgtp!KjRpoxSjIel@f=<_a^gLaVd;}B28 zjgK6ox1@39<*`0w_~aqG##y;IfIR3Qe?zAK0hHw2^OK5J8~~sv$0r9WnRylRD?Z}@ zRy}?Qd!8A_CziqbKHtPgtz@j6ER2AV0WO3JYA>VpkKC$e@Hu*e6xdn21y2>UaI`A4 z%^I$h=2gR`AP*4>kP)M)a;msD#A}bwIwAiP3#i%9C^$)Cx?g1U%u=@QTLwRWbJ^39 zel8ohqrfMKzm(YeH)hiGy&9XJnv0V5=9TeWj-eHs7^+H++hxt573IObOuqNWoZ;aH zAKW|JH)v(Ws zSP4{;8vIDo>%|Ku3m${S; zJQ!4MK6u@mM-Uzz7ANB~*wcEfwf$DItk38y_z!9&h?>g%(TNI^spO)2liZ0vF6%Q* zG{svg&x@da_g4(94j0{O`pe-kyc83GTU|S(GI*w6&ovx!vaq}>41Cq0&(@8 zjsFB5&k_fC^L17zr4|ma;c{&$9G1F5APpO_5}3;UNj-dCL$!vq8V>1)@`~ zbz!ml4I9CYy?qDn@JCSB$lOQPd^t!sTt$ zpafS-qdtJez^aEjO4v-JHZ~6{XmF5&J<2D4G(*oASUo1%th@Z}eBjZt6%N6Un7oT! zsiafS`;H%dEgT1t;I_psrs8rv3F?U1VP#&WxLP_FWP*yBg52w`p>cz%!-ReU6%X1O zZphUQJ)o(GKMQm%`)i#7aNimKVkQazXtbe0f@zRG0Dc>j%Xq^x2UrJME)Te0B~yZ2 z>$8q6m-T+(vsR^R)JOGn9&t3jxl@?>Ar&7vKKN5?>0VcUku!6xGYnuma!wR=& zdZAVLrR1eq2muH&$>Nf>&(JH;&|I8Kr`H6rN*fG9t*l}5WzT6eD<>*@c^)9)}X>FROYw4f}a7>Qi}Q*GxTyW9(7b zPbvl=SDhXs+ycX!b{DJ|{_O^A3iTiei`p)Kkij&8p)~=xu`?cU=Pn34K&dr71-T0) zaEH+CZ<6`fP@;X|zNkxcpT!PgQ3{~al7A*|`ghK6`xoZ}FOu0VlYBFGpO%>5NaYVC zvF`J|_+3>d-e}EbZU%E+bQ(d=28lu)47{wrNIe>*&#Bv#0mX5_zy7-KR+?VK=CnQ- ziGsb@%DFz^c{sVpB6;@_KQ~;36}7M=JG=DVCoV`Q)F-sr21?=l)r3e78yO74UYX64 z;)?T+Q`v?#^H$xvPmT}N_ic0Z(ci2r$D&|22S5BUum$bRA&($-RSy3Vs*m=@^zNd2 zeQU#r>$|Ul2o<~JCF$a#PP5U%frr`pi9ej;&wj(rg>)F4M8_C>=CQQ`aIF)n@9S0~ zamw=7Q;#Ksyh==c*Bh$e|38dpSx@Orzl<))5(I^$UWrPh`nWzux7?1^(r@MP_zb zjiu|Cc`(u8!r6kcdD{E--|L$vk~9po7!kCavt#7SPMTh#+pp3zaURh4y^sAnl^o?Y^sHQdKwN%47M~4STqwl$0=v z?oLRGLop7U>5s?FKhLmpXT^7(9Z!c<(?>lyA!Q~PuDBQQU5i20xBSDtr>Zxnp>%w+ z@p($G8m*XP>a9E5Cy!Rt{p-q2t=d< zhZ(QuH40+pu|yclz6>T9_Vv6&>TTCfCEsRkLFR;T@?==@rLyw2C` zSJe2iQzlS`aX~l|888$`F|zOtNnj;Q{|l>zL5q(tzWTVQ{&#qH9x6_G?WdogQFIPH ziNE>wUBjZnod&dH+RDi1t#{#F*$M2%J#QZx=Jvn(PzHUKmMBd->X*-gkvq_H}u`>U`(**~#$Zx4`lh^8)&( zmH0og9{;R(PCC`+KJLwy?Sl`Z>kAa_<#CE>yyiqBcKEmV8zl~TH9H<&==mX5*1{tC zR(9-<=QikG4X<@n!Bd%1Ki=X$vnofoY#PU?pZ!L2E#7-HpN<$EhY)Yc@ zmK=?nV8dT)EP#+LFbo1I+zn3s^9V4e{}-(3t<_AxNc5G>5)MFyN8zk#%*kD~2LKT` zNP25BWRX$h7B~FBA2&!Z_x{5NIjpO{ikpO{4>5%wzJ3`!A0Y#jA5wgLS9GD#T2K?b zkrZuQ_sCLF=E+6ZF@0E(Y`qiJ7uuE!o)wi-kBpQ@@j625z3wX}7Pik_I74BRH2mfq zXj$#WZ(20?VQuVW zK_7#2;eMiBt;J|{w=N1(c+6&ICFy=Z-^Iz^j5I&PSK86ux^l5Rcs zZN9Q~lS$19MAN#~SWp>Ow6;C5^YUpIs8U&E+$R$#dpCj@Aw zt}{!DeU@l}L9Caaw!J`=wVqg2yfeRpuZ@eWy~R(RWb6+B?IEz}JENZXz}UZxV2WRN z4@e>Sml>4PU?x8x;f#h%z$U~EE{asr5K^GSMGzjbNn(gS-QoO(8KMsTlJHgw>}qDM zbI^ccsL(I>BS4*DjwiS;7&QE#DV>K|_ zs-duK)b0;%E_k?~0p~J4^i5p*xoor1x}+q3cG+N4M+DsD7$*`BDWP9rtln}|(^{G} zUhf%C$sh)`y1;jEedp-PlPhw6X*Xp}ol2<9)8Q7^6T7<0c>qD!fCpj%i(R3MdX^em z@NrYxwD;)Bbc&?UCJL;rwcKx9N};s>B^PYdh*<6%taKw&fK*UCl)Oi;PkfbyOlVmv z+}wS;<@_;dY%3`@u@ZIv#mp8Zy%<9|GOKVkLB1RZyeA-I)C6A-{F1n1( z{7?~Bh(Mkb)Jr%)>=a`(Lo0DY0fZUYAfgaxV`ViZr4j>3uXb3b(f}<2jDe9X=hqs3 zAcXus>IJhRE0h0dK1}M3T{94Aos9FT1wcx8suiGh#rbc*t!6>J-C;m>*%XqLHBfh3 zzAw(0z|bx}!`1S}Z4ZT+QI{bMb!6TzJEvH)_)n#CDB>&NE#QLNm}*xA(G1^T^>8G0 zSdJRM4VD_8hrlvC3wluQ0I03QT(pDnC0S}f1Op-G%0G*V88uj3sJ3-q?$GvmrV+mF%_LLxQQ zyhA@U@oSPNYjcuDp#&H~7T~%hCY`fWV<@oG6v{RD<)IBy&F9`0z@JZf-{|NuyN2j*JPdjVN&*b= z^8(PQ@W_27Wr(_bB;u)l@5t#7tX?YlUojTh`E(d}L$rW9f-}NnuReoelw0qxs`Ue! zLt1_5{qqJCqXz;E6YNPL%!X)!8-M-D4Gvagf!kMGwE0P|su!@D{r~zWSdaL>{>iA9 za`^M{|H5nbL82*w@B_Q1i-wj@L8yUJOE{t$r>-d@K*uh4>UPD2NNWapZe=la$vw0d zHH96z&o%(9>vfryyWdP!93(Z;`(Cw}!F$PIxVHD5ErDJ7qcri~bXw%B6Dd}6q#&wr z%H)UOZ|qt7_>HfA)%kk1^AhH?T~I*WI+fPsQb?Kn+07&`pk%+a?#KSat={(a_sB$U^C*yu-CQv4c|OPL1olFX#LwdTZSpy)U-1b*l#KKvLU} zNoF!N*ZW796*XenJAi{QRx0vVpomx;#f4279t`Hijw6F z2yf1Z-x!%+UilR)_xgd^6Ui-4Cf;WM>^u>IatpohPuQ$d|1!s8zq#Yh<@g*Y`8j^L zIdVn=g!0t`iH3Y^l^3N}Zo5Pq+K;cvjT1@aykzp_&yc(S0Q!mSR(C&gQsI<7uXa^h zakN`{;6b`v_D;Y*dvB!xsq#eH%cUL3G;hEkuV}2HRs7ZzGjfc>daVp(Yovs_pFd7^ zlgpZ=t!Z+G&3FW?v8*uN7G+qHM#J-8==}3=H$FE696BagKr$|GGY`@p#}@bBDHV78UjiFQ8j5W2Sa;%Tvpa2){v;R*qkU$E?K*je z_m%ui<{QC((OCH>4-PAO0~bbw1kq1yZP+av8a_(Eit)d)ayK|F&I<9TqfppYBUlm> zwK^%d5w1v9N(LMefJgx2EKI#Y3N}CFgPW<7_}haa4%ix=|LM|M@b0|wQQNB za?R)z*@)cGHE<}gi_v;YM^wl9d}s8yg>TS|bChlOO!~Cn!fCac%dyqb_5xIzn3*Jo z=9cPOi7CN1Q*DsWmkItC;(|h$$%zg{MP0qe6nENSI!?kWU>}76q#R|^3|9LgxlZZ> zR&7$#n1T`OPK}Sdskl;Qu>QTkkGulKI97pwK~v1bmjCe?r~GSPIEsWq6emsSim^I* z!<~sUJdI*Gc!7N|PAICx)9mEUXX)I>II5BO64Dd@OH%)psQ%aCRn97VdNG`N`~RJ^ zItTA77m!ZW@wLCI*qK(XxT(#@T+I*ofE*j=W65K@X#Dq&M!TFB06)O#zM5) zq*sf?LjtQ)^pCtk7ZPycKby2m@~b1&jBjJ^&{6c!$3DoSr-fmg+}3Ek*>*p?#xK*_ z2$Q)#%6Sg}tu)1!#E`{MDy}2hn(yvHl$u%AEsao);%7*{?%vY)=o3B#(jTsD3^BiH z@I$tLGMUERGIlmzqFRKbDJ&>uARLmi{8KT%;1dgNZw(qhbLw(<32Ft&DLQ-2l?f4e zv4z^Y!Z&1Ofg=3>?7$GVErFTnYDb+t!1ptrK_oFfS2az6zg0CHuryK0{O_UmZpLU6 zci{9!aM`?3@RCurQR~Twy(#diDFjBF;MRQn&9!H{_3~o#?0A1XNmnlY-T@XiemHs^ zS%Omu{KVofcBy?;`_hk+NxgTnny)j~axzjO{m~vw`o0oLis3}jM~}12{wdldclFDs z6(y}6n%w+33~_a&1x_Jgwg47cWAJ0+?q*i1> z?i$KLm_3F>MQOyDU3$+CIG|ty#R43n^7b$~)$*SK0Xw=vfM1$=e@sVA+vC%T(G33# zrH-!5KLXHfS{sr2$Wrdtv?EVE__V$=p^LQ~%B3Nn_Dq^!EWGfFfRWOy)7PvrN0~ZU zVj594*JOQK8jNBjulsIxAVCVSm$0-h?PXq)%~@{xY^dyY=!o#AfU!WNO8Mq;rfWHV zjB<=Qb2F=C@L3(?=0_E)+q4i&8|i@lY<+Fg*lK%ER4U5bOm-Kav!q zDW`I#h>b`%$ciC|HfMCczn2&3l3Rd_hOQim&_gd*uk-&i&H6~Gf(=4tU|?o9 z&Nexcx=DAX7{vnfZ)@*Ye6Vi)mWmfD81M(a!iWE~?UBQ@Fwkdz?W*p@%?%gx!k9BE z3=9zS#qAZe9^wO9onZYa;TLwbu{vV<0! zT^thvR*ru!y;ahQu61^kuCM9E2R7rHeZV5Fchx9GS!|G`D)0kr5YT^K{|JB(ZyLt2 zqSh8Z;);_-FNqOQa3L$5#l0f{#-0&bH?J(Ha>VsG`Vz6Y6zr!bql;Q6v!@PO!T~cX zW2{<7m)UtOo#f*Ss9Iuq#=tnlQn|EHjhyADPeCZOCvCxuJjWS^a$J zW7sOdjXo`Xx|8rGEN*Yd{hm@8cQtKt`|y$(=W^=kHU-WY8#sMK_JUaHtcHUAE)lXY z#N?QfsdzYi9*q3%T>ptx2{Ru*GHSgBxfiglC4Kv*Vpd*DwXa zAPwpUzbX7}{bNMQs&%o{B7az4XKAu)bKa^oI|G&Qi|{ECAwU%LZm!A`0iclxJXmcM zMF&H!3W+Qv0rV=k$-GZq9}V0E0G>~IvG`FmQUVjTpVt%)SVq?d&B2TaaK+#wfete&fMdaW&XHv>D=s&xCE%inrB9-bE1um3;qc zwk%+2tM?ba4{lz&tI@*t0mtsmwZPH80=YCmAvT(T080v!qs91kSsC>uGQ@&}ZjtcM|Z6c%R`)%GI zzz*GK@L!kCaBqoBaW{}KECsBb_|35z8mfy*9a}7j0`sJHb4OLSKq2-5IKdv{VNze| zB)vy65R&)5_fJ@$caL}C@p*aS&i$Hff&O2P$>}hAV>RLo5=?{uqmF|DM7SO%Ge)eC z*#31aLDc#-Z~Rg;5!8SLVfbT#QYuqX<1Jw^;itNPyC&)2g64LR@jh8Xg3`KLS?dm7 v7aA2+vQm%laZa(cn7U8{*qpmhE-7h3ujjjzI}U>{00QdDI!fh=R*3%t`Oi9= diff --git a/img/loadtests/sfmanifestsettings.PNG b/img/loadtests/sfmanifestsettings.PNG deleted file mode 100644 index b360fef63b56b8e734c86741846ca1f5fa120bfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68026 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 z

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

v3K1AL;r<#rgSxI2~CV#Na`&oU`Qr~W}cfW$M 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 IHhJ@Z0HdQ4DgXcg literal 0 HcmV?d00001 diff --git a/img/sf/cloud-config-idsrv.PNG b/img/sf/cloud-config-idsrv.PNG deleted file mode 100644 index 86fbe663790f1fccfb50aa8e6ebdad57cb37c918..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46951 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 diff --git a/img/sf/cloud-config-spa.PNG b/img/sf/cloud-config-spa.PNG deleted file mode 100644 index 17809ea2da0cca7314af29c9561d6d13d25e7f36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44447 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 bk+!m7qIRkyK{bC5{iYb`86VEm`T5#k2VhP! diff --git a/img/sf/cloud-config.PNG b/img/sf/cloud-config.PNG deleted file mode 100644 index 420b95e1c2e79448cc731d66890b63a9c96b682d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54034 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

?x1eW<#ySL6mQfyq;HYNei(YIsI4 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

Ld%O9t3Z}@yzd;B*7=K!w<`O2`_o*LS0D+| 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 OQ}>?H-EvL)@c#kqZ@b_C diff --git a/img/sf/create-kv.PNG b/img/sf/create-kv.PNG deleted file mode 100644 index f2c5f91c3b5c7e3359b9d8361fdbdba126db6e83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23823 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 r|IdQkzqy|GFL?dsf226|S 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

0l6pKdL_ zg2rG4o@*oRz0@fu(jWL#E<*_Vc>QUo8tnIro77z9z7>cOw|L-Ht1}k7_#IM_>1XJ_~ z`yOZ?e^7teAlM}46hvAUL>O~lssLG9-UNxku0#I-6CUQ@>p{`9-!9?>@Rs7s;p?W<@ z81Lj!Rd`DD^|sBV$}c|s^Ifz09S-N5O^CHz->-&vRlNM~_rYIC(!l=Yb5Ydvaf7h^ zesdo}Bo+VYqQ#s)vPvZ59vi5Ok1hTnlC0BPuh3TOf|ipRlMiy={7|-TKE5~QuSLcW zVyOQf@&FP6vqxPhs-`q=$V@4w;wym}WpLt=Hrc#iRWhpgZWV-&31&9^{%HLom*!v3 zH~t`(4GDYPf0E0~A1)+lE(y^}Ii*c4icU^(ZuZ}Mj1~GoszTOUM&2muO zMB*(!K`EYlnTl*o^2C<5v+AWF9tl1`7xBG3Yrh6wm2%QbVZcx;#X)4BVvwC^CD;P! z4xE@p7*`&`&{bVYmkuz#55}Yv;`3h*d)1D19iqgtDx{h!#XX4Fk734@ynHwal;;q@ zo`tVk0)W!yZ0qh>O3&^jw=#iG_xM^XFIZyhRa6|EmqLbxfe z<9?@hC%dX{{CAd`B$iuZ?IU>Yc+z%vq?SNeq%g3_6(`Qo_ZTPB0oCv?-UJ-$?mOJ= z7J@C}j_aM2!Vd!PbNjmFH?y$K0o~g8e`l#G>#FyB%6yo#-uvLXvhBK%?fcD`#x4V| z=ck|zMXBs5-UD;yQe?m}ki|-1{QogW{q*k~RUc3ZqKtxc<@O143k;?RF~+8b`Hl{W zFSpk{*(oq-jOq08XDwxs3Hd-1xtNtVV@1~i z425)Es!382Z|{W@;V1S9FYZ~KPmM!tM3!iq-KnZhB5fiu5Hy^8(#of(@qO63uzaR} zDeCPDA5HaseO#adt;HYccz^Kl$KS{g`q42=raSzXtbIojx_f@<$+iJ$}} zAHMl6vbM&GN)rVOGvOoCc zKT3Gd{vSzr0*YJW{OvI8q{BX$iGAD@xXcBTPvUzqmg7O%fa66uuXL`X-97{E;dCve zW)4fAd6V^~t%T$Za=pk6jPL3|oZ->2fyrM}R0;*t{Ux~nJfyn@ciU4rH%d*tX<<~f z?qsv8HlN$+D>cZJD71>h3fhK*vuj;fB(ylzv%W@^|1yl=p=Te8o-XeEV{+ROq1TV( zs!fLVb;NHp(+wUt=AqX~R2)>4((fm$dK-istI<|gTqjXuw0H5I|FsuBt@E$>#uM!~ zdDHQ#gor-65N(n^$U)!9tA^_&#Rh>ltzWajs5#QMC3GruMhQ-F)feVU3QX zv@gCTMRJZ2%-c!ReMhBXAexnj!%0++BstaWP{p1%wI;o=;1ad3_mMVtZ3pjT=%}7t zy%e7W{~Gn=PJS12#P@5_6q2j9*j85Qu8z<}1q3Na-;S{DFzC1Q(=8l?oFboOMGC*D zv}5>Al`+eZUh#`rs?&Oo9pu4>1v~v@pbptOoWg?5N z#b$Jvh|?Kj=8T=*m?%-1|a!Ptfse=fmg?!ibHb`^N!S@O)lH==Q9 zObWbq;dUf|@f`kL4s7^ua-h019+#lw>_pK78qTm!UQ@U%y2m%yxPcKS^Io1O%PuE zr$-1BAv3`V1E3?-oHlYfRjmZys8lnAEj-%I-_48`c2s9xs`}aE;S9satTuW02{LP) zHo^R?D@7c28aI6Q29(Mn;TIl&l!Ur3ttT^Hwav5&={2cx>8_)+I>kSb70AI_U&Of1 z5TguZouF*iO&K}}|6+)8p2IV4mt}F>zA=vB75H6AJ0=<*sKge$G%f>CBPkOA2Qg5h~S0j8P1MfZNS>P7y0*r zwQv7yF|ZEow8GqY(!p=%_d*tb^mbWqm$A(DFQ4?Wqy?)x1FgqDnd`$NY)+iI=elukGR+HOOn>w|&X}KZL5+e}k&W{{dBpEj_O; z@tqy#W)|BV&Vgq<%w|RlPH!`!=u=}EGO?1pQ%%D5HPLEs@fTaaDtyGG_*bCP2Kbj$ zAM45%Zh08)&v;kUEJEvL3F=MlbcE-rSgI2+FJVCnaiCwnqdcNWNC%ts@l12*;A#d1 zk&7gEQQ{CbAUp&mP1zEP)Gjm`pDXxb4J5hC_WQxBXa5hN)U{3mr|DJfSxdt0Yg-T>y&yTBEv{r%uYCcAb=L+;^rBl8EhI&OA{ zeQ>YrD07!g-7qsa&e#q3@?CJoytO0v;KbanGf(b>+Y2w zs><%)&A(e-oqYsm#gxQ9cz<;F=mGpq-Ys6gBvj?Ga^-0-#C2h!Vzc`@0fp!cZajyx zjWi+{^RD9~bl<92?jgkbBmi>e9YJ!mVPMe;Q(ML~%~07Y?yo+gjwY(g{=5ImD`QM$ zdhMd2dI3=2bIog!R(xgifKWfEIz!+om$6$)JR+u@S-xh6bT+QZQ)*;5?Eaq7;mWO$ z%Z<}QGX@I<(4p#n)UB*Q8OYXoxj~>hgqi|Mo&`TX-sfY1Dj8=9Zzzq0MnMG|k8Ash zcC0+1QkdL*T^xzdTC;+d8%)C6PcbQy;e=AWYqx3PXKWf>0z+$#=@I4uLH))nz|eqT z=Zp~SHdeZ4+1uG1vBtB)XBEM`vq$+wf zKLsDQ=tLM@sogDR{#QUh2`EDV&(-@ko_o9^I~t;y|I_8HD|Ez(u8;!FvYq`#`i(iz zyfTp6^`C#-Pd{+|k@wlx^?|Th14AvG`uxE8jmi%}@Z_=Rm-6ck-jC@rnB zc2*~k;0T%1aUKnKuvv!Ls_Fb)fOoMVF#En#vMjbY@5>QPI=+9kXmUA#>w9A+ikda8 znBZL1VPOpL3bT!?30407$%fWHqs)sV)mCx$NucfOznQVXLNdAmN#G}IJeW=o;2Qgs zd*w4Lj(ypzt1nR;dOZKA(VhbfbAN>Gw*;l*X%7^k#xTf6t#_ix=ieLm8BYo({e65D zqEij(-`};i#Uxgx)@td14SwN8%n!WysQ5R$xZAHNj@wygQ2!;p?RgOl zIeo}+a>ls~U0&cgTln`RqTtdiSOn}JdRaA+#~PxK0i&Y}|6-2c0p?h45>uEiV*0n< zc>FKDG2y^u%y)UQpz3qCx@F&(T&R-LwIaFikT?V{3H~U%S|z^NVYuQ`1WiNztvI?g z<;XO!D0i^DiOwyZO-Q%r9=S!kW+ZU$N@3!ihoT@b9a_+M)SEXasSAMdY+s^g~1qOuK%PubUOEaz3%INa6h;` z^I&FPv;3Fe=l6bpz9Kr8y5EVh7_vWwA9|jz$zwfdln)dQ1yChdKMDHUW@V#W?QIQd zEH>IB@Ix#G-V2~>rvmn8VN06dtI?Y*@Z%eswDvBv9SK%@dyjq?XxYUGXbA6Obe2K= zds4oq=dJ5)Wo&@px&HTmWLW0^hmilH5VAkD8T9H);NF6Ij5zh;3TQQoE7jB=$XlD$wI9VLQRSXT zYPj=1);T>8=02UVKaAG2}M82((>21oMX>|+Lfy;EF3evHI z`Fps?ldj$mri`gl&bOn%6fa<2&L=<}zIjC)lc+wsP@}k;ZB=2_;eg$lxqyuN4%xLX z?1%0KoL{*}FuGN(1|QE6I1Ew6*>E!PW&q_|3qMR_qYGQ#G&(;n7Voq?)(CXAc;(EHR@d)Lg^#=pvIUqtk1h z3sFSfM9ojOE9N=W?g<0rDIg!JKFt^5-*n7ge=78`vd79D)PzidfV9o4i(y(`L6>p6 zvt(j?engJKTTk2e{s+qLW>mB3_-J%;IPU@_GS0h;O1kOspr$}~1espzQ}~H@+$$fu zSn_~aK)8Om+4)W!QRNMqD#Y9+tH@+(LJ4?sV5+`2kjcpAw^;}ep%D;mM*d-*UnLZ0 zQ|X%O@@U~E+mwT?VY}-q3hVRVKhED=OP2MsPF88iE71T9-<68V*bF?K8i$&s-sT(p z*|;f8AN%F1R(RzfR<++)Po4myy_$b0-!=kRPsOWB7uQ)&34rzNd@@Z1KXw$hU`k-M z6G`mGR=hB|*0U=sV$GRq*lemZ9Q7iK%`&0}&tdO~9n7msb8OdMRL2Gi>d6ia2~uzb zNbL1cf1=M)^`+^I9?VgQ3~(R;j@VG@ON1D$XZ~cf;G~1W@F)L!vGBWY>efWjdD{Vf z1Sf2Nb8r zsSOgIK|dwnQa6|-9(zi_YM8xB&jLQumlFS3&{} z!mI=~a%JYRRxBRCKD3X@{jM)N&Z<;&MAvv$CXjV9b1L-~L2^%IwQK9{MP}#+q zO`i}v_Q}DVq}k@$McM*0S5ZJm-%}LO`@)-hL--91@5i=+1T(qo{&(T%F>JHqFj0Z* z58K$O0>!65yhpuegVz>UuZX@{m!{`}?P?mF(M~fU9&YdY$uHdy0)#qw{F5PM2&sS6 zPjXsep)419qNJ+Ba>%s2q#aWq-*IVRiwtl0!-*_jLzn~#I7>&j_H*46sCqwL|7y*UunVp8gJC60rHm2--@dtAQ<;_5`+qw41WAosDZcR{#DVu!MCor-ROO+i!S=ZAa zd%E0?SD&o7kF-XQ?uw3c-u1M8a_V^a^_keW_Rl1xODZ9gy*pOs;PNz?#cV1_6ltcy zaYKNqpTjT2^#I|_gF0DAQ{-Hf$E_D{IOG?$6|F_)_osY_M}$bKOYpQP%lz37ot#j+ zg@Mf2R-~}%p#EJvl>@cIQ$@i-6&GkSycP~2e@RwTi<>#9+hf|5P%bq(bz@9hg_U`& znCWdiLQT@KgXfV_$IX>fRn98D_Hdv|oiVPsA&@kN348?9>skXMcv)iV3Bp7hK&Qeu zztgGICG!S_HobYpq!J{NcPcC(Nx9=diG_>DI{st3qwkDyR`ebDv>-i@g6fmm<<{w3 zU)?zS`z$^p=h?KjOZJaCX?$x-3OuUv;Q5oE+mbX36lQccihsYy|6Tm6lxkg2Y9d9N z0PEx_`$W%kZJN7Q0y52b>gmxK@ub?PFKPH1cT94$h;#x9LO(i$MhS&q_0TpSYR{gj zCCTmq!9r@j=9OUpt{)qI#NuXl$lgOrElmPoN8KD+{*ACp@j$&7BrnLQSD@4By916-HD9Ts^}u5K3?hHp1e8Qx|O!W`P3*j?Ap^ID${j zt5}KAaazIYVV9ibhwjWo|YJe?$VszlXHl7=X;wS*Unt) z=_fZR(ssk;H2)l1R}Y$`C|~7Dwt#U^jB987dYi>a!(h9HT!uG&0da3LGsVX&2YSf& z^L6O;+Jnx*r`REb{_u#mp=;Jl>S^Iu#^TAfh!H0yYotacL=Kwh3#_Ux)@R*e;cp}D zGg8Uh8nx%_jqUsvOydIu?;fqxuSTQgSpJ|^Y(;(mkDu+ro%HB-Aj5m8Z&qa9M*=b@ zA*N8skY6-(Jt~IM;ZzHAZYOxu>hi3zxv{;;MMaV=6$D4r`Gd7K0l;;e0N^emmp--G zi%4&=q>K-VZNd}A4!a2{=mA<~G--TrODXH?lnaD|&L8*pVGZj?8jOjELj}ydfkCGhIu5&-^ z&w(X6MQcko0RFrW*2HQL1*+r95UN#eg9W%Iz`jS9m>ikxlj-GoervK6@XYgzu++iV z9sV4#7$sqMM46a?yR4aRrEo!!c?V*|ySCq<^Xq-wilE2>4zZ{bqhk1&@MbD`t}ck| z1kA=|csKG}(mANWv{ezT2ez`!<3uW~kAfaY7C9yf+FF>0{f z!z5#m5_aJ$^gDd9q2FekfDFENc4;KYL1MHgu)HbFy{LmLD}v)h@Sa=~v7JD1`C&pR zlQ`%3Ve<7PuIfLrdf3sdyBy8KkZJPd%`;2q2A(y6@87w;Z}=p38uf8x8;wY*IUgbK zqblKa%QeQ4RFVYc3ix>A$2G8%tuh|4r5<1&d1?x~uPDv?Qw!rDV$|t?5qFA;cbopR zU0*fcqny_R-W?43gHxXaH7;HBQ~tf>9*6#>{2SE((y(0}9a9LCV*diBOJRC>PN}G{Azqr$`?XHM{BmqZ%qrux~vjCZk8W@ zY2Jr@wljhC9p?bpDze`xqcNaBxn=NK*$VsJzcQ0G$FH;%w$sLH!J((!B+=d4O!}T9 zkVG9TD8$sene`7ikig>ek;_G$>6B_;HP*QH3HIl1N7Fgy8)zS(RRNxE8SLFt=c+21n_ z*H!*3t9z~L(93+ReuyYQ!L>IQEKBT^B$C7PaCEeZ%UYCnB)Ed5ovHbape4H^Kb45ht96!ELd^UG0&~N~hB-q*T z@m#ywiP>h#G-$-A6=O^!CQBNsP>(c3^>N?cts9I!wY=R%o{sp-p(Y1d z!EjG8M{ufnld=oOXm;ZYtYWxnr=nMTpF=Fs3YySv=2sZSw(`hJ2o-I`2Mbu8nA?lg zAeqaOfOmir@ios!YF>db*!&8>0d)@*EcggY0RAmCCXUt)gu{V#cxquRFdUcBKvw<1 z;Dui`d%$E|o%Cm3! zy$3oV&?$~wZAN^v;y(k&IJ$J2Rk^6mrXe+Q=9e4mez@Q6aRH<;#(F$m_0~w414f17 z2b|ICaVQDCS!H#KIuchKTvXg*un;?^FMg%?_CYgXa1^n z{hGku9%3|;FpP))ERsb#4b}vV-}C+HoS_^cXxM0b_+mA#w%s!C%F->* z4o&cAO}{cU&&u4ZT}rAtZ3v|k!Wfn-u?*jUiuM(20dhU&G*X-|5Hqb`#1hvV1n!Oj?TZ9xZG(5tl4Wt@vUc08#dPY zC-t_GKKEb~2x80ZzT})B5vD@UO%DZTGAqv%tSJKXJi0RtaeihjaLPIFr=`;QR>y+T zk6zNkYFAeGZB=I?+}ZFO9OK`yKFlcWPQXFVm80a*TP?mbQWMeW_F87}7uj^C{!LXD z^1w$KzIVYy^syePG`4oB8$9~}IkJFj$s2BI$d<9i1tGt%lx{jeAk~>2Y>VUN<`Jh2 zW>+G`8V((|m3f8RGKlcVlX-;++4_7Kn9BF#E2)YO0rux~OE(n4{O|nkfM*3JqpUYC f06p05GG6q+{NDDct0on#j91suGB{gÓ@uh)Ol diff --git a/img/sf/explorer-deployment-status.PNG b/img/sf/explorer-deployment-status.PNG deleted file mode 100644 index 2697a6374e46cf9333e2f88e71a08c5025f49b7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103354 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 `3Sf?!kF#rmibw(>`M#eT;5W zm|ujVaEdpV|AJ*fDb;x9_y7-&+3(v(=m_7CovVrbo6A-Qb0!TORHYJm^k!qY_w5%Q zPU`7Mkbp(Smx5fytVzyQ92wtoR}+-Z7W6Jx?tL+$w8S@Jzh6Kws1iSShk-Y+zlZ70 zURxtGdrSMXNlH~24!~TDq80;`wInFRM-ioqDR+B7Xs+HA>CyUB=Lq!4_ta+^GBT(k zEh-~>N~Gv_rL^muUGi#})a2vb*MSx@Y2EwEECCwB$EdM5Rq!x*U&i^%KsB}~@`!vJ zNjKy#S?ne2gAGBD&TXJ^s*j_nJ1A+paz!?C89D-`UN73P)i{1?a(aqPI)`Wih;3H# z8H6Wf`XbI7_-|Qo4Y)r@1)7bI;3BcB2=zuDx>zPQaEw+RT2~<$rsI_N`NokW z7F!>ictumD_hfQjUF;itxcFDQ_ulY$lG*6PHX_M#@M{$=1tA$Y1}bAbX#B9YgJy7` zdcMyp)FRkJ~aJ~HYwazWA9kRm_FS#+vyt6nf( zdf&whhSVC3+xR1Ogx7Hk7)Awlf>X_!ZnO&B*K57DytaCvvarH|rV76Bn`KcGQsGo{ zsaELbkiV_@EFr1kOT^m-6~KS^H)}QFI3w{|5&Zch!0VELYsyT9P~en0zr2|9XguFo0a{bq%4w6H2rDQmZ0Y`>h%@OiUo8C{inLv|Hb z_?OmbMU|^p(BB5U*mhCC1MdV%FFD=Q>9Hq)nRSpXRaze ziNjTi@7zxcAJrIc(BlX*c3apxqK^q6iWgjr;Cq*w$Z~p9J2iH#ErL zjKglBn!RVmZVgTVY_f8>a+C!q=EviM z>Vnt3mPyO#f!k?HtLWh%xZ;#z?zD^Edc}F6=V2vt12gkDuOsr7n%@kYy-e28^{(!@ zp7;0O#~0gZ+yf72McG}W-XFV#Z=s+CPYRn+M$x(pE$fe#BdkP4Uni|mmrN>(&y;mn zOQG2Z0e#&?b*9gD8ZkCET_!eF4{KmLD7OKCbX0V(Wf*iG6oNY6pf7=va;-_U0apXah z)v;4(ks?cf3@B$}boCBgrzd-xmb7sXLMr{tkEt)6TWHa#6sIN&1PUG;S;sH$#of*( zasZHi)Vn=hoSMQAjfze6Ed7YDLOFDdyx~eZ-eH&s#fQEu?YGm9rZ4=iM1*tZSdxT# zKQLoi$+xe+cQc%a?Vbsr-j?>|^d@;e-q&_pKkQauN6K|1&(E!femw7Ce)N^gLD?Y4 z4q)Zo+$C@@NeoZyG-qLr>Jie1%eQhjA9;-jKW@o*t#7G=r8L^m(eF3#8}~2{RGiIU z-5HB1&=@+sL9b0D-eN8taCA=HuY*JAo~_yg&7P;D|MDL69Dq7^R^r;0ufSxM+afP` ze-LT@qQE=Y&Efk;%ym4_dqI;X5G9XZ?EkDA!$h@_`F)Ajvlou1@i=zgDuzAAy|_0*WP7!Cfmyz5@fU4`Y0qa-F^pp= zHuKnYy`ohetX|v+HuK&pJ0Pw`IC^47(5l{)r8|U4Eh<1`mPe9LAQi=Jn)UA_-keL} z5A1KQ@iZoJ!Cx1)1f`0m{a2IE*FW)`N8I)bF`O6km}Ld-pLmKSBjKq{VJ|(-9u%1# z7N7RWFg*VLARM%979qdQ|1dlc{}!O-m8Rz@Ze7_R44rRKS5=;mWD4uYK z#c{co_x0=6f01w&Ic}#%EjMv?F{5SEwQKcfh_~f%N*abZB{cH^eq&27+Oz?pnM8Ir zLb);Oof1@xy$j<(1B^c_r^ah}vWvjR*bz_gx!?D|nN9L4(+&;KEz#5A@Kt!7*Uls; zUVE{RS5(X;0J2ZEQYTz&W>}8xGzrDJB`C!0wVjpXwNfXP{Vq!yk&8F7dOOl^F5>J1 zGeq!(92vmmJJ5zvc|7fllg~~;+)%x7k6WBqO!`?2Me~TFr5)-v?JGI7FmrX|Tu5q( z>*MyvHwx48oa=85Tv4&)d)6QmV`tQr?Oj6x2Hi8M-Jeme`4#d@w}Be00JUH2cc{Pt@9*IKsTR$9`EiT8-K_>E5Uh2>(VB`q!n{Fuu6n!gZFRHFBj zAB@kP>Knv*;h8kw0BSc>S2nk-O~pMcADi3e8%%~`-xV>pF$$URYlFkWMV5or8S!o~`M_MDKdWivwQUiQPrTP}9j z<;EyNe!)U3%l(t8sk}EYo-vBd1~X)DaHydAkt;i6)d=njZgqrJbH;UAT&+HLs#_L{ z?&@CWjp4ai5A?e|Kzgf|&}&k`x+v#{-c*wGg*iffN|ByBJTF|D5(K}D6J<@$6vs^! zvn**UrhYF1SPRJf^qFF!ZZYl0?ZEYf{y{%FoCtT8WEEnoY49V45$>g0Ix=L@{?#%~>@(oKZ+^Y#qS=+4fFudv^GgEDqKR z%aTPNz%TI7B+7%!!UGjj=uG{O#zfB<(NE)(xBF#x0A`JCl%+OyoFh64BvxBT$1k)x zVw8P|ap_(M=f@0vrq(J6Q-;p2>69BZvlT3Up^!BU+EyGk!CeCaG_lg?86`}8K8Z#n z1~2pUIrDOHd>)ag-|>|pnXlH{r*)8B=)pyS5ZWREyfb4ZL}M;2u5;Ar13Na&o1W{u zTG@>V3XuAm4Knl6{pmt~|FVmw`gh~z`@`LfeCFq-U-Jwd~}3f%l;Cm&@oh;(|dD&k1*IoMqAVwdbX9{cI?+ z$*ZufI>M$0wXnHzxarCE<>j#86e2BkbD_5R|90K=EP0uC%C__5SgiT84+1;7$PEcP zR)gwG3#FkNYmqC+XS7K09nn=BxBdux%6Y+g+r2hQ|GQm8fgfdh_1&AE@cW|@eWE*I zLd5NSR9}7qxEECCo2xp2{Yot)4<)qqzx=@Nt~yXK@oBt!b0c)%-rBVz8JvREMdte zFhv*9pPNBu9{Z_o0EBjuV${y?^b2Gxh5uI;w$-dWgz$sSNVH_&&EybX z#Xw*Oi^u|Jb1T2XFX;OyGT6 zk_v_JobiF;lMk``%Gn(#tAa-mbl0u8oc{35Wis}N5fycXJ?s;Lw(%NwUsPlfi^5Sx zw2kRitT6iEM{{!T^nXLr0dg`e@S=MuI z$=Mr?>-mSzHM~T|(`rEK&d7#WX>S&#i~Noc4??vUnD%4r`pi-1nG^)m>;K~I-Q$_= z|Nn7CNhMwBj8>PTlXK2&p>tTJLJlKIV$O4(C8DlECFjFJNDgzzFlC@1f(eN$cCyglt6-p&EJ5HJGr85w zM?$tZ7Upb$DjY)vH0pIatwox5yPyS?;`W@};RyLkV0q82)|g=7Q*4>YTfq4M7Oa3Y ziB^L~>@k7lxq$xRmAFMfJdWg@8*lYOJ9GgLq%Knxn}Y%oRG1 z{NVMVK9(>9(C3CY&+)MJJ&D(7N!m zY0Hfvyavw!Mf;624C2FsTuQ<&8 z7#eE$1-2h}Q{LpF^lLd&4)0~(Nx*uc7BaYbVC!CnapXT0;RsIV=q=tE)_XSjX41&f zBKGdc#wXXKR`dp}?MNaHrpU!v7OBgfG;#c4V1_^{*q$4ayNduE zt?D6{1XL?WG%4MTyZ!rNm02_)P?tvo;m?2%XPE5?4FCPuv?3=A9Wt14)hMQ*1`KpWUB~1=VT&36e zwiw$uTJGFhn_=}^TDALByn(&5pCxuHj-xT{!YKBUiLZ5^W#-ZKLH!EVdoOsUFUkC= z+yRK20T=(lh$orOwu_234gMe=H;9m!-GReBaqJoSCbIWfPcdR%c-O59isp=1x@9vk zScR9am6z~}C|)hDTe4V%pSlYbW`HXhUpfEjrV`q{1|Ph-iU8suOr{X7+KxjBn?2O; zS;_Px;AFp0a*jqn^4+il^>hf;k-^QTm;&?v&(9R#O;R$b@o}3R%ckR|VI1y#ac%^J zBX$yH&Bkp$S~~s6e!I<3w-NI2QL=;^13?~qbh)X;AZ}|+j*H5ezEZFrkkmPyQZgK6JyHvHD<3OhAcZbzaAzL@w(n(bML zvKG{eJ4n9KKP~AX`)+nXxeQ)ChxX#l#k(jfsfAi8@4%&JrzVX-6Mrc!<|_3GDXe)a zl#4-~9ClmzQ7>vjp;s#we=soEf$E|2`wyP&5wbsiY95l_9C4ao@Xy0}2QC8Cl`jx})xObIMj6wYaoNpnL441av zS6)3hfWXv53ZS}ak0-`?5zoh%zhlrVW$^A~1P(no;^J)~H{)5<&U5KTQ?Pk-sxx`U zq^DX5V-3Y)D16I~$ReJjw0u#5RP3?w!P)K>Rg-Pn4X{A59V)6PtPpv$%yB4Rxtzo}n*(dlB~W#P;sT z$ch7MvI**}%V4ZxdC?6l7#2c_HVYcY5+XgH55DE-7DQIzhsyhw3tiEb@%N|?q>;Mb zGV~kGC#Ph%r64xG28*`Q&o9P@K*$lnQ6$Gj9X;@`>@d#(fJ^b|3m)CkZXbSUhIQ=I zvr{fxY?2x9>9=ed;p2N==Xt}o&id@XyHUo{M<(*^*MvP!ywyU}w%zivdJzmpC<<_z zSjfwmPG+%#4#Az^HkugVO+ML8T_s(|B3#-}A*D_Spx;tcb~cwXeMrd!JlD~ynvVXV zuXed2pB`yN$>&=jqi%OrR?ssS(yKNH=CmUO=Skm;ew70K$#jO!UVZ!4mV5Y|E$K4< z!Ce^K-Dtm*Mn6OG9IZlP!v)Yu#%B6MN@iVFF}!p%%8dNR=paRdq!dWC2UVE#D$G33 zW5RVGKf2;F)5)4x#-}MXw4}@}i50;F|wq6vbI-?PI2?%N=&8yR6 zWc&-miubV01vlHVZ5Mq(Epdc2J3 z%?N#y|5(V16;W42b!%E0g_?mnLAir=&4`;8*JmJoq>r`u^sO4f)14&v0~lLJAg)V5 z)9YKFoQukNft};K_sjUU_|9`QS|bf_?>@a}wWcTvPf)KGOnNjeGPiJQrs$3{ADyi= zuFtClFfh5nZb;+UfmH*Lr2}jX-vrjs zpKFd=pR7}T9KxtCEqxC!r|`aq$>!DHLq5s(zGavalE?e#)p7;Z^R-;*9#MAd*K^(q z_pk)U>YBy$n8pcWvO`P1PqT+j)zW)9b$PzHg?(8|u2!`z=mTL;C9Qhza=-M@AY-QX zUa)DzFDu9n`R1KZ^+$w^4AbS5Z_1@dY_$9JMzutnV$I8-c!fdHv%j>@BGnrCI^Wzz zY1$*9ziPPt(zt;ItL?&dRlAXYSz9cvTU-3kY30^sc-n&HyPQx^Wg_4CVg2W-w`Q)I&d7m z@b|$IIAM+~b8~6AV5SQ#7J^XeXYpux(6xs^*?N0ZK-vTvY2N*$0%9EVKz(P>2>#`v zprv}B(W(b2abZ=5|F&xw`ImN3!{m;jLk-=^-HkSe{5D(GCXpQz;_F=nSyh!N-eYUC9TRkH z{L3i`zyJZCNA>F-5kITo#I%q6jF_Bu(+CHNrub0G>5aN0)`QEIdt4#GcIJj97yaFk)cW93S5F8kR=T`~UswrwNUt0jWfs^tMeUWnoe!8@+?N;b>{y#g6r zC#%miRwVr}eF3F@9ZeBm34e3F*?MPx)lSpTy1bj~X^iWie?6BH*Df6DWRXPIa;(pJ z&~zgvZHewvxsN}n11d#K-PzsGWGYVp{GF*@3Ep#o0&h^Tq}lB)s6bzaumI^EFc(%r zm&apx#+)xsC^cT!58=&Oj%Z}2cu&KlmdJqGBQK>YNIMlp9|lqjB0^GxtL1*gUNhx! zjQ?VZ?1%w4aL5@btNRlLa#cxB(p~gX?0R`r65NFoxwq(J&BIXK(Ei+KXw*umOODXNMj8`Vq!k zCb1^3c~_3hhbFJ;`ZeU#6}h?#L-zfx>-IP<;`^`DJK&mX!lfN%)Jns3SAFMmd_3q^ zDj6TE0P4@ggq@O&7gOwLoHe2{#sQj=Od*h&J;HzE06k=Ad+=ZVk7Y^ z*v^%jjP|?D2R_%jivKZKr+Mhi@o(lZKw67NyMMDSX+glIh7HL9zFaOBFCe>lwwmsGs zuxB=(6#2_lV10Fo{;OrVjj{L+pVmUHEkD!KVE`C<8$bQgFsu?OasvW-@xs0>Z2RoH zf@7b$;;gtIpsvUZj5$#V>8;u%pNBmbVL?n0GIO&hw4TYE2VERWhiax=GO)Q=oY zR5fG8&2gj#UmMkC^OQH=HfKvj*}NH=v&=1Bz-a#!#?dChOd|98fM$ zdo?Tqf^04AzHr3jzpR5s0FhF@f|0J+?0xygt5411c^^+n3gkvQf%uB)YxTP=efkg6 zffIV%lJwd<4W(&tk=W~Lsa;CwX^+s?nLf^C6Q}IHiJnF*FnqnH2hyD^?r;3vOtjpM z;1a21RuQxXwpc|xmM}r|aeINNPS$WcWQGxc?E~rK$9ciYIpq#oCrGIFO^(sC4je-g zw4xX7XQuxcpUkj2ftjPCco7G$LTm$5tKrpB!qsp(ss<1l|J+d!{A%=N^xD_@$Y1WI zV#=?Z&*M4^n9#4}sKukE(kJ8KCQsF8$)e)OOV;TI`;HnOc{4@=Ytfl z%$J4<>fw&s+dJ)>b9}Avc<}CnZDth`<9d=uphdAR&t2FSIqpu%ijs%~oH)bP@K^;> zmYUw>UcX?I!WyT8&ki+@-HNY7=@_KlEtgp9w+viM@zg-hVXIW&t5`pdZ<7kE1|hf; zLX$_ezF=U-EN8U4od&Q>i0yx(fuGaT7hD9)gt;_#LP>0TG#2`8L+EK8>1T4QCXc>9 z4#(*$b#HjRC9Dib*s9~Yv(!;L0Cg)y+UEr^f!8b*Q8Fhpd8%elR`a(c2)`?|_;3m^i2HwfTAA47l3)teTaM4K~X zYc$3RFy$OvY71&>`sojmO%6YP+a#W)a?>O9 zwd4~Krp16pgc3Qv?4E!kZIL*pfhCuYKAVA5z*Mg1KKt=L|B_-enws7nKfnqTcPyv^ zC(jdJiWr@Ix0P$mFe9BOJsRFivbiKPmL0DdP_w++k_fPw5HF@x9yZ4YlIZ796mmyQ z%8V-N1$cd1OWpG?hlIKJg<|yK{tEjGOGl$6T5yhAHd;^HZG5~-q^A)jwlVn8wI@dm zcAUoH5I%MvZM1I?Xm!p*gpV$I*qU^=ii!GHYlE9^#HFfjkEzkyVRj^yLC#47d-OOA zBGUxX)&#hj4IH(3c)H2VAXZv!`8*i&aNfhs97wDk@V&|`8^DH(znwI!@&yvGY>|wX zSt+p?5ZNAc0EKL2LXoxhu6=!ir|YH+_qq-WwPj7K{mCd!g#nw;U#I*IXkVO%owc=A zSER5bKp>G55;NRV-hbAfqvxsIGfxdyAit4ic4s_sWMLQuQz`HYS?*@&3tG0wG5j2F z*QWcDp;s+&3Vsqdt;oKEB^?eQnrVBz-K+?{#v60cxUcM21K?W{wZrT*3f9uuNIYjv z-4b}!F@!mZ1K#DX+pAmnpAfkfDIp2?=^3A^a5ir`n!*??_YB4s3RM2BC8;X5A?It+5^3-sUdpi*!C)1JW?BbY*8hP`1DmXem=*rK+8xHWGC6U(28V~o3vU|aqBKZIts zjvVi4PwU(V;oU3-{fBLb3_@72Mr^^>uQ~kW`$spJ(bNc%sP-F#gn*Z^u@YIvsr!IV zFLUaqBM=+HU*W4pEDkPeo|qEc<+MOzDwG!ML08edDC!kL`4(9QFsVi19u=K+bo$=jvTTW5zLsTEw}Ppet!!dx)#>tgMTB%cE6 zSi$zq(i?T9ZENLXl#91D4bKFv*?)!+V$!dmSA${0eF)5kktX&8gsVw=Zk`SW@gQrL zIIlqIEC&!0Y_p2ur7SyKKTvl-b4ZHGEemSLUz>-4P#LbUgZ=t-?H^8nfJ=r7_-2qp zc=Sa`I=|Ol5W*>R`mTCt_g_XI_he-H2U3)N9!4KY!nf?XxzkHT@_C&vcH8U>`}-4} z9Me*BGb(`#H~@@+XJ}Q8>_#o~j_@AI2`H((Rrl$U;~wO_B3mGf5W-7*KZ70i2|FuV zt%{m@vOFsxN`ACt=dXm_u)1?nyb0XO;n=476Eq>p-NEUrxjvLBwBJH*x07w43UZPd z2CoGPmY>tU!Z@^L>Spqxqkmsx+JaQ%KI^k25#LzB%55@Eis>J#qzSYL1(Baw0_AlS z@6mN`k13Duu>C*|e*PLUq{bNV$Bo$8F$dzE%@V);9p3!;w^aDt!Q~#rDCR_MZPK-U zolI?&PqysU@ALg$Iq3(PhyyJ0nNZ9GXA=W`hnn;uMoy9qTkDMhSkn?AXLy72El`fI z6B^}S&b~xY032ZFzZwA!(g8r`@2h$i3eCUugU?%l^0=#S`5V@Qg@0C2d77S8o--H< zWTl$qO_koR`C|^m=cHH(qUwqTf1ncAot@6!B0%$~SKrJ#%#4o@v1J_W*k8fdxZiUH z^9(+Zt<2|UJ@8T+#GjG=WVsg>8FsK=+}<;--%XhI>C3o(Eq^fArbnF&>uwDX`U34E z{glabeJb&l#$%%07g0>$nL-6Cm2-sEh2^9Kd}0VA3-X>N+@^#=9|VJDxPddZ^A)1= ztzSbaJ=!^ID}*Zoz8|i=4kS(D*_or2_$)tnqqj?2TF3(# zf1F=^Y^K&Ne~73tWxgzq|Hhd|T$_d9d95Kc7bpZpla|(??;sw&PO_a$>(a<`#lJ;y8 zfATN|;`5*)g=O}W1ZiGMH5d%i9^AVwd&mx}^*Pqh`T;nDsL>{Bi}pq1K&GF{UvnKH zj0 zKJIg!DH1f%e%>y!^K+eBrCeHY>xymIQQQw)BP{APr`!i8PqM zh!;QI1a!?)NBNH8(AX3PMgIrt59;%JC!-$$s!To;eL3q{5JO~Rwb|H@44WNS=H?>E z1+qKpj$X6eHBxhZtf5qT2-oGV`v=GNa*z$1=BOtyjAcT!7uD~^oA5Zw9Q<;*M4aEe zZ?7k5KGP-8%#IY(eDkRd=N%-Zv;fn(s+#JA9Zs#|CA2*0n*_u&4yuF;8IbQXe<<|Rl z(w<}vaNMqfMijQ5)hz>VJRT<7TTkOk`zGNTT=KHL*uo@wFXOZr&=v8G%=(Jw z$3iJ9$QxGL^hE_*ovfKF$?%C8`0+s{qVkS~3 zRR{6`>$NB(6q|neoWV_ABOggwT}A)F4zSoVyMz8ubuuwh#oUb%v*G*>wTH($MUS6U zZrlJBKf3THCFwIR+n^)H+VmU|4KKOAQp53Bs{BVZe=04b`GSTV30l*L*=M_vxLSH9rogWQsKw7J1~?{>h7fW0cn2+;290?ei0mVdQQTyHUeL zxs}As&vF6qjfr+aponjG$(?F~`EE(%Y~5y=l` zT#RHXeb$;tMRSzcqh(eNVMjHG)qnPV&n-;Kw%Pl1bhBTE`NYhf2^NKMr!eeD83sdL z(VX=PlHYiY;w}t}%&NS-h|fN4*`ofc9VmXuQ=AUgc{c+EvnDggIJyDajO9)|9K#NM z*j&fHOd%);M@s&pdr(;ZljR9KwiRVLQF%nwsaN4U?00kx7lQY{$`-qL-!Rc0jaxSO zLqt}6i}#Vs!PXUtkDyANH6&7gV>Ktx+Ldy(1Do3v^LP&`L}q%oH-Oggbk)N@TxF!Z z#SocAJ6iFq)G@rn&fD=N^TC8$7eflCk(32{^4AFPkQrPVzD&xT#R!v!8tk@nmeiTw zf+9o5W=Bn(Sn*3J0?%A)suQbh8Nn;|=gV3`1h2yC!eF^}zeVzdhf&UM@ zGyd>34~%|ae${$e@)SzCE5GG=Grp;m|l z==>1!L~SYiX5a!xHYr$velKNKQf8Zw|H|LA$k>U8xF0OPE{FDWJadF5bd6I`}%hC zQA*S8oi3Gkh0_&9jCk7?3onhCm5SRSbdkZ7xN!wkbI48i`QQH;vEJ`6dmP${d&aK^ zXa36Y2z@0l z&z%_2Pxt*CxY&~_;(7hjzEu_*k6*o9jfpn*u^fhCQjp`x74)WZ23y$UHlxO`cp@l7 zo-(^5VBI}oDfI8|*G0Ju#1>h}@yMVLxmvRej;eZF#g87Y{4tZJENx*rlN}Zb03%BZ z+qB{vnc{;bNktCq@`vs_4EAom8bBSjAh%t&oUh*xZ92$3PjYXvrzs9R7V9!C0Vjw}{HYPFRZrq)7B zE@w!)8!b6JMsaGmHZOhzM^mc6z+;yibJ)OWYCS}#E&}_GYO%NEOYP~W^2*);M%u^5 zb=xHqETDYFw6zb-Rq}Mb0rTi2PKxj7(O`TLVn1BCI=JOi>qj%Ts7FIw`y)1_e-eDb z4lwoY_&0H{#JU9|xY$Mhi}#P0@^i?_>+;Lz73w!{n6Q9&+Q#J35!z{!(xouv>*>ui zeY9MAAB$@hQzXWM>TfW4T5C8GmcGNdfy10i*?O!+`w2Wn;<^vj)?e{~L+=}x7@20~ z*n!C7Ub9cqu*Pa&ik6-&_Yy{PihTIJpSbIc_Pqi}%IlpM5=)Y0r{d!DsaB0q*hik|pR2Q=5x+EO32m4=N)<=!VIzkI`F(W(c$LN_Ve;NA=m zpj5U`eo&&U;FtYC!1tEw)JLxrCbo!QUsB{s!1UNJKGWQH zv)=(B1E63bbFk);98|az8jm7^C7OnheyI4+Jf^!?-b2vEggYUB?AmneJYilLY}UZb zeB`*F`_?^&cvYV!Pi$p<{i5|A|NdPF9~aZNr+E-obgUemH~*Ml1o(eEEda6Nyl(0* zsgRa%cZ%TkUlPA*<5Z7*$tSKZED|N?IB(Oa1a%~XgFjRhWe@Tj9@MM{oMSz1v}|_y zbZi-y{qmvf~H}!RSVc~gGXRx1edN2ZK|dp ztV@z-S1pE}ShO73c!ph7yfoa(r?W)wG;p)2IjC=6;VG-19>+%4xt#)X+`O)Nt&81c zJcZ;!n_de|MIF?PpBU+j3n5?cVP6@fVpkRm(T*%;*enxKmO z=<1MtHr?y~daUAU)+O$2*9$8}l-ZVOQ9zDaU?xYQp9|1!bfY!8s?osHMri5H{bF8H zs=Y|W)14+is?VMk-3A5{WfB=~pNCE660p|uEKkIbsRFv3+$^~<#00v==H2`J4$`;aOOO9*$u&80Zr=o{$fk@5EJH*`#V=2>1GyUmJ4Lbz z0OPK$>^X|shO`x)pVFj&Qw(SFt3N_xH)?ec@md5goAyrz03|zj zt&>fhjI{De^uz7!hcmpL**vaQr0*`b)7zd!YZP1E#7O(nIwr0RR^JLsj+1zoDOscMq#Pm^e6M@)#RsFaR)7#5Pv**b%DPNKU_(!nF6K&Jd$d zv374UAT_qkO&e#$@*FI#y&waY-UU*^BKk?7II|va`q>PUaZWYvLM$UtmEv0QDMAAL zt~H=m;^w{5kVahkye{P;tL6sCoNZ?_S0*R@15TUJ*)*}kfEX-jtO|Z_Pdbl?HX-Ti z*!GbZ_R|a4&X~NHQXpM9;1Cs%({S~T&I_^z^T{yb)I~#AKgv0z;=49aD=x>x8g(m3 zW=3_26U0CGN;R0;M+#^$sl8&eq&?N}?m(CclQh|oA4{L_J7LB{lW#P)K*e!j=OQ>T zId-*d^3}7C92*y|UfFoYh4K}GF?TBpKST@$x; zPYUbWM2qnjC4(4V2T>M}>gKLtw=rfV&mo06AqQ?IsDw`&C2IEg@E65M>)0vFxPkYf7)Cz@*Ql9F6X0{CZv7LudoetqN5lnD6mYBvw8!TAP(m{uJPX zYPXgBv_f;a9j#7+GTIlZ#nuCm2T&`)dxFa@ZGy61YN!}G>!T5{&81p@6ry6|>bw`4avnwB*VAtja z+10f2A3b+XXy3&aR{SKmsmB0vEo7T4=-kQ+6scwcu^R8M_;I_x*l z@{1#vv_rNS;CM@tSFhVSJucX#OdD$u`tasJ#AOqpx;7!}9lJb#+f)ktKr!cQ(zG3!|+D8(#{~Jn|lF6K0rNRYO3p8DBsNZ5|DH_=5wMaL_H5JFQACv&_6&cjqJnH zJF8xVd9WN4s>^t(jeD&GNvd2Dxc`Ie^f9h!1*|QvxeU z8FV`LE>5EC81pu{nOaPz>lIXxlBCrR*eV<*#=t$2?L6+*1j8m=f{b7fCiQBQ@T%~T zIott4RS9Mh{2>I3n&Of@7%Zf7^NIPWlHqRTy=KoT63;f~RcW$DdoAIev3Z1Mw?I}< z)gwj+TvALQYgly0M!Rk767l!7lJei_WtVm}K{4Bp1(SZPB{OL91YsEc${|bDabs=u zLz4#y7@IQ1#A|*;A+4}v(2WzzyjGO$X}~ebL0c5$<9E@!J+56UXvi7x=-U5pE@Yv3 z$~hgM!nZ-fcZ3-$-%Q+j;mQ7`oBc;ICPI>c&*xrCS6!eIAAKhNZkdHE62G&o0=LVe zf#FSJts0Zt zn5maRg;&I`bb3BaG0tozjo!m056#zy6FJ^nWaRpb4QAA3iW7y7fO2PU!<=jmcuTUt zA{`9mk}1y4P=p-0FWn5W%sVqH335U0d8<@WLmz_xTlsZ4HVT18_7z86S8Z z_M(CJ*ejU38OyJlPtJxob&zn@$dI!6dpjqIH873nG|1eRqPPt44>hAMQt^efdV3oi zs*JX+H=gpL(4=aiJVI0n_bS!u`iPIny-bwbXIr^tc_US!-2TTM2Z0@Y%k1pzIKgJ$ z6Yp22 z@M5#p&2UA3=L&OHO|!7>pIFQ^y(9!DF@%qW237r+NK9&VUyDZ2AqA5D9XWECD8Q^q zwF26F6W&;;(1EM04IWKza<>KG)`@SCh_Qw!=|P%2LvKLNKJ91C>R$=?INSknE6Il| zJBga}R#WpISdHRV!=?aarCba3nxqL5{@@+?&f`6Z|1-3v{vT+K;eU(P zD3<9GZKPZW`LB>*kmJ0p z(KUHkv(7+6EJDa57-)e6a{L6U6!1L@`QZJrVX?TOI19r_Wxy}#Ht5B-u5ekkBQ3>H z8;%_yXIm^EhUgVp8Q10RL-IBBlHmFIL1Kffo2%DHzPHaCzH76#(}W33#WQAZaPOZK zn&CF~WDEf6x*@;qpPN)!Y4a89i+3$X7wlTy-vJc7;yF=fM8_`tTLH7&wX$xP#D6&Z zcf`TrMx@TUPrX+v2%c-x=9BQynMM*vo@$9;aLvH*W9_1J3#qF%h^@MMr>_w^yM<7{jAm*m#p8#(Sd;zprE;EmN^{|F9dX#Y4=eABk3AH?d|1h__h0Lk=+4rGZK)Vd)c4lc=ddDauh#Hd4)YS- zSiALnAdgF$ZbO&+@Z7lNY^fM=gEV>aJxrpU2KwNK@_vW#NYuhPSb5cgJZLO1s3AILIB!dwSp>Ad?OLzH3udT|SOHm^^CDl9KVsO>`<`yM_h zg}r8q8<1J#n`gnNghMHPe+F709>|Y2l)jvPAY6T(*<_!v!>H(8t(E%wfPQA&Vm0b* z@_$uEoi%=pUClkOEA{xJ+?H7uHQ#Ypf7&IWlP4nx?`>*i8-YNgzMc0t-=BFTouSGV zr=)to$nwea?gSHdXsTakVY>~e`P=9hd%C7MNXmA6odyfcUuV&V$%eptAIB^>E|i>oyblNAf#S;$XFMF5^}O$ z-R>_4gU>mL_yXtbQkw@(=)*HcPo$M!H17{yKGGufuzH6A$L=oFFwX7OdUGw@8qw$& zIT|^eYqSHI8r0>iDowsdH7%kR_dmMKnH=dW3Vf_Mc<6}*FMx|Ad)=(QPp7IlWJE6^ zd8CQ*9Zw=&7K*)i`0dtS%4VegG&44oavgTcD^+RgZS{>E%l-ZQ3WO`yLo+gmm)WL- zRKYsk!z6ivD1Js(hyltC&b1jQVpICn3bL(tBCzlDErgm#o$Pt}yISlNLKW7dIx7;a zecL2HMIJU2Xk(fSA@+ngtx+J1J4ES zmJ&-G2?XalH|M}>b0p3{@S&{a7`iRd5F;7rdLQ#iocZ1>$akDmggB0tU`jg%1I$lv z7SgUkKbY#5j9Ye`@JuIw3+kf@A@k?p-rOnQkB(2qR7#Y9IpgozFL+e-D4*C zx^x(f)C4N2y7jeHm#Y-<$(orhMNQz()$7veRL*j-X>?Was+U!cbvw9#ULNXAK!*o} zBkERvpATBqdoPH>N<0s~{RVX7Ks;Z~D7~c>nj(tUUrbU1KP!qsqh9ll0()G+KbfF1 zpa$!za!7=Tw#WNXL(oy6(u&;uOQj|Ev(f^%gzp9p=ZhF~Dpekxbd0dSVFm-zAFnA!fwTF5yB+`#GGXMB(uq}42;cKahDcI(Uy{Lh6p8zZ-P_q&2Ae z&K*~B1K#eS+4HsbVvogF2BUe{1G(SZL9aq#f7t*(>G-LGG1(5l3Gh(rfSp2OfwbJ= zULC=?8y7l4-PvyvGiH!QEa)};CUW7{?AGP)$2$QUJrxe9F z8|^b;JDZvIr(^j!^QwrpXTal4V8|ujASQX6!(p^VFPoNKfgR<>pm<`K^GE#-HK z#gNFE?wnz(WqUP^0Fb4%RkF%Qz)X8-I^^UeM)&j{U^1VO97h;hx0p=Q#e9?c-Q+vC zjjL(8HkQ7x328k=N1g^#Hg9L#3vpN7?jJ_0PtU~Qc0(3_)%7{C#p;s7Eh;ZkH|Fx6}7}y>!-iL%b=TL=NjHJGZMDGa z`fG)iHF9tJ?M(ds*3HUzq_CA>$gi~vtv2mqQv@aq_^EDLau`;UBDR72L`Y2?n{N&O zK+x(3S?Wlwf_!?lY$RBGqb{l_gWnq9Q@c&gmZ{U>X!mM;0vg+rFF$}hb9?-xtrDKP za)=ZqIT4aMm;gYG6$Vemq|YRM1IZD4$E#0ZsP2kKY1=3A&&sM1TPqq#o~6SEQu*g4 zxjB?8pomp`H{%4;nW$r{Nl`@cJqd494^OK+Ug#vH6L!#XL#CkgmhcmfuJTx>YY;=L z6)x4Nu1e`UKSplmSrZinTig7DXD!}8x{|WxRp#4=;|;3&FOm;wS765aK{@(ir38jm z2FI_SY2OmHFoYecm5jROR&R_hAG_|VHV1?n)>hR;%g=hG2HODzFsu=Uo;yWd8yEl_ zg*N$?LHor?F2F>4#_i_PX+o};)l_A)xVQaauw8DmN(LW;m%Pb(gM zDsd>!8-Q@e9>`>t}a@W`eu2l;qx1_>>usu!D;sJp(u{m|I#+Y04hlzhg(h^Hv*vp6fbVk|cC@RE5# z97Gu8j0gBlkoCtm+~FR5<>C9Ny7Sm(r)S&^2_vEorhu|0 z`*t|uu7>qXySx4h21XUzKb;fXof9Uu?;cPgKbl@=GZcxd%>-nPd|ne*@9ZH(T)-7p zxpAzE_`5Qv838C6UnZj@^jcoNt>(V|);>tWydkEkx4el_O)kF^X?h<9I0Lx%Pq1dj zcK>&DhMxtpdY?=;WHOoQP?J~a$i2qK4|g&t*1C!7Yn*fa0sRw2grW@NGXeT@xpG5G zUkE34A+6u#SfcQeZqqjj$cAU0`*yD^+Sr{T$47-Wf7X~Fd4j~OB8R_Jq5G@U;#26# ztoAWooo^oG`-4egn|kF}%ZmtG9>4aW4(&U+qQav@J2gjz(yuy4DpGs&=ktx^DWW!2 zx*s6C{qQs9Z2y!VL}_6esV|ilIF9#loaFz})?F@8xfMa!tnrXDSW&Ue^PgMwEbj@* z4}z1`%}p!dUN5Gw2n0G{ew=}Wd(A$^|Iv`ugZcp2D391b2vgUmP0JlNdE``49x8f7 zv~T?&66hrOdgN($2IZ!O{CFZzS3hxV5()I{P3};HRo}N!&X|kd;IUa9^6thoH$_lm z!P1;<@Y(^Mo{OGLKZVw0Rd)YT=a%tT$PIwcM5<_O68_D@R~-Ui}#Et4MHQ=hQr1_qYCD(%4}rDu$c7c=Gv@M?Df2QE zQQV>H`crZA1{Q5dBM9klHYU~0Q@ItHr?NOdaYx>2^0s~2w@?xwb<;KHOU3ZCgDFE6 zNsKw316>1!+)jj-!1=XfgOhZ9Ph+h^280blk0P5l!#|toOy<6x$u!yq(YCZDO`J9c zfA_bk@mCRSHC_!usK1DPIoIYV@K-GW%8dQm8Yj)(i20SDkz7_RroVC6k`Y?gBI+v4 zrhB$JJ>{=`8|7CPoxl*#8tjYSXh!_uGkW4%W&zU7sddtfKThl?eqy>;>c0Q35B)+L z>IP(w3@^Uj3zXbWl(sfgJ{fUc>nHCaJ?2@{Mj<^t5#OmOy@hunts|a*Xw)=e`od$$ zqmWl+qj|}IvOufWKL!9u4txCPz?w$^kiypuKyoAdfzah#l+7V%`%fRLy8y*v?Zeeo zt`BAwd2h?ixQnGc*}rs$(9cMne`H#YnBxV1>57ZuA4|ILNUbNM@^suU0Y94Ua`$*dJQE=g-xKJA~W`Fs!3t3F< zUK0m?hQgkA-#0i>JO`*Q^@_-~032wq-V5kmbW2<}FuH`!7Q;lI6EUKhZ|o^pNuQR^qhBx$_aoWsXL_ zlo5dwo`(AF#!(kal>-83KD~ToVEFc-rGH85mo+0XJm<&EXYWtguRqyT6}4HP!$j}Q zD?I*uq+{2~o9+JWFQlh42h^^wE?%ETlM@8>cwHnA=l^UwrC*qqe z5hPWg-O5m#c!Jc{&*Ai+C*>S?KJn>YUe*u9tG5cr&7;XP`ePe)z0;l@%P7ige(*k$ z7RD&5olGA1j@&LJ6x~FpA(K$aY5$YNsnKy!UqF)gQF`e75u2raHM*py&fDi3tL0C$UVnEgrh?A7F$dX zw4jixb|d~_ZjUE3sO?3bR9O65|9l1&Q-Is1Z`mk8VxdH2OAqnXXhr8nF)^<+z?uW^bgMqF~qP+>= z=rLlY0Xu4lH)PT8(-o)tOk4sw*6L0Rr>SAbV5GX4i*b`r?K*5 z16Fzr>D*bDNK};i$qqX1aM-)U<#K8?cUxe#uk$Z9Pho#<4|IXDpyaWSz(G#?qEJzNk=pRT8u|oS<%tbqDov2I~kkn-8WRj7P(t@@m4B zde+WRV@`wBTBP!}pI=K-wwapBX^$i;Ew{;KoT8A(kY@C=w4pj5D|=pJt+4my;(_5E zbq|1cR-Mf52ayJfpO)*eQ9fNXQUMi^Ii_9#3Yxo;4$*deG%Z57r#|nv*J#)U|L_hi z(6UHB`NaQ3l|*e%6hZuX_%>ydemwj3Gh*IZiTlwy=lb>LTsmYnOJ5wonw7PwRNHd; zlAZtJ)PFg39n3@S3hMuIVpjUTTuJ?72JC5Tv&~2^dzz`y*?%GD@ny_z^W}@MB~(5x zkEEY!$5)O^cuu(DOeyoq&8l*;yoMgyFD!f2k%1fY3y)ynD6x4A1MPv1o6~VO(y&CY z^Xyt#5_P>zsuM&7K3mQ}OyFn1`r`}%j-}Sy5fJ{CN>!vf#>fjwakPHb`BW@908&7S z3#QQSyxWFNvPMg_I{~Jw(L?S3R#Dab$E`s>qUX`Y*eLJun`=|49w!Y11sYbl+%v?# zR<5@f=O1-h2G-;bpiN!zpO(-VF03)+wk zzL7D`87hgLbhQm9)T??N&J;Hf5fb5Y>)6(t$l0ma#|*C7bcKmP?mj?!TUJeSQk@9NbGP zP1b%qdzirwjdcy;BPaP~tgcLA3V4xq|EYp*&s&zbN#D3X)2LUVw@2ohOe}(?Ld59# zLwlyilI>8s*bJq}eX?YrpO6`#Gc?pdD4!{92k+{9s3PmCcu(iKhb-i#VANM*1JV}MbCTVQ8%{QlAF2qxE(~$`K$5)_73xfq4l=X` z7gn){aT7!v-V5K=Id6N_?2T0es&mndGGaRWqi{yZ2^7Io!mSg@(F83xxUhRNu~QRL zMA67uh}qKN?yO4Ohq!YcaKT;%79G{}Khj5hRLhwktEK$sP6;Z2D$9^l-xg%Ry>o!` zX)wI&ab>i9P9$j0H22lfHhpq11;3*24lTCtqKvqU>Ad`-i z+0rPp3=K@>y8(TpcuJHP?-@f)ez4jPgo#TF=>nxW}`gcMn@Y4B1Cl_K%zew8+5KlRRCVDJv70V^8~62MgE5r%Skx z&o5x31CdF;FeVbG?QZf_-H(OUFWJ?cjpr0g=PM;^RtcEv@!?~i+TUFsND?ol? zXsxMIV|O6u_{vKru4%J~H=wZZYl$B~>#WD$L|C3;ScEFakIj~)B?iY2F842#jg+U_ zzF>6h7tD%rS3>*2+V$AhCYYcy??O|m&3&=uGFMfud&?ZmW{VW~*cX)6axgUlOfwz| z5Tw(kd)Kn2n=DWB1ssMgsvYIkxieW-QJcZ1CJ@TJ>JSbemCO z#}67n(mYj?nf<|7nbcHtF-hm%h+~;bX)6VLO~x{}%0(pAyj?2qH~#7rMDwLkqN*r0 zQmV2li$HIoKQ@~$H7+OalolzhnLe|4d_v@m%0SrdMPr+16b^30LZxXYGWJG*Qv%zq z-1lpg;{|MzrOd${xl~P4Rq3f&g&X#-Peh?3R<)6mC?Au1nk1_jrR+=#w0Xj1G_5O+oB*xqya*~uq2Ff<~3xs`u2G<6T) z?bD?^tWp{eC|gx9nH9bgP)eKOwx6{*EQuO;LBRdIlh z)2q4KH;|xc3!`x7*-d?Fvea|DdkPGGI}~@r0Y%WI1JHu>;eQ6le$Smkn5%p>h(2&m zay(Eo{P)KM@hwbj@D}!}f-|lFW1#WF3_EeO zm}srd--VP{uyCfMk+7H?`ZxGzJCSF!d?jI#Hv`ZJO*?v;DaF?KgV#%Wf+j3on1Tcf0pI(${*#61dyvw%uK@o1cXs}`_1HZFwGR2$ zUma%O&hp~)x`A^2^{+Ii{r(C6k_h8FQnikGD5II(nxL8U548yJNG|?VI(+wCfBU++ z=JJw~_|-Ac8n_0*dkd(!ZD;;s#NApfdj}X(Yyyvdlb3vdgLTPw6#|f6wXZ+ulIiL! zAUv?c0e;ngh!z^~i)BTbGvi?QM6yxUS4-gA>ZThX%g=NK6Q9)vju$EC zvH_#b{`GNEcQH&D`TUb8E{59iw|zP-OJe&0XMpY$AH&C}$C!9E)YIpm-}QJUn6J0) zAem>Tp5)yKfirq8GTZ9y9M?o5-YXwSQDdzqjrj=f(+820{q4e1?ZVc{VT(9X>baCi zI7$&;v$eb`Xu|9Yl`sPpr(vclA5s;#1OgbyO}z7UTz^}KE4C!hSf9dD2!k7t68Sc1 zzVghl87Q- z9r)wniOQyOB9GHh zFF5^nyXS)M(A5u5Dx8W=-*dD-BjM!zhwaI75^%j8YEG&3+m?)k7m zuoM<3&BhV)`J^lfWk`KhltHtw!XxFbwgDYG(6T!p5@8aJFOKj4S z@o3UNT(C;l*F*(StwK!7;g#bP%Ss` zS#PtYiX?=daI)?BwKB?87>?dkG_Sza2KM=d-w1PE#l%-PZ=bl-N6lfmwQkv65jb;c zy%epLSO7c{f=@Km9aWUjAw#LJSsR$%d|IC~24avk`hN4gc&)fXNkiBKN;5;0L+s+- zcuM|r@#K+)PZ+nRc*3$Ld$i;%7}2QO#aUq66ldJ}doXp^Tcn?&#JB2LfU7m6SH@4V zdzb9jIDjK+?js-><;HjGJwJ>)fA?6li2kYEc>WafeOz8j&Y2nbx7d;X#iw%WH5L$e)aZ7Yt7|>Kt)jG(Hqphn<`asB7&qE{<}nAbxAnV-t5?%VdN4_C^u7*|$a_&ZHs z7eg~>gOHP|IysD#7;TFeK$q)(TR!TyAz1+J4`I2jAqAV%$AzDKyCD;w@$DedFR7AX3#Qt^2b}KQk7GGG#08?6>^>;+M=~lxn1}?ECSv!o;CX^X1{Ay zkLUJtv)U<*ZwXsvoTRMQILO0vJ7ka0laFWGmc zB`>50Q=5L;NCS&;_uwrN9t~ySF@YJ>)r5e#+N=OchnUxL4d}F<95}B>57G;I4UO+c z$t4W*71Uf!_Of-V;sVw6h9q(A*Kls$U8iI9hZx)D3O@jPIm_d!=(XX8%YZC|P1LuI z0r!~uxNQ~x8hWq#^0mSR(h&i`cueG zhZCD*wmxdP#nT$YwJb;vhVC;>HMNT$kXLO-Jh?$uO|}TM-RWd@OgKR z&CUrfB+Ww9D)7;WWkyv3|kXaqe*Sk(>L20L+MJu`*x#7vf$okZT%eK4 zQmf5eS*z#DjSW9GJh#&F>h>mkToojXoMe**nmr+zX{sMMZz{xPlPwS>!&c#T**?W_ z86M^F%&w5P>3RxU$e^*v-g2|Gnj^!a7c0gD&AtW9BP2YBjIw87P8xppVqk-Hu7Gf_cx%NOSTyDrU# z+4Ab{qzE_23}|E=oEL>gfF2nEIq={2t;oO&F3l4qNnZ>$98anPspbfXH|U!lD!h4w z6Gq{aj+06J9iHJ#RqA=gh|yEMnP%CYoF>7v1&3hVihoso!m5L=)2PEXx(w5&AB(U+ zzm?cxY|DAZX$V1LDiIT41m_Cs!dkSWA^JxD=m%w0@5mBQs9U5YM)An`j$tjKeaj!X zNc?apjfstHf)e@gc_c#J8{tHLVP>#9mbEqnsq_U-$$jmm<8rke)eT1*ibI+XmAxB4 zB!T`7w${n@tUNiF$?{!g-yEP7%C{PQeN|y8t{mXqCpyjDX@iNLUIBY;p;U!HW>)=>?{=$4)@7nsa^D45SPL$=K=pX#)OQ~Bhmm0{Za6g|&3`V5{w%Hu) zJsqXW zGvzR8$B9kuNmBh==PBdKB0rwu}XM_VTh1U?@(1*WQ-d)(Rc6AansY(9BD@=wvz zDvRUC52uJ{iKPB24_=R2@^kwS)coIJiF4Zcwz);=)AAjJTOg5~Dx(gN(Q>x~9sr<7{jCRsb6VE6xfL8WW%bIl^}YMul5>DI6^1+v=s{l8 z#BDcETlcQZ+w^UyTTuRyt+aleNZrg{Ov3znvG*UY_~pgP0pc~$f0*3AyW)X^jepG5 zKl*ftI4k}W5c`%@@qf+N_1)nPxPR}ZBQiSlJxBMx&$qMu*VN~KQ*<#ueB?jARxpqLowoJV zVqVI9W3J8uy1#R#5Ky>ob|mmFx<) zGq82LjNRRE9AwO(m!9413=eT*mMi<$0vWB8lh51>>Po z8kX^^3RK0oyc#zWqMVi4(CgJ&r@^aH0z7^S*|d@eUi%ZuXDfjRrjIcrEcHB5L{rri zotb*r1wNggI+qa1yE7=pXtqV{{0LB6>*Waklq$2<*s04k1XAO}ed;xWRiof(QgzqL z*dz5XS<7jGB_+!<B!9c z5=Um=VAR>>_>(R9li(u6+50BkR026h1Rr&+^0CpOX*>k)I=r+jzw_Kt)J7d3{)ToI zF3?AiCXOH6HgH0(=b|8GZ&}S$j=&@rXg5D}4F3?W>-4anXKs>Rj5_k9l%$ltM0$BI zZ6-1)G;wwCHO(C-;Q#|>i97!eG}Udhhto%+%} zA%J4~&B}G_vW$LLVg6#{1N89fYIv>2mG`!#?{(8vw{1{q(L*wS$ZpWyG5`3z}=^Or~V?BOj6Z0Y`Ha+h9-Wk=!z&}(p=a=xyNtkbMpN0 zOZ_uE`(xRk&c+L=k78W07Qu=Pc-%ZxkJ&=46vE8}F70KP0Y${3uX6GHJpK6o4G8-PSX{Xg^!|l`rbjDJF2>J$??6hTfk{E<#ckFNatO9L=DD zeXF5ul$Ki=OPrUWUvkGMa2YpNpdf;NA~=v5khVfUZkG;Em<4qQBL&YwD^`4S3k)?+a(hKPIdz4cSCdU&)w7$Q0a7cEd@RXuVt>lS&*~252s5YZpkZ!QvR`J0Z>dRJay#+Dj zovtw9g+FC7r6?(vs7Um8e19?!jj;O4*k4W~aw((0TnB%GAfS_HMICu7l@KgEp-Nv@ z=rp6}@@C{A;eDA>nN2kQb0akH%4Yo{Mb9Z%Tgr_pF%*y z;HoqMT=)@rRkZ;1q^mi8000uQJlCb!QxzGV2JxTkLvF1Fcpux~L(!9-102DJU@Vuo zgkq$;_miiac3s1fRe>(!SjJx)&Ki|VsGkzkjRwC^?Tm2VcNB5kTYmn!|D=?wriVKM zrRTlFg;K>WC`vhMkZU_cd|`s|Lrr+yoYob~rSkRZO_N^(vVv}RyLioN`Az0A?%2~w z)f6YY-eO*V|J8x1*PwzCJh&n2hz6V8BBH828| zzX${NeGSRtb9X*SlA1+>)@@HKyqVg?_KY+M#>dOf27;(zzZxzDkzN6*A*M^#ag)hn z>;WyA>~_(hN(E{Dq$+oC^4Myj$PXP7V3uxH6sqUmct*7;EwErV@6Dplt5&!BZvgr9 z1S~Q}O^erL`)9-!Vh1q$HcxNgaQZ?m7MIr=EynvKIb$Q!_Z2+{#2x5v9awy@%I*Ka zTbSz)t&E%SqP)zU+rmuEr{zAn_S@da<0G~lfGy3o?w)in#`x77yJ5d;Ddvk%u@@&7 zFA+$C&yyaYrW%b(XUwL^E)bXE(aPLLv{wi7i_`<|NO>rI#r%K^L#3` zl|}*vP|4$aj_mlgu2VM!UJdJ2rcUBc+Y^L6pL$)7yo+~v4SO(?k=ixK$=^6_nq=)E znkqG^B%?lAYk-t`R6YRmd&*qA_8DDw@N0b{pmO}tlY(URC;h>+RQs*U^e5c-QJoFo z>Y#XT(3(y?SV>K~w_CZ{yW-c>vo;@7jC(1_wFj?Wslzg8eZAcJl_)`f?4`!bNt`ll z`EHKjGEL4LcEx45g)yyAX`_*gYR99!V~Q7z7^4Q8 z1W_5257JEXt??RM!&YB4N>e|0Z4jnLAhs=ZbH2E^chnTo3PuP0kiZU#QTlI2VL>}# zDmk1t#g^7_@x88}2w>O1v0f96y+!6{()*QExPrn)%fL9-qzB7491fG8OQ(|h26`8a zjC==ZHq}xANhrwDB;=*)%6Yl=TQ#2X?;pB#*iml{UStfsP`>x!0(QSZQs_c8$fY8* zE>bk#Ip96LNpN7fENX||DauUa@{?Z*YF=hxca@A#T2mc*TPYTx5)1HEP!`pPW^(-w zGpQ&U98~D(?HG~`Ne)%Zh8Xi}WRuZx&0G)5w?ZVQru`92!^^Z0L@%f6P*o!tH1biw zX3As_vZsjS$1@j8|q?uc8NsKe0QwmMXADCm;eH#)1_1XUwsh@R$8 zb){)WQDZxL1IL&qGYfvy=73AMxAEGsz!}voBmNWm#b19eCmk}MTzml`H5>eUHyY-+js#<(F5Owf3IhX*jMXo%1 z;(FMK)tR$%vqb&L`CRRFsyQffnK8|4gQu`rE7oYbyD9l7(s&&Y4kk{fykZ`QwXd@;ywXb9|)r3mv1eJ6K zmRXq*meGzFhqt8ybhpAoW4RF9RTH^>f>@J6;7931LUm^9&c!tPgY)lHF$vb_-pQeO zWcr*M$x>)l<+l?IqZmKJ-*W^{jk*oy2{svyx472{K;8(@{=&c80?llCmu6yKaX}>; zp_pY!HfMm5D|m*X95+Dadl*$qZHricX}ZrG~c9WOMOyF@`( z4U|iTHx>t03H0?*eFef!qW)Ogg?n*0oYdxI7qwo}=MO+Sa=o_gJYK?t=;HiX=D7sP{31Y`zfHuf~+X*<~_5w-!)ko_jjQaAHeQSW@GX3vc8XK`xLk z1_uB;sbMR;D2tzIU>Ga=p1>7B<wy!NO`R<@h~NNIGD7Ln<_4@I(7R zIGi%u3BUqD(>hhS@o|1YF9AeLDj+TTKd)89`6`nJ`4D|?ke~x*;`-<_qt|ro5L1tu z(^~5CYk6L}?rmyehFl3Y^?{cb?=%JHLa4XTV*rb2>h_ZQ>sr^0ERW|SS0B82^lFou zV^xqk5LEfAbf>4@yZFFAxc*8Hjm zT+6;*VHVTHY>x60>*5oWTvsm5sNHTvmp%6!T#?T3R$0voB3llofT=w`Am{|8n|X}$ zMfsHUxkmv{bS~1C@7{tM%*B%kTz@D9k2wc3aM8I&mk?&RGPc)0Q&JO_N%Kgj6iWis z>G15f3Z;u6N#Rhnjd8rNaK-Eb;{v1HU!fou-2V0P66Z5cQ9T3mdW~uCqk-_IedN4+ zQ6!7K->mKRSojH)#r5U;2fPDjX8+`W3vFdAazT3fcJYYimzemkvlY&tVJb9IUB~^6 zZjPnE2vxlLNKnE5MS3t-Y-PldfIG1PA_po9yYcGRJ}Rf%&*|x=hP(?OUQ9+tYW@BM zUB+ArKmKWH>|E}#>j7b}vm?aF=fwT=^lGj&HBH+x zzByDTAW;~}%tqs}{&E*PU!9D7pc5Lhajkci6+2_G_G%cp-X*bJbi0bkAN-#)nsYaaWGgk?8MCO3*t!yX*Ygi6fJ>g)nI_b%MWC7TWpZs?T_f$5fjQKTa# zAnxJI09s0=Xd`t_s-h`q`KUi+bmxk58xR`xqg&g!3WNP|DaK6)YI7^WBFJRScjH}W zfc-_cQbM1Z60ZvA6!4OqlW6@37|e{|!=Mgaj@GgM%v1hwfdWiQrjr~fkd&r}^t)GA z=ga8GYH6OFU0tZZ7xrF&j-7MoALV(4IVPeMXl}ZFU}x<~f!FO7`Jn7a{J|Il#88O4 zzy%w-?1gf|n3V=#roqn_ugKwvZ%l_lwJZ{aAQhN0wHlpfg0Gfryk72rqrm5!;(++% z1Dq}wgOHl3#mk_|)lTmurr;pY9HYbzUKpzAul1)!AhzQifwE^b6L3|C82&owY-M9y zDfYYc=l~o(YTk4YsR64^1u{DQw|x%uFxb^6W;6wG3^)F(I=_DurXSqa%cMPR_B1on zh@W?hAZC2U+SDh)(U)pnTGgb-IsM{fi)+kPWR=*3p`z0!W3Y&4d8k3|ZTKIb6n!^} zUYQztQ!~dnv11rZSnWZv$_G}bzp@i47cpC01K;@It;&y+zo{;GB5j_R{9%#?^MiE$5H2notw z5HvcOuqg#Iw0XY$YH5~Q@M2}L(6GGy<#O75s09D5Pq0wB7O3ym6_uE$_{GOA=e?<% z?)+e5{gQ$-5|58Fbdu3@Y9ns6U3GGl7(eg^(A+}Ow=-_RjLyV9Zu!migQI%;<{I%i z<4M^Q9-~Lu8>n@{P$*mOH3Sk+0l|8;FjzV5!mc6rs)O4kY&QL57%q!Pyzf4tvP4&5 zx?aNA=587-9nd+pE=)82-)j1D>_R?FUk2wr%P{>j!*I{h0nxg{0e?bDfH(Thty2pp zO@wcN2$=(bhYqmlh)Bu&*w_XnC&DIWR`Ln)t-^D)l0VF8cx9V*AllDr*N58-R8HxP6&*kU0{L2&27C??8yA?Ny81DHe z!p?9R0KA_dE911B;Q89;PCy((%^l&>^_vTrtRBQ}5it$_SyQ!G1Olr+eTx!;f6uda zs@daXa=Vogpyzl8pjwOEU&FmD1{}?dWzrwwLGSfk9*!$hv|ZK*RqFQtT*%OO;i%Nd z_1J8b;bjGlC}Yn|Ysrz3>h$z&cy;cOVy|YcuadWOPUMN1*2xW1>u4z!Ipnr|F=TgX zeJoQ}<*JnGWz+B~yxrifj-oNtMLw2>*Z0<^45Tep47zoU;|GcgIVMnNcT$k)NbFx8 z*;w(BFg!eq8#)*euK&mpjq8P@=iC}^n!F_|%_D)3sz3jI>b=_`0fSrgg|~Qk8?vkZI3x^(YRM+g8y0wM@{tWnK$k{ zIA@rjBktwbv-yN=W;|510bf@CNU;Q(aKp5!IJl8PjxA&CN5GYI3d834cho1y_h!5r z5_}n`-?L$79pcDsc<4*{s!S=z6iWHbp%FFU$MXGmP))kh^NA1GXriLn=AJhp=|l4w zr)IdQa8k4-@|l@!{D|w$mC*Dflhz z+$4SKm}~21%rK3cp^(GKr@}f6x+sdY)zDNa=f=g`DTBxB%CAwfBu=Ve?-7d9#LwxN zfm2SF7or`B4E;M(vY_0i#9nxNne;T3ov0N2E7b1Aqx+r-b0$j<;A>D59a;uLSitC+ zb8pBAu(E>DQ)aw|Jv)ZWLh?Hlb)Di}bo^^iJ|ZvSM-^_v)MkRysF$nT2T&0e~jkU}V7HpU9#(JB1I;zw#-w;MLU<~Fm$InOp+()Es z{35|A=;m-j1|y%_h4fTiHn~1# zD&UMz5=%?SKE)g=g!laV4FNT_?1kX%%lD1fd~xt6I69X7_{}^&`KqPaDeQTPvB=d~ z{LI2HRGCt`-?(l${N@}#h!1pg!(bJ4DX4x85s@#i{=G&hfJph?T-h~f-!+@d<(byM z9eET#3{V}JFm7CIZ~Vg8$8ZVBB}!zp@{7vOi53`s|DE4wYf^l`6UlevEb|2QCaP!ykWdF|_JJeNZar0N6h#Fd7FyY4&^ zOmJ3FS0`&daCXv?TLs%ccpZ?Xbc{8+qaBnsAy-!_@p`4OdNk|uddvB780=Un&=Mr@n5$XjvMRE;5hU@ zBccZ$gqV#fT0N>lwlAdMd5qik&iK|MbNLp3m+2dkTjf7l;uu@TqM0yx?DlB=8RoFj zf#Yq|C0Xl%Aa4?KQ!lYZpqD)>6J>A`)b8k@i&D7e=jh==jbJBgFCm96T_Pg^KMVriRU@Ua2By zFDxvrb`^DJGYs&V2AgjpC|7$}wk@?x)9uV+6q@?5F^}HwCRg1P198ac4KgC~JUmWlLv>PFkm=A*jVn<9Z9qcUDQ( zw*)e}k2+cMQF!}0q9d9qy{V9GGH3E((2QjrwihiX5|44k42u#v;yD+fxliJ{ zaS4FO{;^BgSthG7i)Kem2jY6;IjusY*rz^3mc#p{5+$k?fM0Gknh}*+J^3G(N+esL z82=hZydJWX={HRXK6oJ!K(D(L~+X zR0Qy~t!au?^O5({*@ZwyNUr<~L$r=J5Jo_D<9pujePQ=7@%y{f$dgeqlr@ z>?fW1uZM+vpM661E>2Wh&fB3knruTxf#=&9GYe^ZZ(W+SwhE`9fV|e5V4G;hlUErE znv+3DMU{_^cQf-uGM{72M7N)myA4CE4m1Z*H3^RSX_Z1i7m+4$@D|L`_i*cyISqf^ zNm{axW1je$(S>&v6zS0!$As`k_saI(%fhyh2!?Ba-vY|OTfE_I;`2PgPN&Kx)u7&aCcW-V^$tYeHbnXgON$6TsMd)DgA^>L#;Mt-slJm6Trs=SKmOytRr&XSJeU7KfM}?=9s#{x zYWQEAUmA`r)YmQ|B4^hd(-+$RbbhJQfDjgb3}!{J)G?g!NiEFgtqczG?3<^o8QfL$ zzgWfUBiY{?_^bn-l5dhbRWq(-Df73`snF0RCYDLC@}jDc&R+v%i<3`N?R1b5_>4`< z#xKD3f$!79+05m2Io_m;5I|7puK7CI*leZ(1LyAeI%D{MO1Ai$8H%-x=EYC;dWvmG zuhKO-oU!R{nKbuO?YxZi4zqqBcl!Rx(IQz)e@FN>gV=0nxm9c!V2ctm zw!n2!E{sGnTLhbViH29gW3lZHu_53fLzO$4w_F5mgeadJxfDH0qwJkMW$DYNc(PSZ z-x3PZE>lTF317w(OOv)Riw5g_Dr>ldWvsUs!MxXa*0}SI zXJhxDAFr@9{nlT$D^A&Qz3zg@W9`BI z4V#}_xA}0~TJw?^B#7y`@Pds%_k*et%bXQ>sST0T#AJL1LnTY}ohv2@DVw{4lAR}mOUwHC& z*2#EkxL{0+B{iDf%G%&NqJ&WV&N_X&_DoZ4NMBhomMsiWy8ntAv7T!(T@lzO*+ z-aCa4@8X0--TF1o;Dp1RBs^Js67Pi9U`K?O7N#?}`+6ZDFRIVRJ-t#%^J?c)yEBN-@v)PLnr&aKdzhZL$+EQ z)L}Q}mgj^*JJUnf$`piru}0^45F5Oc?VgdO zSFiDV50j}?tmMg!iqB_-V*;Vb4Jf#rwH5L$KQO>$WY+s)c zhhK{~gCB448{mdZ9K9r~yG7K~-0}WV;{#2Z?bWZ$G(S^Gj1Lv2SLq1|vT}2^2qZ(* z3_DkKfho4T4>1gtyA2wsJ=&%z)M9$^Z@&+o6?c@f!zqAs5qq#gYq@=gYSB~GM&3=N ztuAx?#&q{Ry1mgozPIP#vNu~b%SEA}BsAIeL+(F|)Ma9#RRenQt?e79P{mftz4#Qlerr|Ycgbb3PxB?CYWDGkQUPibs6*$I;l zczxi}-K`4gQ;6%&gV}rPYE&tNmHOX8Gy%g@7|d|x%WZzu%JJ6F8X(d$20Daq6czU| z0T$fj<@f~aWd8I8_U%jVl>~AJhexTzAo6pE1ky4(AfLBa@x^rGNn=se1mF1KER$g@YJ3UZ)5sZW)egXhC~#=kwRz|AfCdc& z$C>c#wsU5WS`;44+C`nuI=0n(IZu&I$XR@-Gmc21oX{ydSw{76l!+-+v1EH!jlO0-qKE&Yg-LQ5?@=DC*J}t5rpxP6jg@GP^i_!F1SEqb?q$lpr zg%lC(zu1`{FFyLb;B;Vl1yhFT5JxFIZ97@{S8&M%r6{>osAtCGyXFa=cmX~I@m~3n zV@3Jc2_eCv^NiK3?PmRw%f!cf_nS#}usR9^d&}D?lcL+Qk0lY%zk|2B*mZ#3m{iwWwKytZKjq_ z2c_Id%iR*xZZh|B*|?ov>W2wl7v(Md$rEFbbpFyk_?>f_iLF_rYoLLiIFcfr>XlFC zq}89;geQ*46p=_fZ-4bWxw|9`WDxoEx6uCkfh8B_840^bkj`2TR664`)faCd!_3*S zPnc1zV|l0{?i`4+G5U0vU=UPq^m0{vc7orr7oYUgKk2@;uH|44j~ z#4st1W6Rck!I(N{L^%dg=`vDt@g3~n6U<5NOQpp7WxR@QHN9PygBwZnHmX9@QvPEgZ={G*8Pu*UJdJW)RNuJbB7FK0@*g|>l!?OXA17{ z2&x4lCDhj=B|tIZj~}8Jk+>iUK!dl=GlgjS1CbJ7S%lqsF}(7$%rjKPUrP_9ly5y9 z)bJ+CDxncc(^~>SmydyR{4$GWL7S!AGKbXj&t^X8q{kDHhVii%T@x!$i!Y1s+Si26 zm#A%9s@P*#p>@-ny?@u{{^G_W<6M44tu7Lj2MPU(;Lf;-R>Pq)ZXw6wVHW5!N^YA4gs1)7q$3nI*FDo(`P9Pyw0n` zE8+IL*#1c}Om0tH3ik?!!?B5r40#eI^r7i4E*~Mqea26LuM1wR-4GS2bG)$CE3~Ui z{dlqn*+*@Y)CtKsL};jS_*!@OK_H#cQT?a=NqlU*?d@W)2PxB@SA5d zj1&xUS^x_2GGdLy+MPwTzu*DwTpZV#x#``GzjHm+!Swr_WsNs6>oUw#k2TgWjK zbz+3fD*pk4!Wg_S7ON)Pl`kz5Qp4vHJhj0YxTBan2X!qA@8eHT-sh}b>KIBFjge{J zf~ICG{MJU|kDg9&h?WhizD`PB&A<;BKXT1kBO55X@ay}!c!Z_)1^K9;@BF%Cuv$wk=SIEefY=;f17ymm!xyS~F-q#`YJlP9ob95+#r zoWXoch#AS^{3mB!6H8Pl~r+7>-MHEXblaG zOCC9_Qo#8ih5Tkw84dk8yrq0sf2rkDriQPA_7$cOl@RsA-`jOO9nw<;Tuy5l^8*a> z%U9N`FX^}Bg8`RQ`_Fmu8@3qrd9rps7#KaN85vS`c6JX|P(eX`D;YpQ1Y@1lSsxJJ z4g~%P)|n{anfe=ZfY&JzpRW6VqpqLV^V3E&x8A?vKlKr};xuc&{70?e9j_!@1^$TUp2{AFoU^}&idxmkZe)p)mvpYZ1v z>G5)R>sWnoLc_QRb-KHO+@MN^MNv-;uC}+1bvsiZ4|sH^l_T2xP)d+B_#MBm=PQ_Z zFmg&LHv7x8O&30SJoYIcy*NA_*`C1jlm_mOUl@DQ5?n$8HCYA?!( ze91%!gJh%2VKLPC{eN#Tjz-vsvr0yGFoPv90cJ|zYZ>QB7(3W2n|tOLDaB^s%>b#6 zx-5^T)M-#$b)ziksf^cD!Oc4!vqt{#j(Q9CG+t~{UcvOX3+d2&VHU!MX{z(}+QzJ| zi{_M`t!9*w1nfx~qp`yVD7O@h#MTlDpRpC>eH8sId5nqv(DIL*hjgNuZy79-aG@HK zTY0totQ?SVm2*JxbqT%G&ILOe?aOa2(Hw=x2LtyWYx z6xIORFDi!~TdB7%FMMQVs3X1>@^qxnETN$F_sM+JB{O^*K3 zD0<LPBR)D>S?M?GdgVnAq-FZjOde1h-r<%^!Y#34~=FG$N@XXBQvw1_0_4`q8 zM!aZ&#QA57oJ&5e?X=xz6%cc#_TIf!fAwm%zi(N=EPi6jl&d9+>y+Of|58f@IB-s~ z%zjui>$Wp}_g>r1Up1Yx7heVhH1V`Gp*JDR#K6TX3GYq5^+(MU+En@d3U2pOJVUM1 zP-M^d`X%y2{m7HNy9T~-gxFvEe@+#sh|{4m$0jcv)bviN`u)?1uV3wH=96*qAo9b{ zA2c7)g~N`9wmY84)WKq@Eq5(iEX6rTj^&Cf>B}CL>2nnX#uBV%mK8LnMcVPF7480r z5TkZfw-cP*3U53sU=KMIFgd>+!D^0@-2J{58&yT)WVNpQpcDo`c5e_fDKXy|nnvgPv-x#3C+CKifnf2o zR09!HrBExRWF*ih5=%--iY=3XE($5n@3Bk2cTpgncH%9fwbo+snvg}Or;s64wu-?*B;Sr`oB){SpMJ7`az?+A3xVYAs| zz{&wMDQ&-zw$j8}UUtVpY}V~a4KuEiHf$sHmZ}hm(UEutbk+IKY8gN@SEH$bzN05} zM89&aapJ@IfE&qSJaS7p5F7Vxl^amiw8uT{lo#(P{sSz!yXyqu`mOSN=d)!dnB0Id zC_V=@9MZ;aJyCtMj>4!_7+>A(`Rhp8VbtlYYZGxTQX3PKq{IS=yLx1QtN-xvzRVdd z$xkZ72@joVE{$!!yS_&~i%p|rUB*8+84|h zgad*zf#xmhD|27^}u{~ZyIwK1k~wO>-R`6frzW^>X* zHA#vW|DX1*G_0v}-6CkwqCl$!2OvdlQJKUl8X!b!5j-+TL74}o0?I6tBqVV{+Qvh$ z$RP715u(gtN+1FUBU7RvB#=Og5n>WTgaCmI$++TP9&+}w|dw=_T z*Sprc7AefuiOc{8wahe>i=GYp9Z9c^#&ymEn^pbI=StIunp@|ZUL2wV^idiPXT0r-S{p0}Sx;Ps2n3kYIKXmoa$nGrsA|FObC27P{J3GOcYK*YfFMoo#gEa5{ zdSGm1=meBxG%Bb;b<>=(qG)ujwE8)&7sMg-O=}L-o;{hXHY!+eW4eYjMlDZ-_RGJG zvUvxirSq#;2lGaJCOV4pQppX3TrD)v(M8WDye3K{fUx4fczgC;ZawpQFAThi<)pwrU>c0&jS3sc?AS$t}g0 zOOJhyE<^tEk}!85oWGkiIokUm*u%B}oJk%oqgμp+|?7mXQMskQlis>T@CtE0qp zraCpjH?i$B$*iH4!B1Lq!k|;d+*6~U`PP){DB|QaNnSG*6K;1~>x;^EQ^7tER&kjl zjzi=&sea@3$Zc#=p+ykuHf-#4RD>=+q-$1Y%04Mx6nbF23vr z`wq(c`eIiu6NW_hgXNvvg|o#?m{|-DeM)>0?u$Ja=$>A;;%7!Aw4@y?=$JvdJ zjFsY@9lZt034a=H``A)hx$mvxn~EkceP(b^kItE!i%@>F&ue4P5PX!j@*^W7bxz)= zL7~sL35J;`s9Q96^Sf2V7Zwb&oB~-gsXa?k=R1%rP9$38h1U>SboTs_PxXvz)2jmA zdXcJhNt`s^!?`|<@HynF5Jpba+^uUWDeP2@wVf(5iuOdW9@g6{&e!R>O4v3gDKltND$C}k^G=Sb5!!{*LB)eD9#PQ z^aLEz27MQ4VQml__T^yeKUP{G#UKp?GdtxO_~nD4u*aVBHrLnl*ZrHM2lX<~8E|r{ zN&Oa)Lt7x0TAJoBVbK^@(Qb%23Fxu%B8LO*gi%$!@NupsDSW2(;4eY{<|plNEtxFZwv@Y zJ^=*gy_8TF`0dV6kV;a3_~Acp&A zh5hft1HfMYgi7WXdUXNi;>PvDLFuda+VnrQaQ{x&^gl#iFD7Gd+ÐRHUhFQ;v>a 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 YuGSqBSl9~O^aYt2Tc0DGxqkou0=OWu>Hq)$ diff --git a/img/sf/publish-button.PNG b/img/sf/publish-button.PNG deleted file mode 100644 index 8f84091bc16fd56e22e475923f6b83dd62d32469..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12815 zcma)ic|4Tw_x?~SBvBzmWQoB%R8xtLhLr{c0@0}`E9ihg6j0zN zd*K`~vk~tP0sc_9>L|&9Fx~76z~HRyV~xikP-!IX!80mgO#NKh$Q1;-^zGzF(dLq8 z1pQltql9Zl$ocWHYf9!!!di|Y?ook{c{_74+jU@~hTg&zgALx9z zcE0lmZ-R3CL#s@Un+n6Mt8Uv7ackK4XT-7(9bKmA$7O4(mZhOF*wzH_^awb^Fy6zd zixVDwJK}S&Ubpd(%g*?ai#{}cVBWxEY6`_M@f%Z6Rk;7rSJN$3Mt@c6oZS93`lc(H~9$GN*oo0f9=+ zK7kO4W_~^*6^0;CFLM+a1QMcX*MDa1Hc-3S{UAOyRinHb8J!$yWaK&M^xG+AD|6jj z2CSr&xFUrQDcKs4c@|MQ1eL1yjO3!i$y#_FYD$>BL!lmYk+(JV=YuVmgX+!FMPB;Q z=ah8L7)^W^eUK7aU@y?V!`U(hM=$2p{j+e;yq!SyHLaKwbyvewaE6=CzW&kJq}e>X zIO#u>k~B9O& zjqAdh&O$l@PiiJ&mEJwwQ#9IMD!IK`d*1cyXU8k17x$9yE$Fvtz4(V{J5KYndPnhK zOYOhDfVp$^jHc^blIZ4izO1C#ZKCIR%tUlZQTKHhT=hmgnEzIkaEx-nPP4yDv-vwDtC7elMw z3%H!SUhKO+C0&o?EY!cAl#6v%m4fC7XnVeBju6%}?ce&izP>5x%+wSBUsND(~fbHD960#GZ*HL|+qvqjLP9M&I+6`vFKt@Ij&Uhn?cJBko*eVKpKKtj#B)#MjVK(v?YY_51ZEw#k_m2=(k7|AnNOmR>0Yq9pu;d9O$p`LZz#Vg;HKKqGVf!4OWkJgFaGw~aE4RLpXS$H?F&u{&#-psxI z(~KQEvy|_Q70+hpn(8#!0Watj!{FK7FQ3KDt8_4jLq94V!~elw-OK8=GGe07?fA3k z&9~f!sWEiN#l16|Upr#mzg@X6w(XLS<_X(LGKG{Le>QcPl+)8O97A|7N^$Mhaaq2A z6-_FT_v`MTt^mO zY?itb*%Lca>G|2)2alkh&pN7KhPgBprM2$Qxhez>SS890(R+pA3|=zW?dn*+jxLN7 z5Z0~tBvqH)_gb&LqU56K``7_ev0<^xKkmB`Z+}F4i;&&2L+GnM*A|=J?e6twcMffg z^QdrY;&)(p>;E1>vw+U=hk$EZPGJJ284W6Yc+KeI3~~8eL39C>rf0wp}N{gWSDllO1yq##`~7yuxk43-!Cuu8~NQ=H1=tda&a=l(sNJFnhXlpf?@6wNol5=PpKCFrZ>+RP-cT`Sa3(nj~nA_p3C4Lu=U1$obN{oEC8|UfyZi4bZu15R0mH7OpoAnp4 zeOlx@$#kD6s5N6Vw0H-IorIo;E@@uBtv8c@@%7@Bz4OI_5|+%;cBA$nQwJ6JeA{Gt zZXj7c2H?i>bqgzF#o@iCJ7;+#jRkOui!cnm&#uMh76d-A8^XMq>2gDtAe!IMz7V)C zf%lG-!L=zDn3Y`~gXkxUM5YSqKtMScfJZ-@I>9SyDf(7b{(*>YurJgnS;M5Dr? zW0RN8H=!VR`jcJDA$Kgv&#ljECQkVsXm8RllQV4&$9q!R-uBL`T0C@}`%u?4)UUgs zk1K;>v!IrVendexJ8gsMy~T0arHmU$d?aQh7qM12CPR)Ts^MF|G+o36C*?LuTS zWZbY0G@=&uL;O1V;)b@6Sy6C2Bm`aTJBTj}cf^dR3qju)M;kE7HtjYlYLFLO|P$CpkoB2vTM@9FWizwyj;{P{54- z(3~K6w+b#%$_SghT7S@(@kUwVXrSS!s~gFSFXfh((^Gh2owwC?eCYiGm$UNCnR(Bo zu>9TB01{mjTG@Qv4yIAj68YufL&~6FCnbnB>W%*O!}MY$$KOtv zZqJvoNcle0H2Jz^D6mCo4mpL0MSrG69l2S8F501XZ%Zpl4WhO$7nTj#*GkP=v`^kO z)WMb&3>FxEf16xQ&-`trZBF;ebYytDX|a+Qut(t2Jz5UcE$zBtu zk3u*A!qX-HrWO8eNrF_}sRY<)-s$=6ZI}X*LyEzZX*E;;0Pon~v$-9;xdKqu3aS}^ z-ucs@`{~2=daA_!eI!!!4qkU23InwZSFO9n%y4)r~Sk+AlDg6{x%8j#>v~b*gr#u<9zGruMo$ zI#&<6Wh-^E%{==2V7V)C5llj$fk0qMcS2O!xBL!PJrV>BtG9BQ1ViJp1&;^ZRdc;z zd$%EVh}~7dJtTKHkJUEQW?YiGJpAm_$lpfG3~U&hkAAJTO?m0|c9O>ipL{VMV)1d?v5o0rlh#H% z>d5_wc)Y?hQvUl8Iu}SNt~$*5b6n(gl${*;Nt&l$@^-p`%)2`OkSv=etvYdI(|EWo z(i__P@F>S~v9rcLkZx$Grz+*;LoLEVFXdlTwPAG@phjg=DBp~h@oCwht!%uN3$A}^ z!pskBRAM`E7`%s?s-F6|xonoSRKG=>`(9jcJ?Zu5@n+TP5wnADHHqI-2dwXi+d$gl zVwSrk=&(g$SJi$Svceg~PFkpO}%gF5G{J^@k-r^M3 z`t2*5^_EL>(Bk@z+SLF^O4#vi?p$CHv0%^39tR7>8IO=x8v2n|)U|r3d=f+Hui~pV zMR4WM2Gt?YzZ~ooj31YI=V27qMttoh{dU#HVMnEqZJps38KYM%Z$ZZ>YwrDCE6-#4 zLYCE|HQ}n%O~?6M1GD$(hLAhOw<`CMFebD)q+Lt1BzsChcwuS4$6(V&U;a24!}ANYD7_@5SxoMTJNw z#iEUS0!(eGk2eapJGMO5*(hB`-yVRMvQfeth4Z<}g{I6#B2OWAJWn&qSeh%~RuyF@ zJ97t_%>)ib!Ag8Ns5{oH6Z|IqTNbL6eX`)OX-t>VB1f^Gqdi%_W{BgQH>rPiJyj&- z3Xp^h*mdp%9OA{wFd3G*mZ9_)m_Bwg7g#RJ@Z6=?G#l+Hnx#*xi331(5@vo4cz2_s z2kJjmkdg%r((an zZ8>q-VuR$F<8bc`!yDVr@^9!af0Iw+1h}QC`NoM;zRBaM32rLG(ulB;)vke~xuIj2 zCZu(YZ-zBQk5svlJrGViF&Ap`OR-2NMk4yv{(5%rm#&?Swrw^vuy4LXfs3wlD?nl? zKEs*vj$nz=OjA=|uWvuZwbqV#Dj(kxKp5Hc?OQMM<$demT5%E+V0R1h4J z#0?d8zUsvVt*X?g9U6b)X~|s8TzF)MA}E>R*UU1r1)UQXisL!Pi%kp`RnJChG?%S^ z%yO_E@-Zk~r{W2$JO&!r@`in%n&bqJX-(x=t~B06C+*e zRow4$T%#b++(~@sRXSoVgkdV}t$6^hvW#4b6~%8Y78aiYsekNfmuS6Adc8f`a1NAs zCpOBF1~v)@>Rt8pK7!kalYclnGf))m*ZddG;B0`>*qp2m!~9VbA}hupAjAAJvPo0I zK#tAPV!}=O>^xlDmf;Gh>{9rI8mIf$^wBhPgJHFKeuyf!bw2)BS}@)K6OJ0v0E*^S zLw9${u0_0}jWtQT99NDQjx^1RUk8G9qKwh3ss(wp$G1|iDMop`7vEwi_4=z5vm9w_ zOCR7ny*w#!+0CS$myAV{R|4WAKNH_xMi9 z=*XymF{!z=wEWE8PVG{p8qwN2%FYuWT*%T*`oqMWJf?bczt2|FXEUQ3YB^K zUDD5Qz=YYzm;KWo4@|z z?9BLzzAR$==$_xo_gD6drQjD$ciQ=gA{M-3v#R3~h8U9{#(Phu78j|xo)RBE^8Abx zwg|@>e_}L$(f3bqFFc;aX01@0_(`y1Xf`^)$;2;F=3Y^Yxe3cbf{V+=U7!5WU_2#+^3=FoLZ6T zj?ICg5WI3#FoDd;^6s3sqIfE04s99UAs>*)UjHo^eiLWut&sOxb z@CkEHh574)(IOyK@O0;flh6nf>xs^5zHxq{l32}AP#qi*5dF2-WpjFeOMjc#ervj2 zX@GTacD=HhPFR<{1kQJh$O23Hcu^Yz^7l;&hPR!YrD^;V0KW^UXLo#V5-*+xkameP zfLb6Sr)Uk#pDQCGfv4Aqo{Sp8%tfyNQk^>BMFB|{02Pm? z5T4(Xd>`ZZUon5tnlCVxUkg?t4r+Y<7bS*yJRP31c!EF=&OvUl9k>s$hn+?gL9y$1R>;#;IL#o7ty+3 zAEPC`t{|YpsXBmv*+Q2EU$xat5>vRuaf9u{^)nJdbx)XZ+g*bsRqult&VP#Q$qoYg zup9(z(sPY8pJf!@n@%}P^QgsYmQ@}c8+#QO^XL%qy-jf6oEMg)$BImqe*3MVl3*dmh>Kh#A-KC(t!g{eAKp|C4p=)L)E= zN*H#n6p8p9>c%+0Xm{W^nt&(udGBelhB+H8S4Uyqpqxvy$pP9gX|L+SbqVE3OqUDb zZ{STF|HGE~$kg+~1~ha5!!QiW4#B$B<{*a<$}|Qoo0PS?CCz*hbzi5X^I9Ic2+3^jiR5bi%}Ot_dtowgUL%#8MI zFdWO#O`(eVqNEGn_Bo$hC_&3IqqC~A0V~{woeCfj%N1aBTyufxE&~YEs$hU)JORrc z#WFk!R+K+eT}da!60}hQ*G*$uGfr-PYQqfzeF$HxZxXk0>C00|8#H@>rd(o zc}p>5cm}HDbn-uY#T^A4In#mxQQkn#G|y&adsh?h(!C41NC9}rHVBJdyJWL_JN$^=!YDVV6J^>)y6>)#<4HnIzr#x z*iq@vD~pE}%d6+lI0cEuDq;xiZ78mQ2v5GiiB=WNqASTBTPV)enDk2JGyDxN`;r=J zY28|#?o7^K3_q)ar}DH6j(wI8Ab|_`^7K_$K9 zG8^s@gm<)dVQFp4juo3=&~;0Symme)nc9iD32+BezsR>#oysk-A$Ngioh-E5_y5B* zLd*hElQtxSB`x$$2Qn!<{2%;^&=WS@&ZGC&Et^bl6~d`cjG4%7L{b$V9(-Xk{)YX- zV^2ejfEMkpum}DX zVi)fgDx|=%Nt6}dAC4Uh^u8BksuOO#5rlFWlt?=La2ih*+m!&_)a1v-l<2gXX|%YY zaz3?i9X!^tOSPd{+f>mZ-7gN7cyk--_k79bK7bD9`v5ws$8yajJS#I=xa96qHT%PF zAeks6CO8LS7t^}RoBG|8O-J{0~Dj~X>!aBq;z;F_h`7D*+IKDJP@u#fZPAX=&opZyX`(_6H zgi{6!GkncArPcEQ3G%Of8UG(B;d+UCV|(LWmtl#z4(atmc7jp9%-(G59F}N$*Kh5- z<6M$$8kW%9!n~S3v8~;rGa1)u<5k|n^CeU* zcta`s|m*vA-bs=}on z7OOw-p1M2NrQB)A4r*2A$6fN_qqJ}<-`!B%lMAbIyvt-~ouCNZAN+%DYWEGPF@R9? zs7H2HjuujGn51}iiLg?iJ0pC$Eklg#q}!)z+y$e z;?sjYSFl9lS-kgJP=mHey0m8*T;}+Ib}$jKi&R71n5FRtl0cxZT`c(FwMQnDZIPT+ z!h-~n2eZurFpS59Tf(8=?wW)F=AS9=FcXjU6w&c_9TEa7_a?S$;*V3bj@`vue|~E~ zr1_Rtr@SJ)lD-78JPYu^6gZ^edk4zOb3o&t6gKDQXgvYwYX|>oiaeM2VS!;_+lj^m zeRtYjdky>FdY+0?4tLE;y$`OHZ{jWSM~dwD^3C^Bll{UJjZXp67}YPlcC=G$XkTXN zBT~Q1=-MqcpPV8)3oGK$Uv!~saS9@}qE!SW1)lg#Xx)lvDARQbCnK?xllfS6%l#kH zARuZ@EcH0{-md|d?LB_NKL_?AMLM*VUhIgUk2lsmT1w2Fpaoy zaSsA#EVwOu_(i7iqtWy8=grjtpHYqmPyE(hilb6vd8ECWV98*Vdg+y%~j2TLbdex)zjo&I0b7)sFha$*?@- z*GLnuKwd8Yeg3Q;IX7i4W$GYjubE%wS<7n@3Yt%<>E#n-bQrZ>!-MIX>Negxh9K1j zl_-dSz1 z;$wM7<q^d8LQl1~YWCuA98kjo(9I=Uk_ zV)r(+>&xth^p@^hP*CF+Lqm*G#P=L$PD;S}Z!*(%pq{kf_aRp#$IIoBSjQ%>0lG<4 z7>@L}-GNGoPoq@PU2>&EXa$4_KEvTDjNgsD!c2l7?pZ=w7*eB1OSKu_mkGA*%O{x( z@OL2h5@IP;2KX!M=;HY!9a_XHX0WgA%kY4nSO0o?)M1yMMXK1YUA(7^P67b0GZ$CA)tbvn3+aD^{zM&hVLg>m*p@TN zx-d56_JFraS(Hx`^1AaV&{y#dBx0|HzTa_B7U z%x3y=Evv25UrDYVMSe!lA)VEF{gj{b7s4g%5+7D??Tj|~H6;6eI6bSW!wvH9`un0j z29UDe@pDRcmipKh?!Cd6hR?-vHxG|7l)FrQv$33~D|dI?Ogz=XDD6R=v_QGXg&(5M zVH89c-yqydNxY!ji-)jY@y7rj#*ziMMGvQX7QGnnm1);kJ&Y+!Rdg>>O?Y7~)vzD1)FkR5$>AKw^~#J@8z<-% zvnSt1^9ahvPdsz}lBA(tiSt<@pWwo)2OB{vuGcK`6&5P@`mL#l6$ybz`|pg-Ir`I? zOywNLv!Tms@s z&TL1kgDqSMQES$736U#dMBZn(_lY`rNL*g}aNzk*v|gH+U<1ik(^&9}r7<>x*FNni z;|5V9HCB>`Hs)h`1m^^$Im31^oHrkd3Mz9dPS5M;<1A6Uq<>p!W?EbT3geh#hB?Yf z>q8$^IaBaI(wq@16{jhxDk1L z_BFzDwuc<}6ND2qeD?k)rK7MGc!2!TP`on(ks)YbCQbK6WBP`CRU@|@@{D;g1x`>% z33Ip9xd+ym@@<*v*A*ZhwCjghCr%1Ky_hyJCj28O+EbNiF;x%BhNz+&-{ciNZV&C-_jzvr}q?So5OqoP|r(E6lvJ{4ubaY!Lk zs_SSG$W&;F)U4`f^?;4-J|rp3r;ufEY-)18WnSbL&{Ce19B^`Y7%z;jpN7<=F(MX| zN6cqFah~HM)~wdIeU$NmX)MXThf|}SK4hE}OuWzs0qKcU?$;Shn7!JPY;>1Oo$R-+ z`HgPHiOX~@*NYmgly!(e8JCjo+Ago4;wM9*{z9gFHZjycIS5g_DH(2fV@@m7hHOeiCifWPuk)CE|KiUOPWA#8t{p_OEh;{p8%_SE; z%28I*F{6O4pAW~ZVr-ccp;JUBMsdX=8(}>3=XOTE&TgQ~dj)v=wwzX;Qf`IeK|#+b zM=XE7peb)t^>@3ZD50Rz`By%VpWw(q7u?(Amj;HX zv-2)P$sNlQ^}{XCUJ;=N(!2;+RVcView;RdJq7!*07J!ScTG3QvcKhb{F0m{g92|< zay-ivq|MWE95J^1u}`Y6xy5sE2Kc^b+FQajNVyJ=#5?vEDK!+Yn(~GH?PH5vG{#KW za7UrFk08-vsPV&l`Qjqe8wO$`0fG=x5=j_RZ6xzT8-E}(NEU!hQxo(j(|Sybe>h&o zB&b15GnLcHWu{YgcnkrRM)L_$>k3|0P5#`=2Oi&*7C^S-rm%dZ?sR$b|aVj5& z)$clS91agma&(J4@~rt%`qLSFSo<@{#^gXpbK0U<<&iSJCDZtoQQP9ZMNE)NmJSxttbXTkw}$B}X(p4&7CX_CYqspourKPA{I0m`wlRhotpN4SjDLcbi5S0~ zz$*J(=AinDu_Ju~=jFJzw7cV2wizE4U4TGBQPUjraYjJWByJU z+AAyY^~``Z5~=YRT$7T82fSH`T>p2CV>+YUVt0V*KBp`hP56X_V5vhrECH zgdY}XLumf0C1-X6No`-qiG8R2qDL6YnEZ3p?#C?&LPCZ|*-U>=qDnTTHp6VvxO3oS zUM%hiRTLe*`w_~YW*0{Rnmv!CyIDh}Ty!vC6lx&S`Wb1xcEu3%hJLo-Q|J)CJ_Z@Z z%mLz4#0cqgss_O+SY)CcgQE;Xui`c?7#;P7$fFz)S^14o9+v)Zd4wXZBSe*III0L! zA0H;HD>0t|gdP2xFC64hJRK+)8vkiL%$@eRAGi;iUdSfbO^qVjKN&9VK)vmp$vAvv zJic5ev)M5e?zxyC&_av*EpQVWl7Zg}VK&YCId5|I!HnXl{(rwz-2{P*jU{X) z)=&|C!o_6#1m|<9MUYU{)#*ThqFus!WezIPSgcKISjAd%NL>0+*aHyQd(yOJhN2E3 z%@I{if(N|-Li-^AxzM_T$%{H0vW2i-DF=DIhc*JHjao;LN^d}_ss>C^dd7*GxzPvTkvA$?2j-s zK6w4iLb&_{i13T!=6A)FvwfGt;sUy$32>=WQvp=Pb@|LvZnqz`?lp{=!X|~qUE}w< z3$j&q&EOIn32hwr-Xwh@7{WEBLyH#;ZEBs%CoH1U>GCS_d_=tK-NN z>MX91H!tPnu2y}^*0c3|7%IAM`1AgA)2azNLJco7_1Y?0v$_c_Hd$L$uMC?njNSjWzuv>o!VEzFoB(keXs78P zLW~SqkE*ZvgXd)(cv>>h`@t62p(dr)(o(B1aRaj#g&g~Gg!u56v|rrF{sqmq2ll=Z zT9ZhlYcR~1Q>nT435WU&f9yLZBi{JsL=ku+13gKH1C&5v_8#6ec?Oxv1ds#vFN(l! z{O!7)TcaXGnmq%w=SMVAh5l9rP4e_2f+L=-On`oUrCtA1C~6Im1kC~MW&0A4xkrVg zT=@d6AG-k`DATv=KfY3^RREt)J<-CQZxSy^*`Da$Z0-61&H2>&F+4<$bA)rJHv;r3 zkPyvmL2nAYPZ-pgMupV>rG`=9JXOQb1M|6XiN6|F!J}#Q$KVv8GjZDO0d$ROhNOa~ zPoZ%E$t2K7sdlQI{g|)it)o>Y0&9k98btVp`uV>iw_D!>>X#`NR=&9Rhhtj~IYfAK z1eO2Q6A48Q zp!RYXEFRVu_2l692Q6w4DEQ&a7#ZphGjDCR!{dI^(~&{>p<K2LS+blE91LKV zglVhaOcY@!VN==%LqUD^thRB^269**axN3$VZr#qhSGAuc)h1N6ZN1{`+`)dx`WSr z1i#Fu#H=qZ?q;3lKtKIDi&DB{*4Aw*23SP<`MMrO4?5KWh>4918 zpmTr?2lddc_)Bk2*!zn=ID`I@g}WIBRT#Fko5=*G$tMK*Z*ZOZ3iS3y!sQLT-WmMnJA-ftclkQ7;t5Dn#KkeZGYY)sgZU39F zw_m$>PkFr$5?L`DxD~!}EEi!eU zH4C0lP(WsPw>khMTW$5rc_c0XmeVJ@Tn6{-&Z)$u{CivgXVZm+jXp(GC$0)ew&~f` z3jyEAop>}D%B3d&OR+J|Tp!iOibv2jnw|j`{*<)nL1n1IWahLdY~;DbsWxK>T9yEo z0rWV(lV=4|ucwV&M^b%a`x_N3*=&?9^gEZEocZmZP6~6T0QLXX`TEPzV*?aeOhA%9 zPH}u!4jgl?(G*Z$8lUb1RpTMWzrLja-ueGi9sYME3|#T)N-;G(=+2E(+x&0Ib}vx& zZLjE7T`3g@J(2;=%OYT93I?x1;r5zo()JnFNptg5pxIes=kfUq15|0(24h%(&*nfX Mikb=-IrG5(1=4{Qo&W#< diff --git a/img/sf/publish-window.PNG b/img/sf/publish-window.PNG deleted file mode 100644 index 4c27b8e2911782ff733384955bd8fe6d62056b99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16348 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

Dk3V|HpOZ~kO=x4Jwps8baaW# z|89dG=XUp)9%f6%bKZ-HYub26=G^q#C8O@QhXD5(JvL4MN5@6ci}3G)koJLBHNN0pDCHz!p+qR>!I>bgkN{o_VqT609$atv-d0)^Rh zwt0ijn)CN&l_d9*zY=Qk?7YS!efElxC@1Pt`>aPq(UUlo0;5Ei?XAgt+6- zTcgv8)4b^Hc#eskUFop{3T7X=`8s!BI$NBN7xyalEfb?x@>izM7x?;yn-ckJ=bSGN zl?x99ESujE6@==K2;9@H+~tg2$Col)?+mdXP8lG%cI~fnrx->s zF-g^@hLzTMT$pV%$ee59O#R6vne+KU6C6qragm4vCLar(f!s{}^HS}u0 z_@O?cHe7>^OFaYG7$Zd%tZ;}(%HmPd)2O%h9ro^@u3?BBh!q#GGTEupK{HR6DJuoY zl~XvU|H#F&EtT|Y;w-~ISm;uZOZuh{lNt7G$>LO-m>ckDT8zJx0{<~3X=|t%`l@u# z?zV-3Ceu51TJ_n#xt_sLp#*Df)SEzb$uY8Zpl32>GV|HB#E@px5%lRlgR~s#)n-GT z$fZFG)Z4`c*paeUR7oZFwa%j(LL9ECCD%v58?2$WHR)yACU){TH-1uhsssC%uQL2c z!r2q}*4cOp18(GSKZmri4R^OGDPgV3VW7uw2YOKHTH=q20-{Kf9$%MzuQu#s?Dt+CQsOCU zXmRf#v)n4DZuLViMeLFyaMTw8W$hxVYDBA@QUphJ3Vgk@8PJk+Fa*FtyFfTrKD z9Z!ydO{&A?>(QU{^L@`r&Eh$O8_6Y#oAOf`=1~H3_cy^_^DA}ENq+lO=Xl!ry`L4C zQbo1437fAI`&UDIXyEQh4RTZyUwajZ+uc9(E9N$Coq0tHnDIAuozBxRRAazgUY^KI zJ-OwnmAg0A`A$ZdEdRb^M@BS|Y;>@{aKTNXL9y#}!2Zb#KoC*Phna+!Oty6{rGz$g z=)qJ?+&_c(^I;}bFK*_H2=TB{N8VyPn!Q{QqGZ%|eQRzfkCk<-DufirFh>npeMg|~ ztkc$#ltLY5VB}C zy1`b?p6fnjy~kQ>o+pPX3ku+`y4~=2=|r0BM!)Mg_r}%ip_Rc!oNvY__hbrH-raA- z@!QU5xq>JY58iz8BTTFt2F^lr#{!a*+*?*tBf8u3S?PWLiWBu6g3kQsbP%YtP(2$! z0@(}P9WvS_U&B?7Sq*17xd9m^-@UVye)e0T=1@TGgVs9LrVPLG`iB90iJT~nO_O|x z<6CiubLV?Xjn1-Izuno79QBsL$Vb&eA9k#8s1=^a)tu}c*G`8C{kchIOxi`5RmaL8(!Qo+fa&P z$ilP2LZnSBce)(MLW73@?b?=z_CMfHTsJN0%$4N2|5Yz(Ymr>t@kqK4u(E zH6iiNb*O5dWAaRzSuHFt%j9kO7~#o3=IBeza5oY}dYg8p!byvBP|mF_f{B6%XAz<{ zC03kW`m6w!QpjWbZH=coHBHDGvY6o9pD?P|T9_VDpwoKY>M>AFAqnIj=WOw?brmqf zy@<@>&i>of4^23#Sh);Ftbic%42ak5cKWZr$KWHf-N8(FqUti51iY2_J&7q5}> z1~n{**sd@G@Vp#E43bhysX+k*+H~*W=TBJbo|R#S66?oFi4vHDvI{|J(<=Vu{xjkW zbt^Q?!TB3FTCZ*=+4tx2N-*s)^ZzgP6yI=SBJsqh3#GX@Ex%;z>GGfbkgB4Ue&ZLr zm#p4pH=CAb`a|Zl^(XQ1QV$N^=}J3)<$gF%^*VDF&sCxtyI<%~fakz{@qV}JDIK$3 z+!&D2$wZ!qj{ir&2wGpuUgFs9@Z6>eO5o+8Ob5$ z!S@5-bu{4KS;(C3Ffj;>$2!ft&FIo*?y~oxVMxemIgHBb+~!FSs$VHLo>c29%ypGm9`yW?@?Xt-v4YZjT@+dfY!?DPD_Rzls_qgJ8w4T{wqAf%()nBj`*LIKZ+rt z$Tz1z8o~jOdkf*sVb`Dcd{(6uD$+Zsq;r5x19(b1VnB+_@lt2)sDF>~H~+!yxakn; zEdr6RxCm8-s_t}EaSWE)b{^Dt>Fh$vpEh82kr@*K+s?T|LyJO?A!L^*);URtn}0yd z&y2Lz!AUus=J`V>=}h;hK)jI_2zvuq8W+O~xdeVt>c8jct-}a#BQtG;fUc;}V3M&( zdX4ve(o(;@8($F4E{RL;5e4$(b7#g}^I#>Je@Go6OzJxkBa>9Y<0am~qM|a97|h?L z?#;!^fNav};M zNVhTNN*?TUuk<$sN{Z$Q3880-6Y*m+C)JHfVvn4vXDR0lf;l zKQsBnih$CF>vmpb=e!$k#UnHO+@fM2m*+8o5$&H{H?aW@xBC| z%hao`XsS3@!2Y7Ng63N}y3J&wcX;*wrq0zHxV40xS+FC>x#)|1@F|t5r40{}`vgBJ zPbJG7`7ZHl1MZ4@Or&?_QDdBq_llrH`?^@Q5jISTCJeejNC@BX4s{>j@X^=UOP?4f zkgH3wvrjwPmdGm7(H(lBfWCVV*oQ(NT5OjlkoYn358n4Nfz7BNMjmH$=n^ZaCnel^JS7w z97sdRVVGwttJbSN@fg%|CGFuS)?fKT=OgUq!z<**GUpLtRF4s&$kn4V7<1yiT!V=# zyx?}ryQR5Q*$twrw8ngeMoC-I7;;nXC2-RZIm~Ts)qR!xI-RrNjlCwb$Z(QQ>>oW+ z6)u`!FknXW5O`~aT@5Z}?>g&Pbc<3brB%12kcZw1<3=v*{qSH7Ze2>%CA-B%w#WlW@^vC6Sd1h)b+%y%zC zE(!8t$f%T>9WcmucieCP79?%Ud^kCR)^5Ff2tg-S#6ji(3^$tVLO>|;;^5^nzf<={8a5aG z3pvk6sxF|)wOYx2llOuZJzXpdmHg)+C{bXc-08!Lm$B8K3kWnLQj0CC_dcXuwH?EH za@Fa!ES^EZ-H&qqU&H1del31qL^`GX|kj-AOXnY=F^1k(tcBA`(?=!fM8N_+d zuA}m!;>P+0_SNLRI|J&pRkS;q(eJ&`Z)KV+%xU@1`77RFKAiKYmQ5ihhn!~-{BK=) zvc!^yTGWjhEiNC1rTP<60_wBTTn@_XG}Ew!3ndVnQ&{$GVJ8`=kU&Et$rAHu8JKi{ z9IgK2QPal2n3+w{nZ?IU(DXzTM(nlc>N$pBP^d`4EW%d%!f%V1uyfX*0xKvj<|=+p z9Bh)jXcC!v7c-ng@93TZlF(4Lk-)BVo9RTjVjr-)yYSHZUCqbO7YT9E&*CKP;C7|f zz2QA-kIIF;vFoLVU5YLk0kIWQG=0PP5?NfVpxmy!=K-4=X;9Jsj2p+USV}1ir{=tD z*3M}-g_=~EP<0N#a|fYKY~c{9S!9*OUZVVG0I0{R{)`N8)d{4q1v;RMA+CnPR#BC+ z)V%C=I^bN!FOETD<0ne|zs(iPdE^i+;v$MHYI4fb2E@708ZCniE%(g~5CTwP@q*+$ zpjQwf-2U>0hoU~Zca9oH?_z*ZPl@06X(t*H{uF!PdJ5@#M6fdY60n>%mp*5w@b^31 zAZW0fH-D1#bjQCLBB(vkhOKQid9RT&I)BN|b?5HeL?qqTfkEqv`>CMi9fH-r8mmf( zG~Byxbvl{u@Iri-dA39psXgg*iJMitDm)e&-|vq%Vt7@ax{ZjzLI5NjTmpk{RH(aC z8fvQYn+Nq`W;G0w0CCJ&44Z>6$c!kOc$kjR3ulTlNJ>DdMC_ItJs6t!U}wdxqT&$) zqiznzuE}n5S)&uN)&--OCw*^lFE5acliYy}-bJ<;T&&8i8>#*e+8V^_sfy&1 z;IlgQ`-0fZ*t5=NUCyd?Qb`TXgW(?B(C{VVi=5w33slR;L^Y?Di0z2~d*V6~jI;CR z*7KuuI{b^cC;)MR`!9jmuEw10dJ)8`5>IuR($}pqgi)>P`a>w)SooKq-B#k8_zM2L z*B=d1GDHR7NjIOe81i3uoJy(stt}U`S>8aI2Onz7aR#Ea6*%|H0u`{WoqQ5{GP@&nDU(PiT_#n6?_d%u){cy>xV6T(7~P_(N4Ug1NOd zX3+c2>C1GQNgsr-f+Libeh&jM^E&9dZa`9$uQL3C(4&Wt5p)uWt9|_0OH^!RlsN|E zfN;m+W*kC=fjY+n;4qB$R7`cFo};|)=iLRtYLWV658z%6kjgqFoGbrHTEN-7KmS6X zJ5&0IS<&^rgi%u<4K{ENTkiI0VSa(;%s^hZiuD(*THa4*MQx7m?-Pqedm8K&3KW1- zxd5C2?)S!rgCx}DN*v1pJE7RP5j=8vU!l*tinMa*ceCtx7ezM)76h_-o~q%nB9LOY@TL$f9D$hC{rta>DA*Vf>-UyVQ~WIun`7f$uMu*0K~6{MK6W&FxJ~68 zsxSFZ=XJ!mjPC>aoOIWMl18#3ZN0I}#NS?#U*-2n*tDbwr?q*aUVu}BmlOikRYR!d z?64L`h?$xY_-gpanyHjf5d!PPc4c@|XDzXJX`vTeQ6KI~!Ww(tZy zTzpkvdkw-?wXTZRaMiRo)f8DERM7d{_8;4{g^m=U$@oh>LN+U%gZYva(2!G_xl&`* zLx;y7gD`6q@IhE@1r1l51VK-$AWAIV_{%~UN3=ca`<;4DL_3HI`U7jc*>EyjUwqq@ z!(+V?SF9!)F><0X0=cTzy;+#^g(+4teMlhPYZ+Nt;a^ma636c9<;em!Y|jv=UU$K@ zk5YG6L$S|y%v|22N!jhW4M#IhFQ4}}uDS%+idw=BJ%oNB0PcH085#{O&`a0={iX{> zzVt``bGneYW6Kx&B$G3&8ppj8PfB-G%5S7e&6Q=pWYXvSCW9 z^-4wD9r$jTR#v|3C}JztLhEK#PNynVs@s zNQ?p4`0(zD3i^Q-ue^+HHn669HhHIcuzipLD4xFr{wx5G2*POn3o$p*b3Wd}1fjNB zXDsM-Otdpkp0e;4h8f_%O459>5q`4ruRs|DFVL1C)%(hWHj>rph1S%4;V;#uloRUG z%6)uTLC#JUlHUAE-jCDq*P(UZIdMrIDN~QEd4p~9Xi63`S?wf?0AD{k?*{|9lE7_K zp@mZ2o3l=%k)5MkOG9Qi{F9zwaM?GO$=WIVSK52~AF!>-+}Ie#-y!YD-%XCn^kMJa zb52tG<$F(JSfdLo75}omH$YB16^W)ng~tb$9Ds_h&M}Fr$>Tpv?=Nk@qD5P3T%vtw zuYrX+up7x8^T(rqq}*`4^neL!DM}j$4K;UW(%l|m%Ojc&n@%2zI}L?xM*r7#I2y3S zd2q5xXp?t;+u@CX9bTvxA|wtmzgC^k2zBT+i`Enn+;^4<&y$GA5A`xb7{Yj7X-7aR zDdZLLft+C{K(#_bX+OliO4;%wha*rgqbmK1Dc)FG-*jQW#pF(QlaZp+m4?A}D=cBx z1Ml$Wg{AG9v8ZZPz0~RoAfJ4sqFE+KFA);S$Q@bxeDT{pz(Q<58{D`1@T;Z;R@(N% z=*#l-n5qU2ZG4Cz>Hp6N!tx72w4VM(5Luf5nE2;Xk{04YQjQZg8)$bXS0WeseglX_0`ay=%8r+6O8&lEDv$e~Uy_*3R4^ea;`<0GW0=_<| zG^8BWRNtG!g*0zIY;7$5qx(vY21}ZBnt8&|^Fyu2W=JRP(C1b!_7(h%Acoz{zNw=) z_xZjzgjo+0S;LY}ZG<{Pl`X+_^g;~t@su{W06nkrkE$XebZUt3`wQL1De_v=SAymS+s;=ASiQJ49J{ab z=;g=DVk+$nR?$d1<3Hg#tUYng@y_9{f_OpH9v}{lYmUkE`LEn|w`|a{nKqmTEt|!3 zCrFWnHy)t;ugcXJ-INt<*{vVRfx0}E5^Y0|~ zslQp}5E^b?15$O}@~&;86a3QY3Xk_aikiZX(mg9a1RdaU!Ws~n>Nm$(%^VvK@QqXZ zyHosQU(PGpA4134*?$2B1hF($J3a2dIc7mIvb9QiRG}&is{htP^L3ow6)Tf(zJ;ZG z_T}*XuMZX;9~g1~U&SG@4~;Lov%ff3-dH<)a+fuK^(NCj_+YpBwj6Fp+A;Vob$Q*{ z;wPihqpJYGwD;1@Y-QmaEoD*)-g#gmm4tQ^kxAK=z!`S3Dfr=(_HeT4kG*UK7 z_h>Y$$_6)t!R8Cnu+Uu8(1J05U5}<_?6|LExY0Gx_HiI%R>LrDeJ%0FkqGKw7{F5^8z#uSp#e z)*6N=>S$RBh#55&ru#PY^wGqx#k%@T((QQ|>wc}J`J&Ok;_3ve{~A}vK%t%1o)xl8 zji4WrG1#JT2U%UMhWTi|TG9|7vPI&K%Zqsl$i5gPLp4aCb#YjW)gA`oqkgY-NmtUXbRBH1EKvW2oFloT3EAsK7USi&ItI<(rxz6`P@ zBwLJS?6hEP5m|<@6ehBUkQvK+&QN#veSe?leSXjH{qOZ>F=j63b)Cm~e2#^6Dzjx3 z(U}tC(G6!He5p!LW?Jf1{m(?j%Q>ej!QSZ7#JrfJ!^1$FP~hI0hF=yec|s*_4rB3t zL|lcagO6o9*C+QRw7?a_4w-C_IDmeN-t874fxReR#1Ff?6Q!PsHefUs{nXbMeX?Ps z3jbO$c8QJDT(4(te8p%NMK{h4}a); zznPzmbiKq^_k@~IgKYW-W`BTh|5pKd!=jcJ=XpzgJS6IvADn8Lu3x5riI_S3Yz5ph zi1zIZGsIHo`J|a#G%eCWXYQ`I0Di8CFzp` z<7(KBqF+in9qcfr1}zB0Um)HgTAP+^b-GI8*9bD77{xy(8I zR{~F34txiV%Hv&(gb|CIo(W(PxBTx24?3-9ALw6D7!TDu#os?FtS7bcJM@?txgA(;X_Z1?dqnyH-Ofa&4jYfw0ydMifXn`Hvd?ABC`_z!+jyf=bD{X5KZ+ z`}Y#i0toE!zigCRE$sa#$J3km2-$>g;mQLPMyrMbDc*bsP(lA}u6dP4O<3Pm1RQcHum;@-{^Ks-Lja%hYY=pp z%9Jqtf(%>i9R<-))cms9Fmjd_vVUfJx@-xKfi z2XgU)^k9iiE%E8{7k{oLU#o=WD|S0*kl`bv<|Mk6cDjWRWL}AmjGs)$15T(?cc{Uwy()X;fHzqKBsPBGe=5e@A#hTHLAde%4oVdX}A&XV2#b8bS z??{86f;2*EHYT_ZESG`Q`h##Q2%OZ40b! zeaa{Si|dG(iwaoI_OIG~lj+q?(1w-BdjiaE-ZKZ?>=>^=M<5{Ih?vV6yALA@GiRTJ zi_-20t3LuvV4qt%;+w`2_}e@gMPikjiQ(sa~0g$;@kKt+f!`!!u1=Td*v zkUK;oEmQJ(;vS+z+Y9T5vegcmM{`D<)RlM^Yv{m#=aNyHsCz2uiyVmx&QPR-mu%o8x4Qr4aHx0gBIY8Q5xsFob~7pZAA^D z>yHmy<>Z>;Q3X%y?!lF(`DLTSB#hyOWrrfs%M`1qif)}NKyElOygAIv>Kg@_qR+xt zC1_MokB=BeV5&D4Y@%lB842H0HYc^q{ug?GzKC;2hNyafj>ss>l&3)N|A?bdYfJAR zWhWlNFr4;F?@zB4enjx9L*GXUWeIbQIwEhNFSle27r5Ku9 zpk8nPS%B9ZP7Y)E;)!#31?Sb(r(h+fe|VO@hgMi3$-r98xm?{+PUq2a)FP~M!>Gr8 zLWspM#^s>H!8$De>%d0qFE`W=+U3t=dsTv)oW{>h$$gW_>58j>wZxC`_xm;Df325ufEBU9%7&Sy7-mE1Q@GRm4>N` z$gRE41sBg?qqF$3GB%t!J}k_(pSd63R%iX{5Xv^HlIQkVw=WJ|R7i_iT3V(sy4qfV z`h5E^AWzwMe2WI@`G2QD0;x1elhYOr^0FCky&B#p%bj#xcR@;myG7Dvl{aamCCVkG z9<@J4EKL2oPNW6b1paKSnGHOpR}$7_Y|`G!l-o|>Gr40w%@jJnG=az9gYbSbqT^+h72G>+NiWtP zh!6p3X{0*NxxN4`*I!sTV(l@nV6luTNpoZF1P z4hJs1J4MokUWIZtz_mzp4@0;fpVxe$dGdz`_co|;^iI9#^ZL`fS74r#a-lcNroC5v zP5|r)Mm-jZ^)-_itzFd$V>YP3>IQxN^58G-c46TTx>7%;!m|Fb2+)&Yf1y)xeG5J# zsbGBb93EXCVF** z9ra)^^mWIt2@dr|+$qopeC?ueC=b5;i&FGN=1%hpAVVeqvayH)d5ukkOX zty7luZgxeT=)4+WHpjt@`tVN%kEz2^~l&Lo#uH^sQ7^g$TNDb*O$szCJ; zm1{iRK35*`n1KLZ21KQ58X3W1hAfui6@|oE3N$DZFSR|TXL|kaWTI6C`}^>^1}3kX zx&ZmwZ!QH?R>j%QV&z0&EoY}=tS192X`T49pY5gxB<4KvV;~sa4^n)0^XO4|dYD{G zdp3VvgQPu-+$tH{x^B!Jv7R#g(~q38W^eBWuJ?n-cMem=O0Kx7g1zN2AkQ)gdD+pv zVqe|9Sqih_N?}$!C64kRv@av-5E7HT$AIkh@|P2Ze1wbp#*$nD@g5W6PBC4gs7yB z{CaZ+n$<<%-BZo0N%C%UL-NuliWcZzjPnMXKp1wTils8_Y{4Q*xf}};P_evNOS=jt z>14MROQuI4EkLhnQgnMt^X@+480Hq&14q`VHY%u*C(X&m7*pK)N)|Au&T+Yo+9ir8 zc6_tJkgB5Pe@t=iw;fN+x*!=p{YlwatDo2jDPM~m`}`kAG}0pC7~*tROnjHQu*yJB zLqk&4bX$X!sjI;>d~B|v0gZb(@~SoR_GFPJqWZbrQCzBIK5z|?(p;Ozd4e-$@$m7e zfDjNlDjT}OraA*&>t3N)8r(i}vCz5eM9Jv%p z{ya7Z9FB_@z=TI7Vy^#|!o6=-G&Lc!a*?Qzzs7|EV+w{Pd$#E;%>WSDlFzK69YZ%eB+**%+O}@g!>c zQ9CvLNbO}vK^;0nIQCowrhDnVYxud)%1Rf$=m;b9PO#`Y9cA261w-PV(y37@A z6rDtwpT6eHJmJ~nlFbGQ*7bGd>OM%QFIVL-C6)8`{}?aAzm~HUKdqSp3G`^=N4BTo zwYiW@w!&~W!Z0NYp=erj|pSgi}Z9nX#~JbC_8%YOdtOiK~1;mx7xD>BTtlg~W? zp2#Jxg?fFZ#5mo0e!BAx#{6`S+P)SE{Df|`+E$Z2@gM4XQ1`{v+5yp%sbmy!Bw??J zo=*x|Nig_K5$>y+x0Nd-6Fl0}?gDd)JR3N9}h_|*! zZf(DlyzGW!!c}NMSjs2S?~AciEHv)Dg@xq10R#H(|u_EbN z`-2?am>z1}!u@s*l{IQ}EVIo8kr>=9HM5wqCu-5rj%V%S-hP}*?xLwQ`gqnxg~`4b z^G;br*`ocn%%g<`4OfsK((s+8lbH-8MPsL4afa6+N0H!;Cn2Xg${AKk;J73@S5L~^(T$t(U5{xt_i_6n=6|z3?z7c*R1lI4b}uMvf1!_3BhhPOU)|^M`DML*M8GKN4>`fo%YZBwOYOZ{k%ngTnqjIk zbVAx*rF*F}dE#+f0;kucd-)+6|Cm0Mtq(kF`n_L`Q{{8%uxxT@9UnN?^R6H$}oQL;@sAc#I6Q zyaXoR5n;sP=L>Ffgcjyr?we5%XFkEc>-7|op$nWRK#89yew0wJ4`QX1w6ElH=DW~m zEvnU#AW1gJ>8^&4tb}a`Xxr_-9H8G~2*i7C|E2UaMF`w*r_@(s5 zPAvL7l)qm6Knfy1yfK_3W@j_()%+u?{X%n#E)rJ3O9>}(yw%Ms4hm*mY`DlI1WQN^ z(?*QAXR$wc-+B_(;->JjHTTJ$mDB43S`<=^bpIuTHqXG1tXBz)4f+%rx2Sg<3nt6l zGsC<&unbu1ClHLbpS0DIpR}-j`{iGyQv!oM{qs+sp1~U38v1^3Dv0mqRbfl^gn+zY z5%k%8O(V<41&#HLOr(xnH%Z?76z!rDEU^+e$^$%Ip8>@iE5p7&15M687Cv(jm9484GP8!011 z%B{4Sy%gb>zpNLwSHQ=`Ny}qimLKLbMyEHlN6pkR9~$0`*Y~OwH_h~L$dzW`A|~5o z-O3Jm5P0;Gr8)O;E3zddOWM=|(L&p4J1R@u4ec`}k&IVLxjf#*t}lq?R}62=47+Zw zrEEF@6EiZuE`K9ie%1;YedDUyl#i|`^Xp>sGK!C8N?@Mp*8(e+k70l?2hMZEeTU36 z{WHu=GezCBs5Z9g-Rw`$iQrue+bh;f-D9wXEhn?hx$ljxD zY-|>CZ$Q1kCCR@Ky~y*qK?Tx;S`o(`z(!KivM5mh!49Z1rbNbJhAko)G^hLpGII6akxm5c-Z2bA2OB{^iZDp?D2aI|okOUK++1_6Ue_*$*Y z7EKp`;ZouL--LCv9p_a-@o+YX0sC}zLffpZ)nMV-8N;I(V<@4OKl00QAy|%r3~@mq z=|e_gx0=@vQ@1mfy#0aoPlFr2rnkGT`L4zSZ(G}Ded&lhmy?=058Of7I#FEay^948 z?YXzTQOI&L9Z>>rR@r}M88diNujfvpacIeBsT?|pr|!+i2SqLY%hfle@>A$Np{fX9#vo90`j0Fu{n~#o0BcFs#_L#&=>N zt`2IRwZdoI09WJi%KlI>It3aPrkynA^03}bt#$~gZIn%VU{msRev8Y!1*2v~X(XFx zWxoZ}Sb0avtqynyyXl}z*b97QRn6+xgxUU*;RPk~_xE9>S}+jcE~U;K4!t?Oz){`2 zk4s}O4|Lypsw&qTN7`pBs!IOU>po&FA@C%+U{$?hSGwuzT!WwAsOGsbSo%HRsS54Kb-E4u^=? ziwrgDNhr~YacgVVLT26C{0#h|#i~Pd48lQQkZLszGb@iMyZ2^|u1|iNPx^6HrOJqv zYiYSn(RK2tL4B5!@ruv4;ZH^Sey|^26|XIgGb=E4s!IYZHwO!h6H#6B z87Yt#8ommsnF=T7$0I+=qvOVNm;3ui(+ks1W258w0?kune618?3>{p)YYiXXk{z^) z{H4#3v^ZhrYwPQXJCSoM{~&cj5Q;m|_Q_{-)XK>ula+-AxdSu9nrvhc)%5+Xz~&Vr z?@Ocw#EaX}(&X=<^)Ui$srg2Tb$>f?^kD&o0(eyLvog^rdcj?mSgS~rm_6}Jzer8T z6hLZP15z`p=P5s7g37BryhDC1UnM*vA+1KaCvr5>t)2)vsQB_X{6n?Q!nw+*xGc z(8`(upF|eC*HQI5*>LMZau|dUW z*X3olCR;>q#gMR-SF+!l{|=ffG#Cz=HvEE{4QidpP-7i`7_#(*gQ-E6-FJV>h1K1> z;toG%>iAjDJA4Yt^R22*(pt_aCRM;9Q;t$|N|Pn9%sQyNuy$TuR9r;K53=MAvs4Ie zg6OBw86IrShenSqxxG2n{0^y_=K(rjD?4mXepZ~}u9-btTlkEnZL3Uv1od3>PT^GTwP3IkzNCu%Mc@2b#Hdias1X-r~NzNfgD1t-S1AE zlInR3l+DZ>zyVAh2`lVIF&K~vs51C@|AMu{nSWsHrN1zC$2P`Zddhy|TJFt;o;e}9 z_r>>UOU~Ad5m-!vgq5}S8@U@bvZz6IPnsv%7o9;}tu8z3%1G#%KQFVlKeKkcpSO)2 z<>7sopg7BYC8vq#Tq&HCHEzd;<-u}?w#eGWjk|a&wYlVO-J9FUy7v1vvR)7Vg{d|lWHdgqYvaT4T8JsyIz}?hexq@4C4*z7LnmjpM$EgOW3wl0 zuoDxO;6h80i^%ZrH`A9gG;uWg5chQ_)}*fSLZQeb^Yh18nD8g7E-x?qOoBBzaB{Kc zh@m(M6mhpV+FeV{g}WJ=5|1c+;Iz4l;Ug6&yC98oH-bM zFKpy(WIqz_r$VZ?30_5ICWBrU6 z2krRnY?u9*7$6FEAt_lPrfT3hdxFznAI?^aYkpLbVyXI`aioww_NiF0abT4B4}9w( zmiU2-$yaau5Sr4%8OTf72`Oq?3)#e;oEIjI&HFExTnvRH^D^SH;jeU; zpgg{kC%0nn#`9eU52v-Vra8RSv9v`wFIvH1h@MfKnH1K&)uATzo>+H&F!uuHTIh$M zjN{Fo3#P_m{dy>cwT({kj5_0FE@M4KQ5ru=VV4Y}J|r$8Z(YB}nUUr!`*tcxO&xmH zM_oFoQ(G<%-|0igOpw~GCV|Gk9?n)}?pC|5*TYO_4IOD-zsH>;Dx$Zfv(AsRW>2tg znM<3W4jFV;@}T!dT&-l+>9XqaAJ)S4nUy;b2aegE2Rq!A-#UfuiBQf z+&;?=J?Q5t@_ySVKHlJMZ#TSa_1AP68 zVmTgQy9rK8`XC3J^3OE8enro?QHBkzy8udNrUU%iflb1DP*-MNJkld2J-CDt_~6OB zmXM2b&oo|TE4aeNH9TPz;6tjp_UWQ&#Ytbb+naW?hwDP^ljrC!{%GIJfvx138ny^o zXD;yby{)&oSGXXeRxrQ)*IG}eoKU_#eEZM7vIVv^s_;4AuaJq_7FK0c^9shsf8`rj zR0@kb&p8y;Q>sS#o2Rs&>M2#;0G?7~&9V3G?;9&8t!1r+G&K6BnKq-ODaK2L(vaTC zJkl3S=h?E5PtXMUfYEbcen2S2HzbRR!`kgVIS@0T$KXU`r?Ba%`Q9rAv)XgqS88k7 zO}$Q?u?JHS_6wlN16%oH;icS=W0n79gykx<`w8BC`?6Ec7pjs#&OvE9GtqxMa2<2- zoflADBHs-8uAX9vL|E)=5V{L)BLP8t1^!FguDIU_f3&0SIVB7jgIT&ZDzG8e;kx@~YNbCmshGdCrr7iI) zqES3qEi$h)5m~i)Av}5zS6zhk>#`6LYd38L5BBA!^XZ}7Jt?#P{ZSaq=qSiA)Ifs_ z!_QL%+#`^2C&wXoN{!n00rpDCRhKd;56)VUq|tfYt8M&ulE#oJLm#4gX6kiLjP$1E*QhGZ*XR$nOdB&B zw5(o(Kl|v9xE(%N6eZQgYZ~x=V(h9L(h+Im`7MLdC0i7h=wxNO2;Yn2HZXd(^;UeY z&BgkpFvfRbY-D+VBE?<2^G3SLLqno4{V$OlMRy!c+BBY|;4YENLR~hd8W>M?oAyp! zI_D!=a?z4G^#ja^xySvL*w*&49nl_#C#mOgm(&4)=W1n1{l>yR+Yo$kom@|9tg4h&uH+pN4DFwKPR|0DK;JM|pfOhAdS((Ea4K)!5d_6kr|C)4H6fy7-MpzvnJAW0Au77&wq9||B*md9W7{U5g zDO=1ZTZ5e}OiJ%A)THBk*stU&_G#Tqdlh>@!LL6AxetskNH}@3d*{m&?P4<|mlE^q z^y;MQ9At3^7d=ncra(vTY%Pq)@2{kw%0I}#bBa7Fm_q)!$H5nCx-kB@dauH*JEw!o z7LqHWgUA|cDIJ`=kQ5sjoTtTk8*S~zWH@yqgEZyI;cmKCUN_@E`msHu%I*{VvnwMb zBDqM7yoGnb*1xvmm{*~E_@k1Am6s)l#DO<2Bm%ao=oTZwKR2h4I?UN?x1&!|87xUB z`QB-y1XT#$4W{Nrzw`Gvl3?)iw!zE907!_WUmJgilt|2&T3J z3BIMH4QnZ^gUY`Q$2fYdlEJX@B<+dV!9IK=xs)UnXu$v2h+i^sVJ}3_7k#!NEdNYk zjSoNehm0#d7)**O`bI5-TGA?62k(lDrhZ9f*93uu$%9^bnv32xbv(!WwIpWz;-A5e zzVhb|CpLPi<_7N(@U_1wt{}>TMGu@4L{+C?o`3i00|@|&$B|wO)kR-_b~?EFW;sZ_ z#9P3>ERIa^_K&$vg(eX?M^%@`TjY%Vt89-5wX=mi4o?ZuXpb*3#YxFp9?jfJ=#xDF zGZe_JNbFcT-rO@g2acj%lxS%%O_#(PLqVnr4ZB@cx=;jPN7C2Vjc=|&baaHvt+l0W zDmb}h)_#Yba@4tg+ao;|$Uv&|I}DoqVuuusmF&%4_f+PBZl%v53;zcYh>n%5qq zMvrL6#$I#^9`rY6p*brLkj9%wi>c`7(Gt8A^uWOi%*4n(jC{rR%ZFy;4Z_YB9t=6! zWF%7(r}-pi>^7=^rEi|j!*FW!WQ9aBp?86O=1K`I%>*U%=Fa5;UKh`6X$-f}XHOZD zG0l+>noI24&lL&mU>*9)bQX(Fgqpdkl#s+^=~XFd!yY3>!(qLpm%1Gah3k6EtTbmi zDDR5dy z&A__?v$P+MG5PVE69k^S9E+FXAxtzh&$a_rDOcT}dMMC0sO2lnuaEq4^5s&C|GENW zS2c!B>yDa8psk~z;{{0}bMRIu7wE*@rnZ~)7ZhzV{YjR&aKM>c{J#1#cgv$84;Kp& zYWJ<;3;3|{WoXzf`9ZA>W0Rb)r48TPEHsBH%@zA0u5UWtdTIg*j^v*pZ(A4a?(`uq zn3DYeveIXM%&eAA?m5G?OvSO;f%R}g1uV9G*Rs<)pN$_6*EkH<*-EJ*n^2_l!i&mT z!kfVdZ#$I#3|f60ICHOf%hIws={A6oBsR6~y8Yf~q%Mb|HBIp;bUI##_I++LBzSZ4 zC%Nj4qLktm7^YqO8yKGW3k+8uHms1F?NNR+Ta7twAS1Gx#`2qjC z8VVq0slOn3WXH3*DcWiyv|y}7q|AW#f9(0<=2dBo8Y;!yG;^9$=NuGnF;sNEU_?{fMCkp zQ`{m$^hm`L&#RWGjix)fcrxN1ndz^SQ+&4mi$YsgLcEJbsC{4$JNGfj+*w??n6~W!tuK!jIU9G_wixU?ha6z7p;G-{h7gt3@qPb4%jS$VRNN zii6w|GB?vU^G&04=H1G=)F4HG!jlvTdn?!yHRR^TqvPYnqwW}A$fC<mQ}R|GpC-OViv@5`$*C-6Q4!5Akpl|$?8d+VUYfxUDE1DYXGEw4Y;l2b%jI!{a80$4kv9MKd%HTtTk@ zB^m(q|7oneiDpUw67u9r222hA zErvnDvNQxUv*0VlE=@gA0)u{gpl8r{jwh!;axX;@JF_mUC|^7v)4dN=V!Yb2hf<0$ z9u57s#TXQUtAy5;z;%Fb$Mf9V)Jzieqi=_IngwWG$ChcD^q!9DQ&LL;39K=^p+)Ix zm=DVt{puV*==oYeGDQO3Le3pM<-X>qUZGK*bRtvu6E3?{7UG=_8ACC`C zFS0_Y&@VkacEvA2p&KO<3v~d1M5a1d-x6l-G5PhTZLLmDM?8Q3OY`W9mt&>-Xr)ov zEQZ6OvHm<#=nvM{xUYE%<}jZzz1_qdm=OHQv3{vsLoiVM$SEjsS@lFYNPN{!oNif( zH5b&uy+OWgunOTjW|_po!_v`YIwU~Omh07n4q|lT#o9@^$xc(U9rT`>&Et|xUM59< zMUdnUkFPoZ%6fa8)&OiI|0x6{Jqsv-Rt7hI?kUO@fk3En9Ryk5R*@u%ixj6fDD|U5 z?>K?lG;iq}v^?fuKtw*rL4tezrx=8#0DoxNR23wmf3$ew!ByTGqdrf~2gmPzlSCii z^+q@wANi!}k3bQXk*5y!(+ytowD+{$Nk5U9lmde2@^z4)y{1i8un@pr<$_F&1_p-> zdiu{x6djk2(*nfQIVIE~{c|z|8_UML@!d2u=im{bp0@v*ouc=$lbthppWP}!(SeKH zz%Z!N=8Ms_1Ewm8p+{qOK9oBheJrp{{rj+}szqsUgJ!(?_bNtDCmRltN@Iwjn< z!=GWQ->22MuVU(VkHsM{YyCdAxn7$eATnd~9(=rY+f$|gC2c-V1jbZuLa(rh@qIby zODQuu)U>(irK#fGGQ$4m^R~LzY|jK9SU(1_@qmhmJpGC+=Dkn{B`X{HSUHyDRSmVt zh!r(h*iJcothteY!H$)Ulcl9RZ6-i`Zf4+2*wttUJ*`j z5hye?>@oYx!gm<`N+(fLb_<+|Qb2MEpLtRKUx^7;g>C##=rwtVsJt4V- z6GsP3F6TNO784@v1U+&hG$93Jf_}&HF(a3pa-9y)&@9r5@b$oiVmS;O%^T}3qD0KC z)vT=sDnczhRxFR1l>_r-qkD*n&$Kz}>Bqw-o0TJl&x;7jFFTt1Dn=`d#!8>+>CLhd zlEO~9KRKN()#{+!@L^^a+R0|4VqqwR(+LJ0z^|{AXo`o9$*RT#N|n>I9|S9d{eW<} z+;x4*qByh znh|eU=5Z$%LB|S)>O4YD@?(qfee4`3vGNa6sHE$qVDQ*k8TK6x>pp{eD9(OQCqzNBBC)+bCLtmhamC+r0HZh7?3mHQeDQ+ z!qIQsS?~F^zAzxt{P=Kk+iFgYojnO$>J(?2fZc#Ij)!Q=YJgBPk?z$yLsm%xQgjax z9K#yQO|gXOqpLZR`klv3{^}xY_N9{3Do??MdVi?SRsXb2bNuZb_6Ier&Vmw_wk2g! zM~1PW$mLhhSf{@AMFXf1t^L(MU0C`5a~IZR8HiKyV2`*E3x4w(o^4kAA%2;m4r@B5 zJzj8;QYB;v>J+)kDyXh=k-2w=VQht%gbv}+d(M=kW;2`j3Vc|tK~dT?Ue*7q04xt6 z8zAR3LrjeTnluDDQZ)QiQv#e%PCeS115xG`G*%#K$A@;IJ2Q=F{LK*Y{$Q%qVE=V* zgo0sCVHhwg2WL>t%5+3?Oo-ZD;WpF^$%${Z6=+zsw#>?qkSNKw=lF9H=f^dLzfelu zn77--wy2_3U4%!1-SG@rhtbvR-fVuYc!S|QzI)I-X4C)D7yMdH4}Eoj(a4NqM_}js z^GM`$5)zSsF1_0`j9Fqe9<6)<@;{Ue+PtNj@Dy+H)Jg_lbpMMAM^j@XCQw0N#`H53 z;Fkw!et&-Ey+;W5onBd6=+RBz1*KWT$KrQ?AkErdN6`KsHCM?5{XXe|9zu(c!85{O z@$r2jm+D`q%t9V`ZohLCC}MN2bmKMIceBs_*_xth?H!QA8Oljv^1-+L>V#syg{k(O zFC#~>Xq8h^w8m;Tmt$LHLN+zJ=jkk7(Tu0N?undKwd>??QQBG!`LS7wzlWfEmelBS*#cZ(1KDzP`6q9KTlT`x#xk z&a{HDU;Bt0TVsI`d9%@P8t(C6c`01OLakns6gxjANjl;Q{t@@(1~7&BqpWIC6w6!U zyD05D8e3~XY@J9@bX-AN;gCPNvMcB4OdW8wOYl%=cd}KKg8>BXZ)f`1+>T0Jp$tbx3rR(PB5*%e=ybT%icKe?)?xAV^UW49Cbn;H!|?3jSbXw)<9Da-R*m5u)a z>6MF}tdn^aJb7zbVCoor!PXK-cZt$f3BG>+$w0_!Nmozc4AraFw>iaD`}Jx`Xo{)N zD-3>;h%@=&yjLRX%p-{y-Y5;Q<5YX^#f%>J;|u@HcHx`CWPead-UZHxW4CP2v8sIX zY;yQH&ocUbM!n68@1?oChschPmk@i3ezJ0{dKG`Qe``_8#YUDV)PM$d%6quE-NOPj zls0N2ce~B?E!3`;;C+a60z!;7^SM=aiO_McPu?BgONnzWgIgZ3iX_J~ z-A)m$cTHuWmP7(l!^~=UB8y<61i~xP%UbWL;U`%0Li-N&C1MLVWiNa4e0y;Nt>w2_ zoO9Y~k&q|1Qq%%xhCSBC2Yfeui_P^G6Ieh^r--xZh?n(=M>*EIAQ$Z`_4=B z6-WCb@sE#!R1%F+50DRQwSV%Sc^*#{B{sL4PNeCJ@_ntRGPRpa1iP&Ya!Y3&^Q)Cu zM30CLni$KEyol!T9}t6wp~TO|nuvv->gKX^bn%E9g(O*m5A>V}>glYTA3U>C>1M#N7HE&DsnM7UIsJ zN<=VIItk{o=)LV82~cpfliA|Q4RvrD+wLF+M{-Zmn8z#oo#jKW|qI{5Q!r!IB3n~80) zF1InD?EMeY{C{n<1oX*RTxh+=_Xvja%`u3zrRoPw72dLQ5N9sbd4hVNp0O z_2rI@dEdln+Z@uTv&sp|Q?7YVbZ-)2)jPP()&5-Ja*W-aALYB3a!b0wQelym@~RJZ zsr;f7%dA<{{|3Jo1a>IKTB=&_4$nt88YSrh}mw4QabmE6lT6;u=qyTSK&S zn!)3+bqD$==Q(6h-Yv>Cr#XA>FyZbO#LVxmq7|nwUxVm<;!{@<0*tDC{p}j*ABB4h z7*K z@{x#*7V^T}nr8p$rfIW;{zw<0nQMY6UNm1%Oofy&TuU=w`5a=r(s;XeG&D(kmec#| zOR-a1Y2ULvltf3$4Nv)%5)h%HlIXW0lY7JyJQ{jlk;`k7qoWF}v$`C#lU*|HVk8u0Il@-LBUV}`B4#88$tK2Bm+%3uz@Ea&`)#hovJL6FeImV zTS>?EfB0}RZ?}ACldU#_RwSxU`H+y?)i%!YC4RDFN74<(v8G|~a!inr$W^KS%;lf< zS&97`wo`=$+2dRf%IiH(&C=;0xO|7?oku-Z-Vl2iG8!3-O+@Q2Q`g3Q{6qYqedhO8 zy|5C7Z0XB^M!K8d8R$GRaK&NGoEL_)5rKj9k?E1289RnC$Cl0vM z8VjdqEBSGkPy0G4pM_B<6{*`0<`OUBro!qnv?ITx1@ahlB zYd}|~1tXJp#6c+ERsihjLo5-P*vd@Q_NLu>J{*!eOnCf|h^~E{BM6x}r_WP%Pak)X za)Tb>q9)K$!fH=qRSrVv8RU8#c2XWNb^Erh5B^C|FvySJz4&B3X=wG`327RC|EDZl z*!%I{W+VRqRUPlM?zQjh3@_Ly8w@S z7e_fdS`_$EN(OGkn@|Cw0Z2v}N=HCvanQ0^s{ju%Zz2_SAz$-K-&`Gb9W##jZ> z<$3Lq3mtSsKfLCoju$u=oFT8fT6@1h*pKU-(-eKUY~JTUM0QG8iS=;B$$v|MUoO-raVZYutIZr@kvVMesCffjBMBg;+?ak@e}} z4hlNYX!G-HrCs5t;5KTe_*iB`r32adu_sdW8IvkJqQgW)oJ1j&b2>v8g9xe!Tm!?K zb6a~F&EDU4ly_yUfxU&VY)KXwPrA+dig?u09m{kq_hhoXj2|8Yn>OmHnI z^8t^F_6#&M6RD19>JgHv%y2T)u%!z+}j2X=&d{5JiFt2boj^sWZ(%V8V z-xx9}&z;h@6nR!O%RuER|8bA5e(!59@0j5#Bie7)A*b0Cow;N;uNHA0VFEY;0}BLZ zknFG}2Nz!x-|f2{l3MlOz2N`kruV7QElZTI27ZEU^XP{}WL30GkG~xpaO4>ZC6+TQ zgsl0%!s;Z$4jGe;M4UOinQX*WiTr)b3&d*U8fY(Z{rd{E-GH$zvp^m`ruXwS*bp|W z)KC`FQ(UJkcGjlxnhrnUkj_yEz2W~P_K({gvePKr@W+n-@PZ;mRpg=rdh)Qdn57r` zZ59hFck?9to`wZ9nbEhkO_EGb;KZVrdqc$vpUBo7gPJI6x28QkPq&H_HGWbbS$9Y8ufH&dr%m=aI{1s*T8jgTCCiRsUMU zSaluD;DC1%MCfvuRSI8eQeDp+!;6Vhp-uziplQjRD&5}R{2-I!TGe&O)tcs=xQ5%J zIigpk8bnF-VOb&@h8#N9hOs+7?)%rB)dFO|X0oVBu8l83JD{&D=rjZ^enGSepy;tX|O|>A#%c6Y>(RBuD|jBk9!@EQl0-;b$|rfisC>zj`lIl z4iA<;qXf&c%m3pk9j}5x&Q-7MjU~)&&gYja)~>3p0KeC>^t$bP-)*a;Xs$eI5d^SB z9=7a_F{e6|loOU_in$W%J4rId7`K)r7WnlghBrLF((t!i-disM&Y=qgp%HQhCJ_iG z5Fabz3dp)gYa$s}^G#F}nqUd8&q6hr`up5Qm%cR|c*8@Phk~zPJ@KtzxD-+nGT`%b zdVFAFnPFg|)OSQ-IfSbsEO8T-H2{cpvnpkju}%l1+vXI?w%_X0>-2og&Vv1aToSZC z9S7)rgZNri{Wl?8^HtPWBS%JGlsaRWXNk>^)C}WvHW=0E6)?{#IFt&^q z45LWMFlstvordhop!c4kLzDCSozMHe^EdN6^E~%;UElkAU)T40?a>+sG1vF{uSnyR zP|ufJu^;qDEbK210*(KR;o>)5{cT#1ljMTVeX9x-sJ@>W)f@%e2so}Ra94Ctdm%6k z@m3r>)|njcyTn&Jdv!~EnUQ;~y@XFRx`S*uuK&F;=GUQ)Mi7+eS5LUot zMBq1rM9NEzDaWI_2;)x&ej^pykf7yT#juzR*a;^`pB8hVq42kEkF#Ne@WsbSAVbHS zPu4L{hb*lk>f#YVF)fVX+?^hM(jNc$5knfQeAr;0d+UIe60%i+>7p15&be)t$Ner|R=lkPwnzgdxIVCU@V1;e1DpB0_RP;n1gQD>fuAzp0^!Fi$N!h= z{cpb#XlcO)U&~((h;R9QBygOWE3CX$=+ck?mIGb`3yMga?4ZEeNS^9V4c~i0ayQ!& z!aLO-;b|3ir~=uZUw)j1hyjwyQDs+IetBmK8k!itS#Z`LGFo*%nG-uaEq{fF7VZfB za_Q5&Co50h%8xuGI3HdR!doci0sT@jmB%O!kHDwu;VG-Y`sw&(4zbL&(D8=TU~vTAf zUmSOriJIjupLkIl=*xoF9d|-5s>0_3yW$KhY_R=E-f&P;b1*U*M#7Y|A0t z(IbxLexvGHiA!>2DSBcgSaoxqho!A~$`&wjvtR@P&9q+U18|ajb>EkuE6(L~rRi?|Bb>Hr+9g0@NM?WKA+cg75T|rQl^#OU)ssqMi~P5w|{z-bV;I&I7A6 z;jTdGEBQv1PB#<1?EnBaFoZi&4!1aJ_Vv7(DTW8aWj(>Lpa93CGYvR7Gb>nyHKP{35yx7;GH?rg`^prK`62FC-x*Vo1ynJ0Z)RaHpqbS9mH_OX2HrrK?% zlev?fI_~9QHtV;!H|ByS9;F>bRoPWFF?m`M>TO&{L5yZ<7&O<#B<|QMp+q1QiOF{+r#XvG{!JvvE#A@^hbBkHr z;!0J&m+p0K`cg9YGw9G?NSx{f$Hy;fmk0zl&;hUA7x1~4`wqkHN;A94+DvW51h8pt z-3*#vlg?D?xB5^e=#dmxz;;M!PJ5WTpraWbt&|gR)aXq0l1%iyWezRm(k%w?3JeBZro4-UG+tHO{X(x7Z$3_=1+aY6n zxL=Fz0iP1Lcr@k>qlT7NbLfIZ8o6|=V4YA0zwK-ul_Gi^#XFQ5FtImOfk$5UP$p-X zEPdrK<7G^WHRw#Txl-Vf6r02_=bls0I!3NqT&+uU{BoCZD^c(^^$(%Cj~aWuQc%pT zYdN4)VG+3qx44V&c`H1cO^}ryd>4}^=DK6(jVD0g5;d=dPsh_8N;r7gY}Dp{J?s6L z)AzOgo0p!GnxUcRfJAMnc>?=S#=EPoru@eYhF6a)J?(hNQg}-36X+dwy8m7_(|3Cc zc_?Up4+R9Ow-b8d1p0yxs!&_;4{u+_3BbsfF8nTC7l(3EVZ+^%9$`9Dbvk>Q+j5>r z%Bh9A;A*t)`b~av7KDJtA_%IM=a~*e)P-?16-x@eGxinC|I!|TI@h6qhB}-#z0XLI zNMg{FtIzv<{fq7`HPU}OQE=u@A4n|&7lWUI_FwO>7pTyex0K=iGo75AQilc){3M_} z%iRwte)oHj%W|iVrxbZ}@}9kg0aMUv71uid3ZT^GF0lH$O=nF+e^5ux#3T=UwC`}f zGifQ^Bu&b@{DSCoKD^;+_619})uw3glj<9X^v6Z@93COVb~o8C>YN@#!iUbI zdnWRokpYv3oo}-dovC|lTuS_{WKuLzJ;SbRQ4@Lr2fS-$f7A zW)TsR7l#@78Iu}m8AR(_rP*EgXwuEt73YZSwyt~CMz$-U`uLN{t%Vi&_4!}ep8h*3 zTwoogS2DHqpRJjXTluAEwah<@$W|FiZC`TqeJ#1OD#?EQS`bPYFK12<(~w=hd6m^O zmPwez#m|f{l)zufRw37FRn@;FitLUoeYP{ty&fA|bhK^Y3K^N82?Wqdq<&H32NTwZF>mhEdiGoO4IzbkqZc7Ju_22Sz>PE{B7zJg>)5;@Xj zIGxVcW4hGdW!Y+`MCVrxCRS|?t7@#Ac&xdm6d!Euw6m^rxrFsxxR}9-K^V~f!!&>z z@1W$cZk18i96A@4Ol0RNMd@A1`C8%X7P=%C;?eG(6EU8g>4|7OIs8x}-2?R$T2fQR zVubIArah;b=Txcc#X9!ju$^uZCz_V=z*)zw%x3fCBgct$@OfLxS6&ImG5OQ+Yg@?;ObWex@xy_TD!a!0U((~YU-Ful zzM&*h&6JaT)qHE9uj6!6{uuCl`S~VYS-j91{BF#9aF#{{y)25v7#~1a|3pyoK&+4u zf7ThS^ZyMSxp1}|F^!+dVKy}>elP&K1tn(ELP9Bg6Tq2Zf<`uU#lXsDO_l>c55L*R z@@mYS!f!r1-7VdmG8KWCr}a8Z*Vd&nsG}dR->!l>I2zhnI=9<4pKLd`lKgR_BR=GG z-9Di7WA&2kxS+k}={DkgFF8r<-bblZ<+QqvXX;{&e6}*wGu=+&9YC8|S){$xO%JC8LKNN%({C z{tgmO*LQ8EjDY}VHe%Vq{c<9i|56hqY>QR&sy7677&Z&4)?O2G`bcS?MGE#aUTUZVl!+NZCdOa!p)=I+w7ABtr(PHa`5w|mC2Z&a( zJAeDrg!+SW1|mX@uGFhYQqtYe-n~%^zpGbAhoUQu7crqkF+UkO4opUu!#R!Ebl=`F z)w0U|O`QjPR-;ub)k8^Ogsr6FZOCf3FU_~d`9=u;H9zX;qJZoXl{P ziLi{!E}OF!Zl@nX5@|=v%~l#q)f|?az+Fj4W=M(W;iOa7LvIl(>A$?|UeUdt=I^jN61&$EWlmJ|-An6W=XAa5Q;{@1 z*3v#+>o5$i`~)R?k9`l>dYL^M?!GswDg{Z$-o``3zlkW=RbBCV*rKvf)d$y4IDxuQ zvLw`1{ML;vaMX^)2|;&yP6z3&JmH)!XIxN<7nNyiwT|2I1hK`9M>EyRQ)@CQ(>a4Msyn{?`F|o~89`KzPX}oQ#QM?^@ zn%l>P5y@LXJJe1#0)^fNDKn{;-HrIz$#!{M%S_04dMZeKo5w>Zt;GbjGU?_=eAE>vfwy-VZhrUv%*{0aDxh?%k5S>^zo%8xq+t>}bdwtRMAh zc(=70}ZK?rD+($VqMfPn-MAzW&34bNc0(vIFQAweF{sG z80x?C_=gJ)SD)q?FY5ymL|Xc0K9`fV>3=B zFn7csFne0JPYsC}m1Kql8zp5%5N0)j*w22&>pqDn-3Ev3RXTy!le^1Zmw+$JULNA_ z@S(>domTGJPBU~xI}}Y$offO%G=@Ctxn2J1Yd+B;(>*SpNX*}+13HcDBQSlKlI#D_c6Y z{BHCN+7?O@b*&75b%AEvYuO$*Uo8^^sUVG}$%EF|Q$@j09k&53ilS=NpMg0zV*aBb zl&ylY)a6H6+neFT%E(|}o-C1_Wnq$UgXF`kx`cHlC0<5~9)wPPLIbv{F_DZ;$~uWb z*JQBvQE{UW`z~HuO=9bo#z`A7Z1GM|>ZeNroF9NGJWdiQB2I~dS(I~sMcm(065uDR zbIke42{Z2ySGWI=(6@caID@^3&2T0lLp0w^eC2j)geMml#`Y8_H@m21o>Ga%^{Gov z7{;_NN}(^dW$8O_A8KQx12XCWg==VwIfpV&R7h6ICQF^Ed>T0?=Z^xxUNHbF1-2F_Jjz+h1JZ$0gG4B(!gax zmo(<(&RJN`;n`51lM-M&96y$+2W{HTb3^!9p~#7M2*CsNyo5ccXS6_Wo*AK-i>bME eAJW$QZQZr&-wsXoWOeYq$58KtZsy^0xBds8J~s6L diff --git a/img/sf/sf-directory.PNG b/img/sf/sf-directory.PNG deleted file mode 100644 index f6b518a5dc65c484e1c14ce9bfbbde854fb6ab83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8628 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 L1I>c#*3bSQ_V;YW diff --git a/img/spa/installing_npm_node.png b/img/spa/installing_npm_node.png deleted file mode 100644 index 8e1e96c72c04a9d96ddf3cb2746bf60c96396e0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178960 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�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⁡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


CbEN&n6Ub_MWQN45+qu;-(0?T8|O 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

NpBmWWF4n;Nkq-&4doN#i-iFt&6-J}F7=~O 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 diff --git a/img/spa/npm-versions-powershell.png b/img/spa/npm-versions-powershell.png deleted file mode 100644 index 398e32e2ed43862938b7ae8f0f4fb1280c0859a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32139 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

w;#Ou-DCDd4>$`& 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¥-800%%o*?ddEc|n`Sh-{*4ZCtt?SFI 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 z St3wqXtOdPj2w_)`#$z@i^LQQCYGo%PXN{_`fJ*)B19>3#u*l*+S zk_)9Use&1p7LgcDCILkrQ+`aYw!eSh<7q*4KUGlxqC$Sbjp>etT4~veUU=U@qm!V5l@=Ui`oLs`El5=sE!XWM778Z>*%bDF9^_ z!azRbeoo>_{FSjy6c)F4-6!nJ4DxTFs5Ya0TYKNEm~a{sX_I_T?BxdI8ZZAo}9@`ry-AQ=@DepIPUPH*%MvZ#>($pK&_!Q@oDQ2eUsfNS>%&EBL{w zOYSQnFY&YxR@0M2oxA{Kdeof=wyskp6oa$rH#e|r?AZSfC)hcEmb=hvv?RgZg1hp;5zc1fFo9I^9H$hcsn2Ke_D#cX>Q~5Kca&q_i$; z|E|J&%Q4yM&elf`2yt(^eB(qXbHn#iJIJami=EJG!G_EFi!{7~n-)ZT5Zm?hVj29f zP7?ZU9s=2#a$rpMt7(hK|L8JjItN-4Gn$^okH&}IRn4mXi1&BGDy6MZB^9iZpxx%0 zbsO-QPdPw4--hqgNZP`3hXtK%h2kW>-J<$MuBo&v^nv%G+-z=7C@RAXo@`6wXBRbe zW0b1YJbD$XJ0ih)W1m5vo<+rKo=j_f@j_nd@XE1k9uxJjFqiAAo0#+LfOI1)bO$+Y zMzG9y>P#K8151AyJaNCuG6GbiY=r`GF=tC}Xgo;V)6c2N)0*X_+qZGc=9EpDkds+X zbPce2cCBB_f@z+)-~WAKQbQd^*a!>q@L-ytJXmzP(QZ~t#E4_?icR-^F=vbio@vY? zp0MwHGF+flS}T)ZT)sc3)(q9^qz7{dFzCv|_VX$OxN6(XO#tTaP&*o2%sh4)>+MQMMzzTn$F_C8^4o}=ITQv7fBPEz8`?ACB> z&@8P>x%l>yzn#e=Kk@zLR#{^qb@O_6yhoKEHn63#WLZ@@@?F|D0`}N+h`tDJgG-|i zCu=OJzwp+*KX4=KL*0MLhah`0cVUKfC=z2yO6nOzW+i-dmLol2sE=u+%Hg`KChY(d=mIG?X*t zm`Nf)*Get%$jvUps?CeNIy|t*a%riXzPmOMe8Wy>erU5$;f=O3Uo z<$sOhiD(vTc6eAXu~tX4heaJl3IG%4j%(;<7@5e~k!WTAHX<+RhC(TCa`CBCW{pv| zd<`U?3$-P%gNjDw8g?N3+LQsJ#xp;$PGY^dHikumur4~`nZEvKMChp1cCGT2Rpa9m zr)`^63!sJHXh6^|Qd;xZPKjl}V{7B6SbQy;KZ@HQ6m5+>l+Dd|uh2D*^H9gCO*uri z+xM*mPjb?d54*>-*=x^B`*SSV`)%ff7`oGzTp>fv*B#iJ{FXQODwSL(#@1a{K^pnT zklPuYKHh?zDgHdGw1(88y^7hR+Y`~0atOu|{a;F8|HhU5%7U@@S@BrL2@_nkp2@&$ zq&L5h-}$sDWRf+a(&n)wXeKSy`$yn!z|rp(?oTou)9@DG1toUDW{bxAS#al`J*mab z$QAl428QAv%bi`-*I6X6sd?=e1@sBJp}Pn$VxN&d*OzT;1VTvc_&e9%vFkG2bQzyv zz?1lsMbepfR37QoYq68Qo|j_-{MVD1;?$^=R#r8NTq8T?ex{RAy(-lFYBnq+Wf%ke zXz7vzHp>mKirZ!h_KlyBwG0;bE54sul8o=;YvOq}xzRC#_ulh$Nm;5EpWYZ0BPXw5 zG)W{2_q)s&ftpGrI#yxCc&f%v#V|S`OW}6x11*cLTQ_G-pC&oHW1f?CR_@!~X{9Fq z!jh42(kHFnE>KSU#cK?Q?2G04HWuO~@%b~TlO%mX7Un2$X&>cKR_TbQ783lR8mlJd zAOdy-;_7P}$6&dWljLoEkpHC7NX@N^V^(v=vbQ{2Gn?L@4wd){UUeWSbv9Y#ob%t; z#*?@mLR>i;r+Gv^dcMHjB+r2-W*P-k1=;W>T`Hvvy@D3qv<-eiMbgmBd)!aTiSQcc zEp>FZ{PsxkxNsq>2#A!lErAFhFSGHk%9cE^VtJfyrW5kjbgvIjOf8(brIbs6PAXsQ z&8s#}YsL>ng)_J+axxc7s(WPL$To4hz?pK;i(H(ZSA(k(un;(%tMQB_GLe1h`SYwT zi`9iI(bsItNK}M$`DP9M<0&BUp;|yWz+}uy!!QYKwc`UoP zA}S;#C(7eIWygF%8&m^i?t6Y4+@s;nY9(WC;M%W1Q7FDB-9!>GrGzQviq+_G@R%M` z+R8QX0-2JwpQxI*oJrIbEvSJ9WfZ4^-hoC}qa1J?PH*bzN#b9hP#SOEj)wsbFmXrJ zy{5LM#=(4SvI`B8!nSaU8P;EZj-IeKY279xDnl@|Bf*7bcgCirSEn@Yt*xkg2{f&7 zfw993Gf~Zx`;1AKND1co?YUOYj#-`E0^!#aP<+k)3c*Z6$EQb>wVs=+Q}O6rjX-B= z^l1ZR{m1>!vg%Ll&OirMKy5zot7Pz*TPBS;qZ41cSo{HM^FV5a4 zUtt z+b=)31mvLND}xi9p*aL1F8N!%ir%+BV08gbgoN9a>l!}Hwpn_ACn)m0UU(%p6t$cu zFw1{M*3(NN3>v{YfkN^|VdO+KY@>G3i4Fhs4J`y*6e(Tf_d(t6Z}XvjmtMsak7{@) z9yM#cvby>LrLPj6@^8oWt&*la#1Tq`faz)v9Pu>VOn&yWTH{b1e^{!Vpp< z5&fUK4c8Ry*~(T@;=jphzi=FTTs)>|i|(^j8Yd^YxhZ&uK%n`n7}`KXFIyEmzVvlH z+FAOSsz!29>O1xC61j*`9dNU;P>x5L^sHf}qXA(uCFpmkOU0#%es*XM)ZurZ16N`G z$a<^cdzRy(+wLkbA{nb@lkk>1@H6fpz;=c93s` znD+o~yc?+>6B9r>e(E4HW~cIkXQJ*`wQg)!dzCOOcS~j@i@3;fl+fgc+h_+z)MA9m zAt`PX!&H_4`ol&9@2(|e-*R|sEqD*`O`c<+YA(jsbjm-F^iR7SIh|)`M4I@&6V{8Z zPH)XnocMGF+d!x$cI;gu6>X;uck>^>ThDJuIoL*50h=m076FPC+zn!!Ui?;R`Zs+D4Q=yzNhY>90 zDZZb8Vid25UX~-dcKe1W`y<94#B&GB<6V7a;^+^5z;?8R*|uV|U!MzlQ0xe|)7j1V zKZ&RPgg^h$xwD|`$M9*-<}kOYFyWVTT5)v_rR|g69V_sf$q!|TQ=Asr0i%5AX#B1C zR_^XmfNl6uN>DfJ!4a!3t4YD15@=2AgXx$1S!7G;C1|tOUjx|}9gn{;Pi$7lkDN3G zo*I#U8&L@8JSj;MH|snBkdf_eGyKS$@3p?mtq4}+vVPp-M@z4K&nZG6JHho=>tP$Q zsA&m)ygcuO&g)XKpFv(@hMd$mTRPz{xtBqkt#2vyJsBmMvhlyT$mH=dMr&7hW!4Cl zKN`x_8=t@A*^0+NR9_`7m0m>s8L?1aJKMfUWS}f*j&3SVfOzrd&bvPU*lV%4Od#@6 z;tx_-BVtKIPmL9akTKk(XmXfx;)af72@b(8#W}8gchDzsQYq{eJMx(!I;|Uiw6i1v9;sQ+s9n zTvFm-Dhy6IqTjfQOrG{KJv-E&I@qyN_%A0eprIw;8oxSldb-UFDv}-;ZlXU)vGWw@>O_pDuKXVnnfg15<=-+0xEPWftb$xuHnNojB8DVqI#I;TDUt>d6phMMhtoU z4|+mDFT{W@vo0+kJZ)RbB=hZ#JgYmiyUZeGH6s- z$gXmjKR!Cx|5fBghwf%2nZ^}OcBdGKly_@vD-K4?xV*}lGtTgM47i_2bpC0#)?D-(!NesbjF{8J`-0iNLUoRb4;X^I{e9Hzr_3tt7=)zE!9i4cWTY zc|J;1(x!9JzQ7^MmxW>^yNpLOqgX_4C&TIJjTZgZ$FB;rUp$Ab6u$q4?ev(n{ERd= zWJnH9Io^#vz=nh3tZ);vuD?sA*y>^_?b|UJ3eE>J^#T4FE67vLi_;w0B0!aK)0VXM zeZP-0T2^Q;XlWhpcGV0WW6Tj%^PY0b%g5DVr99xrcf@uo9ymqyV0~`WdN}Wd0%f@Rjf1Z4H*7-3bUzq@c4H41I2hv< z0#FZA@zz_kj$IeRipTcM<4%oKQlsf3-fBKqQTbyqay0!2U)r>4e?=m>qb%B_43I+Q zCLG?wLO8&NeaDKdK|9Z>Y}UaK)m-HY_Xq6D-h>pjlBK>?GI?7ySUT_cq+-^?_=e%>k9#44Sl=5YAfI_Q{bme8^g8yhIfaOC3v9$b62&qC+KwA% z6RV-bq8P6vJ=&w}^djkR+w3v}{?yPLH@q1^tZ})&cIggQ)S88JJesl6%$}P-m1n+Z z>=`>!Ia!!8T~+3&5`4eX5E63mIRg$pU$*G5NvM(z(5bjc3t-^SOi#|UpeG|88WVoG z1^!-;LC3q$0(4um>n!rQ%*9K zAl`m?QRd!$`C-pJWA|lhtNV2Z+b}XT1=K|9?4L1?YHnPQNi-CTEASZeV7JqijcAD> z>2xr~Ws%x7#y97?*XHji*a0J~%sY-^Bz_vCCuUE4XWOf4qka8iC9p9w*%K*(M)_H+zAlC?* zCtSr6NXZ`}4#9NE@p`$iXpFfh!PCyKFTn}{2|YOm;I)m!t`da~Fh9><)9A2OMmzK` z>fCOcEvT(!e-+;^^SI4ec@;vW%puo@VZ14cg3OaL!!c1EicNd&%K-{}G!mE~^27dGDso8NvjQa{Au%3eG?bzeBHp%wMVXSaBf;v& z!!uRu4FaT)dGa=dVEx2tHYw%4@laVZ7*Rfhbe5VIml2maSlqnP5H59H@jm=Y{l1WA zGFAci+W=Q`vM@>cj{wSrwKu|%96)$tmEI?_{W)nPN{+25-Uvd6a7^e>7M6|i>)duplE?{a4ptCvNAduQJw_!F@ z;8Ue;jr$Ee{S`b&{SAE7qd9_PMCsnB-5wY^6ue)AG`aXyc?6SInWz$Zy0U-bHu+3a zJb>7>l~}(4O_Va$Dgj^YovLr#Jrzkxxe3b4S+kcY)*)IHQ8`*D61{sGc#(N! z!{EE|Pnmo$+v|*UFoet+WmO2zHf|7+mY#)CILW^KKh^ z#t)CM_%7Hn7@=rX|57WSuU1I7`dpjGQ=@lpBovE?zppGsX4XGCoWB%u)$m2X=&^tv zEZbRYuvoJ08iQ%05T;q4_nta|VNTV65Mf%cB7qkp7j&)Ts<)dCo^%UV4eelRO;&`7 zpAyI(tj%2~HRU2fjnDp$(H=kdJI>@b>4J)nH9MHTv0#Wp1=3oF4_-2y^O*BEH2aRw zsRrT4ayl*IOWQEuYeLmQ_hX$UkGj;{w7Rggsx9se#N$f`4jw#FwEfAhB2&4dxB8GeU`(d4hrlmK+Z z)p%}?+N}O>hw;tF=`^ibtG(ojVN0yKz1>k=96j15S5J+C%hOMXbBzzPt|$-YUx_Ex zp4M5&97GF5mAxC$hSfB3{nsIU(L5be-`!UGp;RrFpFln@zN$0FrXZ*n+LbLJSn^*3 zawB4Sp|j%FSUvnJWfORH^Crn$fkP#Ny4!4z-&C_kj(13POAP2&E8LH5dtAp z8Hx@8<05p`)}pweIJGUu#puGc7afz%Vm2p#of=@K(w{W_+DfK#CYBuL^rs#*kEDov z&ns$5-~UVY1=c70=8c=Rba$a91l8HH-K*4a)N+CRMVcJ@?HCq09NlDBe)IzDQ~e?b zw{HYzavI(WI)DBje78Tk6tU7e*K|;8w-d}@;N@5HxV6o->B!z4NU=~i#`{QI9H3M= zPRe#s5BL46_B|W4n4rI}N0eD28PRai&&vv3$1oZ zumN0&i`EGndruK$_rf>@mB5n4V7)y}Kg z;2#&$9``jp)&h7SGWtnlY>nJ4hc;+ml~9r zXxNZV=viIq$e#gC5{@WDIV%xw5dH8&LuN*Pf22_Em6QiE>pta27d-oie+o`cUtv?1 zqwkklHEI0u6cP~bO8eeIC>0XaKMm8Y9uPPR4UWi7;<;Xl(pa(^tZ=JT`6)gqOd=$D80-uaZw~B00jyF)4>DFBB zJYljJG&L^^T5ZY)TZ{6G76l+Cl{al1Xmb~RaJNAiyOk*z=Dx=5mSFLihHu_&$}Vrl zsO?L)+ni4soy?Gwr4^R?1W*30)Ohg5GSoT`S#`T)$Pd@HP($F4Xy+9;7`tHNJ4zi^ z!%NQ&CtWKYHZOpQ>Kb@g!5cHbF9i zj4Jo#^EotrCY4D;vGO%MoF9~s^u9mqQARX+|i7nH?vYAek&Z)w|DH(Y^A5Fty}B>ySS~ZZ6rlT zYwo?=Tz?{B-h38Xfz$9DL`f2bIDr3tR|NCivGx!{>Z{N(7_2kr4@I1C=d`-OET8RE zXEml7`L?K(qJR_@U721@z-lwE~bZ?&XI1pM&@)g|94PV34IQojrlj1-?jh=KR zK#E26LG^%JvBc<`N5V!GL82*%1-drlV;V5Eoy`~nJh$4G|sL)QMqI+N!6GI|6?t`v#255O8e+x-vwwu_^zZBH3P7C6a>DNyF|~JQksX zN5REK&`TbVNUq}8p-y&eG;-=)lmEss-q;P&f+l!Wu(X3gTX~@o<~uC;;^8BHrY9&e z5W#YJzzQTNkVYh#I{F#NanK!Cd*PO=GFWzK4WlOrQb|VCa`9;M(NH@r4c2`K#WKHy znD?LU_=lp=@Bj1RCyb4s5YJ+=F1q~PSQvoK+fNi~U{nJ(>Q7yJFw$=ID)1iutQZL0 zT#r2IW@N$G!>~jD10iPq%t)q*mT4|Xe2B>eP|OMaX_x!EqN;OWGApdLa@J%oyF8MR zTf|t(6esM3@4ir#!R)-X86KZbMC!$Y@nT5_|BKf&>M&4G=4ZqE-#Ia#D=A)m07#xp zIoPS@(H@@{V)l&BBRhuNZ;vm0tV3_F{KcM&7m_B31PN+cv=Q>gKxMR{AEO%;jq-&> zdHBgM(nRB?-JHNmvedtG2m-LbQp{br`n`uV60jcL60y9*>r?=mM17KqI>VBMv(5QG zJ14@O*w-_7i=jQ~;zgSg3-&BC{MgrjA%e$aEwkks&tN>%a0vR7`j$8vlqVl@Lz8mXY$byTqO#fY~vMKy) z55wc|XXX=~BIQkq<&m*`(%1(`#^=S&(ry$rT_nmKNE$cWhr~ZpcDPOCd3-WNYcN6^ zYCA{M9n+)C2yS-HiBhNkH-|y6$iq^E=mp)6 z#SZM3d=B3c_u{}~ytMO4Ws%1=vwLBeH#(hf_3c`hJx+ct@}3RIDF5x0Z^>hIeYa!d zFk^c;XyKQ^jMaju@0!*U4aiNPx) z&+0S03cL;6wy2@&&GSThTm%JJapk9UadOACXDgs`8^ve zYjgkHbc5RehwF5Fnf+%9Q`OQcaU>-ropx}#IX?av(}X(9`RPS%_woBe^XZ&2*Bal~ zQzvxNcbpDoQE?1C_@DJL^wd%w{QX=k5ij4w#ej^*Pph;)9zGkkj6Lr4&eB z`fJQDz5u5y*>;SQ!}dO8Z*yA4$E$`s&kIwe>1#(7*l7E!!K|7+rvu`#+R@=8yUl!e zfo?BHsPD|Bjd|?tUVIxdyHCx7gy=~}`>vwzkibL|*ll--d*&fhp4>>lcSf+eDP{aB zeYF5EQ)S+RMlZU_d1wtq?gr^5ZMc}bVvM2xFlTRf1joLcg}X(t*2k)T4VeI6)K9Oo zuZSD*xO<4dXN6w#akIzbg#+Un4us8R=36RbRt!1OQpF6YYP-{9M^Xrb=nuPLTs2{( zjaMHr0o>ETy{-G1IMcbY-6F4l#u$&g;%*(CW>uNz-9(U#@RqZqB5CIB>)D{2G+ve8 z_rfyT`juA6k#WbLOe{n(`p=dHF)!#LS1(3@Q!`^>o66hdYt`P!WSs3+sdv@0=s9$j zka%Gxq`>OB6!>uU)}s!;D#@OVc6Ll9O&CQnq-qV zlU|}hILFHLr86Mp`%Q4&b&y_`*$g?}s54>zncQB5B84l*+%?i``d3O#N<&KXpf3aN6`%nIwW?!- zHR`3G`^y1|w)}ZS`_*q+W@Vjb8OCX6V?*9>aS;(lVCm}WQi=GtxKWpoXCwa`v7`7K zViyDdwE5>rfFs#Wzl_sc@6rRDJedgydRK$&zrr;7 z{^!k>x2!%GmxKl>fE+tE8N(47&s37A2B8VtL z1a;CRhcOas)Bm!x_4ZkY9mjWLP*k9_PUgxxF9GSR!BwR^yPkrNwo{QFdp(IMqZ6OL zSgNHZ?y`%D=>CLIy3z`=;MUmWv5E$DmUirT1%brpk&62ff%9WnPo}+n(Lh_El`<`i zrw|Ca#>y@q2ilvbRJ+%=CSRraoPEBWd*N>{6?1XXHZhOXzgk{I%Jq*iDo>TgC1UJa z(_I@Y4|hi+7Emy{Amh}~;y$$epwBdM!_|Op(;eVM_|U&e+`~EpLchx6n6kgbUHYUp zlj;M0>04S2So33Y8K0fSvF@{V%_DC^)r-L4v!v|`&)*~WiHSMr%T?Cwe#xOpqvc4n zut5QUb31u^jw^>0MptLE?Bo;gOW$&p&&p=K>`SXA3N|pLqIKM;x$eETH#o6@n7^ zXA!sUN5fPEQK!vrV@IiR7px-5he@uGN`BoT-Z$?b)Y!m311`6{<()I#F|}DugMKK3 z^0Cmf^{%l!oTY=9$43KjscKm@7M|^h$E^b}xp_Ggy>hMN!Q{R&U*@HQ;%2+}1i-}P zL7$k0kx^V)8ihixkgi?j0@lM{djA4GvjmJf`#;P2c_LwOP~fHK-Eu!`TX9Vqzt>G|(t z#K|iIxQN~cr!E`rs|R|AHSu^M1^n%)pK_Lh!y zP9Y?i=iJMqtzc^1&XA#&!AWV=f%&GHU6lK=m|kcfOBFJA)Th!RodO&)_shu6b0-Fy zFf{qpo1lZUBtifB0lM#C_Nn@b z19Or4sL$FqFa8mw^R8s98(Gb@zn0L9|2e-^M@nM8v{J4%G+BS%@?{t4s(v7jX>8+m z?!eu&@vUTGMQFV-w8L6^(Y!NaYQB_WIj-DMm&W=Z(dqrO=UZ!WJY}=uvtEwPfP;5e zTbZ8DTU3K}Nnk|^yx&QL0o(zu0-cwGl2)zqw1|1+X7*$mu1$LJa^eeYJkA@OqnnkT zCI}a^oFV~JajtA>6P?wKKOUV9yl#+Q>h6la)ib;8Zww^2LVfnZL6hWun*r-QJ6_ws-kplNRjS|&;%%rLKFh^WKpyw25Gw9) z4cmhc*-q9jaa$>j7tBW&th_91#-dq;fT*f)IjM(UYL-0B9is=QB% z8}Q*}DI*-te9B?n;y>-PWHIJWJrD6jIq1O89$S_EY%jH!=#KCePP7_^$={wL)%z>i zo)wc00w#VnsOFrvQ-3!*L--NcW@6oVv-LL)nrR9~xqSK50zFraPA zAi)fEk_VAUCGg?b;laUsM9HTGN^xuB?ikCDLQ~es zk3LN3a^7y9{0x8}$AH!DdXzswC>`Gz08z!k;;`0N=gu?h zsJC7RXYMu0Ifi~=_GZe}v{>V#*{UWPh~Aa5l2GaY9j`QXg^3v0tYnP^8pTinu|-km z?#1zY0<+Kl8;6BKqTc;C)XNpqwMW>zW7@np{UY~2>0bN#og=D>e9t}j(?8slg0-Ny z#Pk7fiZ+K&!6B0FOqkNn{~aSH{~)GQ1_t?`DInHqU4d`wXV4D+-C{t|d$+syI-A*2 zj|saSTwY%9pD&(G+_q7@{(r`!@%`pj3HImRp%A(*_dDIJS&mN+6u_yW87??kjRzTz z{r&@FF>zKb`F}mdhk5FM9gqKWNd6y&y_wH>#MX&er=+HqFZT3Edi>Mh{db|bgD4tT z^wRBSt36siP_`|{VVbR8v$9ssVj|8~D?pgeOx9j;8FsN0vEF&&*W(U+leQP@Lbk?i<{Kgy61$1b4R(ECdVg z!QI_mf)m``-Gc`wxHj(YPUD=HWUal|f1h*jhg)^4?uYwQ)lfxOcfYfzjWNgbdlq(g zjbGaHk^Fyb6xq#Hg47RQ#NBu=oVR~mcpm{uoX`L9o4_`E2XO(?ICN|txK2t;q0pQ{;e-`@ggCR{Q?H3Pof-Z0c1ZW*rz9 zn6h|*03Oj9nc|-TP#+ERCSBf%x*)@)kjrlBKZu|4Z~$Zs!4)T{a`(A(ID(1jN?3}X z-GbpGRA*G1EnU+E))b5pZlBK6oq;$D5s|5>Er*VqoS%YHsYVL25}WoEiPNOxZVzbK zF4bLcApqG`Z(m6OUuU5PlWU7EIJFMFq~<{YmaptSyq*sL%0|TZtEx0|hwex_DQ@Wu zj(nVgqx`m(Oev1QPDF*5{b#g*wgC5HLd)SE%Lc$z2lDst-}`lcCL4~NmKI)40u+4% z1D%`GwGo5aN*zMWvQX=GLgPfaU+Yd@R}A8UEzXC0df~wQCVm1xU#TOUFqprHw}JV| zURdH)kd4+c=dwBPu4Ye%(bdJxoL?a$(MA644a!F93Iy?TQ{-Ib;H-=`xXy2TV|L9w zQgfaMg>tJhuA#8*?g!aoFjmW=5=tG+6(#jLW$uD$h@>0?4c!)}jxy@MMm(~_Ym7>3 z_d+-XcYsaDPxt48v-bDolJI}hE~|H%HdFEYf!JDuLx)Mdmt6z0tN^a10V_&*l7{i&`JzX~qve9gU0jm(p8Rj7KS*I7lzo&piL!0mwBpO=g(iC=1W=SkO{b%c` z{G*m@U6Q>1!R_9F657|F-}*Tn^#Uvm|X7EjRx)DLTvKu$DP?;{_D^qr{SG_uEttdj~6-S zy-6)9B*z65Z8IfCD7b%ZS-xFT3P1mF6(xp}qM1jFiZ}s3B_l#%;&wgJF|Et=)}DH0-vTwcOgor%iAyxi2wg=`84TZAZ7{w}|;z7!OD z(U58S2$lHq2>zt5jz6OBTJans?J#TMFiF@Ee&5aidXw?po=w7y4e`RGKSujUyIHi^F!z1W=mUE*K_M&yL7R>HR zNce{H^&~owS+?Px=-Z71ZYSD_tudvtwGaYcvTvYn&U2J}X`fnnZOt7cekQ9(WQ%SF znuLOzNCMZ6k%JC4y=m`-VqEZ*-x0t_x;-g~i9n$2V0LOPKtHB!dBj++bOtfzuwkdv zV`o9=h-)`urLS}X%o@08ZG~`Gy9LOPXleGu+YE_5i75C=ev48IS=d45%8Z}wP*07Hi3TUac=ESD%${G!$?DEYTWI@{=|#n|!_}~CG&5

KQ!DJ|Dgb+D3DHpx}4oQiEYHZ+=4!l%+YPtUSbUi z(r-_UA2rKvZ#jq$!U2vSflciCsZiO7GRUbkAx#l=!$Bne@v5$r*M?x(cepQ?V{!28 z{Zdc?cwrnXHY87GNOUfKIH~|HkG|(E(xNSfvj@otj}?WnlLTbIQp$6xhG_?Nx4!uZEUX-6|nE5GaO>@u@g z8P5?1`UeI& zPuIHA1}k;CxEIy1|AGR4WsZl~1wH$^2$Xlq$m|P20w{6#BL=B(3(hAcsF6LH%T>e> z$M%5fM%O6s<768e`fTIp=xcC1iO(;cV0h?q;4mr05l*XUEJFgAA3X9fF@qX(Hnv;) z1r*KfOJPXFGdKyQ>b9r{<|4uuP;z44PqqHRn#{KF5El$d_jtcLTH5lESsMdM^-tG? zxcwJsB~G*;rA2EJMp!aoKc3BZt0g6eVr_A?+=wp=FmY)ct=A%M#d2=R~L>X99%Gh1oPnzX*kd5l; z9oNDIVG*WBx95;9o?A?ZD=i3cgRTnV{3c}sJ^91;HbZj=RJ2zUk_JwxvwlY5GkZaE zWu=Y;Vg=LVey6n*g+kX_)zAvFG?yFb8PI#W(%(_#BO4SFOvHXki6mXqlcC%Ewp^;_ zqrYD+^6Fq=iOS`liRc{JCN8A$=06amonXnS?Q}9WvNLimp_{yBaeB*sB9PCW7%p7e z3dmU_kNWC0*~<(rO1*$3XU}r!f?eo?Lbc4%wZ*@g?&G#78gV}dNOtJHN~df zcz&Pe%C)x7jc@mTg5H!C#MOoU0{zX>kh;myuQiK#hq*j=ze_vSfdUPIga*Q6QIUUb z($4|zfXeILFvw|!!fr<1Q)A{f8!&X3f)`MjgtTM5DRY%r>CBy9)aOr`BRE0L zI$uHZXeVEJEPdgS4~ua`-Ki||nGGlKzM5*o4BSIz>(6Anw(pY4dq*Fl%Tg5vu?}=Y z&3#6^apxAA3DWvWoH)FAMpPv1kzW)wUR6MG4mq67s!HB|CQ?XBWM6z9sls!~gsP~| zH5lci{hd2)a!Q!>#@7`M2S_*+f{%?)<9MjJFv*gYMi&sVgF!(Q-R1`oQJYdzA<=8Oh+S7%jf6?xG3PIPEfnSMvUDdW~2s2i_GQm^|cYXCqtZbP@p z<`(7H)C91(xC%1SJIzjNG~6;I_O05CR}!N7#cM$vq>E*=>Sog4R}p zRghdqnjyxR*cwPwx+nG4E}H%Q6b|Kq;9iI3Yy~1Gbdlsthr_9Bj^km2X`j|n9d{ej z4h8uD?dmpn>^6XNdicP*Nx-b-$7`XDxJBoe9nJ6crg}K5YFLqawi)|&dj1~f?`HFC z=NlJz+|3Yir|LE0Wcsvs{j7`gtm=yTS|#DH2!duJS#&-)GbMwjFf~j1Ilp1JfoU6* z@sYTm&>?fIc{547Dl@OD>+-LJb#^-C1d+iyQF) zW=5gYAAx14I(0>|Z9O|a1yO1cspzR>RSA;K>4BYlc<@gqWS z!X!*kb?UA?#Eyy`-L>}2F&wCp_YdB%87T%;zYZH8uwCjB|KaBkl=8Wywk(GVcIPwn zG)<%G1lHKe_>;SIkZs(sW_2F3OSfI3oztdCR7;JJK)fLc*fckbdNtm3%S5JPr3)BK=2v>fkrYW$Xe*sS5=t#X-dcs&Uk16gInbD*NtBdDVy}MF zW(Gbhby+G$;t)`eXM|nm0*sq(IA> z0NoP+E&V2m7u5_zCmhcrE(lHb&JJd~cMn`VXyA)HN+JGjf1QnR{_%9vyi|=za&&cE zSL{iL!38CGUyhg!u4FM%@7rrbTGgPStAU8SPWPjJaJ6*A`1&;>ygEm*%+eZxQIz1_ zc^%;Z6(jE()j^`J2Tq6hOlARXGr)cQ&*e(|Vlp%)*NaM?P;r}~W@C;Mzhv@|xVA1# zz~zpBU0WB`YzY{ZoL&;V094J`fS6(z6s17hf6d>^$4ZC4S8S9AL>g@lp`7N9#LI5z z)kgTO{DiaCpBykCt7^78J>EG|+QTxV=k?Vh8&GQ1(@?s3!PVfY)EH?DB zE%=5?%=Lf01ySnA`w*M_q^qq?joD)!nIXfqyY%y~M{Fie<9Xjd5Yb?NsM|{aq;_z)HVs&VrAX}DBkhxr;$q?sZ1!^Bl>X+T|t9?({^|C5=`hO*Pd&okUGp^>vGKTBTf(S z>V1W8t~`~~@i5{G{qoY@A+0{LB8aHfS9wWMo}T@X`5PQ>zBq%SXH9l8$}8a!-ki%I zo_!8@+VExgh)&M;To_rynJp@S+(mVKyktTE^ou}V3FKB!K9HM6X;DOqoSa!0zqI&; z?J&Ct*N%u)NztVV$~ALqU-bbvB7&Kle^EgpQ>m<*begWGLD5+}xXGfVhRFcp1fzSf*Yf5Ium&Vv!@8N5% zwAiR|zBb`oauK7fEFpv!)GbEMX%(q)^1 z2!5KMRAG(#kpt1rPlW`9=km@hC?{h9CNgK$U2haN)iUz8V)k_5uGI4bg#SNeRXXAVy!FT7TE6GqR7>IPd4>XLgKsj zJFIf=$7EvIrxfn+*#1?|vB?8`kyv{9YYS#wHbx}YSAOr@y<(6ro{ku9#@C!|j!jF> zC`Q-&+-_a+>*sES>?rcXm1%%ZFm*yu$icmnot<+PC*7SWJUCwbI1`6Ah4+|CN(wrb z65u3og~Rw@({FGGJ<~I1GBpp>N*Ff?tcalmwZ#cVGo?9xc|Vc~uRTzilPSozRHr-- zX7flb708hyq;|1+o9?;oV!o2%Cwwcysi^gRJ|C;L76#{JCqEwqKL8(8ztCngg+Eu6 z4CtvZsuV(Tlg2>i1ke1LN3jW2y;@0qxN$+eRt;*GT*o42q3vlw67jSU+wPEgqJpAm z>+%{%+?-s}#Agd%eb951+dH*<*j2xW1xQj`0t2yPru_vjlUCTvG|2mExbNcX5SjG- zsR0P0sH=4@9_B`qXZ}FUs}`7t!-0ADj+^g5Qc$5(l06eH3MaN1?Qd8L*vV$>ievO$mp0F!r+fH z1rl!TxV6`Abbn9SvPr#tApOLR-MP~r9r5aUxkd9nw9dO?Ha04%+#R*Aih1!^@s_xW zI^Ig+y`)79N!L6U~W--dG^XC+V~R7gUD6WH#-NjSo;g^8MHB zEdJo*B-WC zch~_#L!8qq^9o<#Js^Ew4GaLKV^z-8@_?7OvT|ps%UU;4{3+R znSoYmWcDp4LRk5RvX!Bso!+30)h#bN{Y}AVXZZs6I2Af zaaG$Qk|jIQ8$unu-owzehl~NfK?WA=?u3iWDZai}W#%?FQR$8KD5k$$80@886i&ug zh}VM8@(O-#Q%5L#-U}l2xP7bgD2ruCA@kAM*?6aqle3?*&2z}$*j);Tndrj$ftwa& z!feTV!AY)@6=ZSrvvl~not?V|8s{Q?CRSm0N7Nj>lm%f|HwwLChKz00)$aWV#ipBx zIk>yB!^bkO8P{#39j2%?*eZ*oTC+G8&M)=;nx>aoA#@%lUR?FTxs zSL@pzFlGq`00>g9L}m@1jp0LU=19`{yTt?6w`nCo!WD<`;JWG+W6!z;He&%P9C*Nm z@#Sib1R7O|L{wC!BS-sl&)s+1XKoY%o}8!k8YUfa_4`!grH-WAvH z6u?C9BGpYH2*{@@Q&6yv2aOK^O0#jEsN@faL^}{1inC!{YbIk8fv?5}%S;Bk2B&)t=;|e1$@!bYP?`>3Og~P~UYj zWJ*`o>>XNDF2gpqZTS#vey0Z+7o0PS&Z+I~%A7UOwV6$&oh~CiFN86tGl?@-Mkxob z0ZO*!Qnw-gF&=}JgDaWuV)^{fuZlwvty?NTg;StPr1>TBgJrG_)VEWB^$`}`>w1Ao z4QBejKrfnI7?sXRd1bRm&Q?)8T8wG5^lyzW~#2@>d+q$4oCJ^-e9mt;(Ia@C0a3efw#s12(f_m?Ane;fnj zFNlDHswMcdq@p|c?R;H=p)3CL_VM^oGPVH@KyKCMU_n_xv7eTBCDLDq`!=}Qj5ora z4Yv`l!(@!5isM(jQ)i;O%PK;8k`F~|1C|(guEokoksf7%GSVIGhvD$yviSDCUjGHC zeZ$?01Q1_&ovci4+N2*}ZyeJT;l6jhJIP=7+s)lq=_Uu{Wz(q0b*C2p<8z3x6|)y|eRBA=sQWRzy|ex%Qa0e?~p?qgK!b{UGoMk071 zVzJAyuq-$&q*lldZNbl$+o}OyXOPaCxt&ND9_-^Ba4 zw4wAwM10+%F$-Gsk7j(f?KdN1^nJ}5)T8$N~EDe94)^tOzl=LC{_|K24Y`* z--)~7vO}XfnUVER!v|+(4rN)iikOj`4j`Vc$76@z?mwcvH48(r5>(X*IJmzKTupM8 zJ+j9CfNIfG@5er4Co;KMcx3ltmbmyhzdM93tNQ(OBXX!%$P7fQggCRW$p@M%Z~Tfm zIM=L0x7Mem+Um483jCQs_C1eqsi4ssls{j+1Q2o%UOE7~5^FrHrW2<$$&Rk9=@P!S z`tcEuBC+wdu6Vh}UN$|eH)_69xD!R*-gqt54*0f`Wmg(JurNmsB-A?e+pY)DsPKYz zXO`ynC1QXSiD0q%t*Ik)(tzHwAmVkfXsjn<=DcI4-l?(z=mF)Z{=npGU{`ZJSzqc8 zLr*1+0>gi$g7z2xhx1r{gS!(LzgO+~W@Mr{tgbwb#~oVIZb8h#-yfwbuJ?fP{!%Yr zrW2GWKbDSDjRoiV)i=ZQRjz))>W(Vl=|lwhCH6iScOzkk-;-J6kXaLAhiTjMx4NUW zIR>@8m>w^vh_K*`g&)+ zs#WDE@8X|%Ir*DT+OTPU_!{CddK|R0=viulF(^>)(d@w^Ww~_vlzc zoaR|xlFVzNjzrftW;+ZYk{-ZSMaj8oqfNUYV8joJG+)6N-ypl`fmJa86z|i3Y?Bi- ze1wnUGYC>gnBTGVUM_)Tc6$e1-~FWS5+ zFZk}pgZ6!@N3x1!eDsn0Jm&vg2HlWd{wEHGP5-|;Sp60ioXU<;5+h2|i}PW8s_+qt z-Wta;6shBG+T=zcfdoPz{Bw8H6-(8<-J0{ab;d&f!ZOz=!R{Lp-XDAjgEvRCF(RjW~GcBDjV<$j*0?>}z8=sVuufmy6R%2ygMZK&`wU{*y7x!xMzmnjoI z&JH=8oTj~K7Bs%Q6jj9o&W{T7XH)wk=KBP+S~cA#BoNUp#+X?7YJ&o=NRQ!)#s1sI za_BCTU#xjN!tP%dmc>Lc`MEf%ke|E<7{`)MW1abE{C8RJz4QAFRu-;C$v(W@t6m{} z-+zihu^Pi~KIlFra3m<^p$+Dtx^Eq6O^d(NIR^WF$ynG;Y&4tZ!lH`%QV1Tez%5ZS zz@4&ohY5?`*m;}s<+ z5IhmlHNkav`+idm7ma8y`AX2NfmrQ67j&#XZ$U2p%e+CEzcE<|5}0*_e}Nq{x?doR zp{1zrq~^h?UW@LXjgLTSJI50cz4^hsq{KJ>IwsnaUl}?=19cT~s7W+UV~<0;pQZ@^ z)>U-^&zRC|A8+3b@o5tQa6f$`M1EJn*(nyu3i_KZ z`tukVcrfDwsI<;NxNuKEHEjIj4wJjXU<#-Feb(7)veA#eP;WR}oVXXt>oxn_)Y4+O zZ|0C;ocFH4ic1t^c%N~oznwMS7hFohwYm2i@iWi;>%?S4SGZglx+U>#)g z?WNLvXbyG&kdt1XDSHP&zLn$T+*99CBvqpDuB<}vSkSdq8S@sP_zS+g?rFhgGHs;d zLSLI_Pkb>!@*=Fc99Zm|f-pd+v6wc34x{H(!od&Tfmj)RU?`JB_UW>*e>h5c2r zTJWR0lG~}E;-i7W3_h-D%>s!N?W-el&Uqlb)ghPkm$ z^@~3*-Nsb{W*YZz$$ZbYVB|IONq418V!Ga-V`PHx85#heb-=82e5~XD!a{XQQ&Wm> zwY>P4x$Q2L<4njeUDOjG7M*UvG!!||;F>($&#d%igqX^fwQid(IJ_o??fwL<2S{Xr zl4VZ+pxRNsmEy<81)h~&ZJFsJz#?XbFW^Z)z?Ns*sJ7rIHdnyTX$C_}4oJXZ^pC!x zZwd@vB>Im1tQPP%PZlXT<2aGabo14b%y5xi2}V@qmifvXwAp!`4%N=*idAn5M?kEl z7#Rc$XL>>yk_YbFIDY>I=U7Lj5M-ZInlE7?zt)T`YnP=ebwOg_IQVnCn3tcO9JWJi z`_anO5}=T-$Zyfzo3$My*;xU?d%2t5>*WmB%+)kkcQ>&r?s|xMIM2uN1tysVQ71m2 z!%+CVe|`|K;;zBIyv9KM#Cr2jciC)yG!}Lod0pXfH^I5aceNU=hKrLtEq|$m7dS6N zXSw82)`0?P@5Zye4fh$WmUnlbvBF-#dsfaExqD2qSd)YQ$C3&zT>iWJJ`#Y zxqB(1SEebEw~R~w$crmaHr3QDnNYE=?PbulEfAZvts6RTILChbWlz>?t4wVpsV!#Y z)XMbawwocu`qKgfkY;9OZ&>%QFVkMR#(J_as=`A)Ip**x@7{m@pwNN&RkWJ#qa_Xh z4H}?DQCv9OtE*lrN#`pcP^=eDthn#6`h0qzJi@tB(IDQ)_dL-&qQ?UsG3I6DQ!4|< z!IphV32$QOrhX--Lq5$7U}t{)qe84nCs+76-Xl6Uy;jXND=+3T$>W4m%tJEh z7{I|ziC?(=AWt*d+d7dk8)Xq|3@rlWSBAKp>Q1;0q6H0mQ*)9ZJgBM>zz^u z3-7AIDN}a<#g!fcSxMb?P)@<|O;JOj!z}&Y&C^zvZTrN$3}+Ri;qPeuTu@Y}9r>ReCrul0Oaak&ljJ*D`=ZqpG!t zCwWb?SNR;d61xheSKG!rv&irsEJqGi38*tLzl^C<-23TgahgF}d%AZ65N9sw13dyD?BiMb4b z{SI_;p#GZ;7LW4$>|u)4cAccZbHCH78oD7W>tkZx5C33oknDO~94Vs&0Slnh3g4q( zjYi0iMhikFC3hruto8VQFbZmQzm`!d-~mexcr++2178IX&#arU=NVi-%>)#deuloA z9$g1otHl0~FI=b7+8AqACt9+R5+uEys#U@878y;x!Mle4EG)!h^c90Gyxr>=|G}*= zb3h1w!3bvX^NAQ>RN`T?qrVUbcQo$vj2N;WQqy5bKDk-WZ(7&Ur>$GXH^|V*t~kRO z?BGosc~DRyl0yZRL_eIgtr+t{amr6_4slvLef1ykT>ZUxiQ_)SJnYk-iWjh8g_{G~ zsu@-B#o)HfI{TpIBA-z#$X(ffx~f0a#P@ZH92-dNsm;2JRof8hXN zPtJAA>J;i7e+bPjR;_^y&kxA6B@2-keRUfRvNQ~2*;)Venzk2K#3i2%uosME<$hf8 zlp$7R$gSbE4cp<`wEBzZ`SG=_MHCeSjU|Rm5zRYF?lGZaH*FpL3(3WaWM;=Aj~*lG zN8%1G`zF3b!LJuc2%L#n1x9qIpYrjnPoffL!cb9}k8h=!@ut{zO`gd=iaElgGfIs4 zej)!>`~rY&TI9Fzjr!%Y-(>huRH!5+b9&>2y*B;~R(=?)FdqqfHLT{6c+lo~-Q6$u zlhU--rsAH0b5+@k+pn1W@n#SM1E42n$rKP&B2Mhjt$4UIr@L-md)|K`%k}|Mi~n98 zU-koC;(br|*z-^@??l7CrX8ODae zG1Z(Hk%Vi6#_1M|RJvFXJ)eKa79b>Vhd;191BHVA&cATy5^m0M&WTCKymG%1EXsYD zSNchKQc=UiBIBbVKp7QqAm7ev`2L9pKKSI247+bJi z6SX{mUFAo#3AyLl7U=G0?{<#8O@?(R{v#Vpq+LGBhTH95Hl#!4#j`dpfBvHB5EFStzLYJHu{Bueq<<7Bh& z`9epcuh2>h)QHI`R=_dlb_a0rY{L1igYiyVm#Az&{Zoug%qmhMFVj}l7V$}Mq*A^^ zqrlg95FWEWTDKhr59_D~Bj&I`ubn-RM@iho@v{4^u=7Xrxu0~;iUn+85&lsLy&D)c zb>XH}^65g+gTj6B=eT%E>F9R>SN&IjPCk-ez~TBw6(~CFsiJW#U4+CkHJwmU{M3hw z%{zD9t2tZ9&64HAsJ1A8FEz@COi~l%9(~ziEP?UmZaadEZ%&Jo2cM7MyP^qs1ta3` z9sc5Xs#1mFaK7+-G%$ko29z8)d2y;Gv3nUbib~LDyNBwP7r#}V*Rv?}S1@yY-|2sV zeedSJ=l4QLvvKOET&gm0YA2KL_DJ6;t^8SezSpADKIN_f`0Qr|yN z#{9wuW~>uR2pFc`T4?60U!U~uAY7!gt_cumqsDIxMSY(b`FY{>L}7{@5YU}V7PCN0 z5`uyqMXnn}QJhSlq&iM@LceT{ne!s%F5xZfB)@WV$QfjXd3Sp#yHRscH|lxMH=04W zC9gQcuj${8f}zk%0Iox_v?Bu2@B766<3`AHe&s5I^LA1{Benff=y*?UvrbU;mC4d28tF|;{+_5qv^ zMh*ex-;B3>oGYx~ri31v2{i6y(3y@kNy0g@p9YupgQLI$3+{o_EOl-1MG97{#N$u zUzN0gD<5TyrkZlAQSr;1E<*vOL5bWsh~MzHeLFy<)K2744X1Z%06bD3&Lg+f)N@x7 zP#*VU`id_fm|dU3C$Xo>qDo&0JT>nHhfmc&t0XN@3L$jWJxhdm00XkuLNDCt)onfM z>CzHaS_b9QZS(?@fS#|7j8oehV%zxzhwQ;v0ng3x&dIOGqK&DhX>cvr^{NbY>TV!X zN@?#(3e?W`?-&i64O{(m>bd26&CZpy>-(JU?^)ukzJwIU>t8Hl=B4L|T~07jcZ=>R zC%s$1FI&NMnm$2a_!owtJOIbE&lYVhuTst6CgJ9VAN9JW4?~*tBSl;;>T7Vq;3;?) zrN<0NUok6fs`fre8*kC6;zL3O^7x^(9JTWxY~O$?LKQQEqmJUhap3)d*7tIzchGB+ zw@ymepFXt>3=aBrtqCeAVFjWRA8Q1fASeDypM(65%73{G<3?9xVotTx&>;ycWb~f~ zi_{OsTlRp+@GUPaLhz_jkKQnqmEDsjGduy83y=aEECWhPPOe(FoSa{yqk$>JiVqquK6oS@`WL&bZ5F|@W^!OusE$Imz#kbX~3D>Je zTb|D}!U*Y%P)HAFVn=*{O@be^|6x}^Zwb9a_rk4$6cg$=`p_U&(vT57fmy zjBc=;fdPb)YVI;#;Lei{Eb|Yt)QXs2K4Qmdxyv;*9zVbdt57bFOY&r?Cxmzeh0Jds z)`?lH`^wh#nY_4?%ZpcEk&!i>abCUp_Zl;frvF51+*(Kfujn_hDa8dic_XAIdB!3A zuYmFSPiYb#T{vKv$MQk^fv#vcJu!k47@yz^q>2hmxW*W|81!fU>yJN7W(^p9If*o zQOf_r4;HQ56^P6NvbSA%WO`{QAiGm=($3KZ*7?V}|MH&5r2m-3U!INk@t++KXbDz- z#{W>Oai6lD><=?y0~|NtIMr#Sx>0{_3)z8V(n^|I3%PyFCR0<+t58c@eka{>Qr;!(Z$KNnbRQi$y5- zK+cqF%7b4_#)B={&o!0XE+TN4J}#Y%fVX|j|A$O&L49P3eZ9w*<>#z@k8`dW>Tnb0 z-gmiPKC%*^$dkTvW~C{@1nKMP;i2({4bW!zWr!~7j@gy`@CZmV-y}X)0v$R~bb-ix z_`R6qCT*!kS^&<5&G}!2&P1D30IA28ntl!1_lF6ZBUv+K=|djxmUGwIA~^I)>qqq5 zLI<)YRTVF+SO+_%lR?y+ZN2TL#euKd+L58y4D0m^mcq`?KV6Yu+H`!ld(C>aZbnO3 zMFr=$Fz988~!UM8Mimmx+M*j)>yh-OC9E+qou7#ECOX zg#uJ`4N=!VtyyIcW-5&vb_GFOFjSnf+@v{gDJ~!&h<-y}b#9k*^QrV~)%%Lx^L+Tj zgO*aC*f;P@zMijZD$tsSe?~^V0ktQ7jV4U+tVG97Bho5Ti|(b`@%cpg z%YPM1)xFZkmU@}qqiSa6{ev`u5)OQ7m&+PuWe7s{6CR1}-(Yo{jE%Y5_+OEZOY|qE z1PnO~aC;~eobwZWK<#_D8eA<>G!ftcGz$@NW;M9xlgNCQL3kFkb!>2PbiE#wBL`KK z*&Ty-HJPO;;9&>VML(FK`{ChXPPgk)Jk7Y|jdlvk0fxFbK29aqNX-|TK4A@8;Fc!d z^7fVbVYv__peA;hav$@J!489itu^N5^uVFO{hbE>^6jOELs-xm7t@K!jX3hwP-0_p zn0}r~RG<(W_>6{bNKq722&TxTG^Q;14hV(ZIEzMEb1nf71VcBJkPmc1klAH_9X(mp zqm%)DvQHTI%Iw;eg&L0o;%zgBo}>{2JDYNcqct2me+^;KKr6I_gR(INCx4xr>pV&v z(EtDh1Au_m!>*;;3`jr;W+0@Dz_%s=!(~)N#E%LJ81&k0VUqtReEm#9T5@udTDlGQV$9fNCv+ggYAQ6NM3nmtk|K%67u`zT%$u9@CQ(GJSZn0 zTgmivgwJX&`v0wvO=_uz#BW!Rz^33NVSF`bNA+!PX@il}nN~FWP5At8=i^7U7SCLw zs~SVSCBnNBU~Iyo8;L?BL|2v>+p}gBmA?+Sy`?Un4l;%X_|M4(ENI2Y$eIz=U7WU4 z5kE4&@H%X?ufBE}R-}sZs)ctH9)Pr{M8bL;8@%P%d04^|V$ zKo#2_H*IhNwhCKLaqg=Cm>y0=n$ep5wZe<0uG#73ZjA3u;1fP zj!1xuv@i;VpFZFt`SVQGx4D^*au$3EF}tAQNWbp%iIP{55uFo>^fPli15Q2Oi!qZ0Yvf+Si} zQwfjLx!n$|od=Z&CZBL(FB#KSHi<;Xf;V{5l_vo;6bh(xz#f0j3i`b`3s4DEFxr>B z`_Y^~_j9Y54TvJ!IX@$+eq>rgQ)cKOoFikM^DzfOG@QDd^cx8wBqS^b z3=D+F^RrzN7fY&6V9J|EPj^q-?M2`RKsil*&r$a((!W+m$66K9%WpQjp9eIbnAJnl zLL+?6d6|%!wyD#)1d%@=rDof0u#NA) zAv`qnKwj|I%^WAgV~ze{+gxR)cSkraH3{-V91MrLZuhtNzO-+9nl;~HfL++G5}L}p zl4f?xjMps-Xh?{Q8Y;4@ptXaBX{DAo`1*E`_4cJ&aa+@B-Xlv7?nAs)ghr;V9=Ntb zKGIB~4!SOL$-j&uVPGCMTmmiW+L+Hh0;(`lk-9(3c8sXa!T6GDOIP7j8n0Jgw$9dUgU8qcMpB||lSTpMe`O?@rBQ6(3 z66xCYWe0P{Qv~aP=%Ob;e8N?7gyYHAia0(M>qvkR+j?6T6BMV>vF9l0 z5-k)AQv?=S52&EhwarjENtU~@gY&dO5g(A~EK%LC&i{!hFz*H9z*ntJdoIm&cCN~l zVKP43U>?G*sjVEDK(rQ=5h6*xud(@PhN3?KJCC)Y1nk(C{$uCzPxfBVRF2IMmDa^>++N z*}GfIx9<#P_by5;k7etF^bzVwKTy8Co%;@dNjJZIPo2F7eSOFWI6U>>efNjEINkly z%5BH9FA3JQDw=fg%8iH#y=BQ6GeSB5e|{u@;#=nlz5ecCVme(P3DZ%pqQALKM&1N+ zf{j%+H2;w}TCRC7=O#Bof#SkI$GoWRkloe-O__(nTI<-@khE8gpYnsl$hEXqG0Ry7 zVF2&)>a@n<_1&=yQfV}TGvkTe&>`+8As?ZooV!`k^Piu^g|<^)ci(Y=_;8Z%PXsQ; zR2BqK8R+d#>ejeN^4>0J2fE`6TA%Ck8aelU*Yf_=+)f2%c14W6KnN&1R;PUr+|y7b0n0S`R}Q=ujov8*=jdlVeEait4K!Qmb;i9MpYg{2kU= zGgc|y5jray24?zAQ#oMG41`Cb+nnX$93>wljUz4W+nleaWNkp;)U6n zD|+vXAxT}gx8dx-s5!47x-&ZQef7kDkR@YvJ(E)L^k)|53Hl*$*bR3?o*=hkSB@Tp z+8(*zi}ce~>benX65jkyI{T@S(h8e!7H#!l_F7Npm8z`Z6I+|B zU?6`4`0~yut?J&;F6cVJl9Epv!{PzA{;*^U{hF>)r8{Gpz7|B-ag2OWRUn#5*ZTeK zKyQXc$8t3{n~>BO3aXe%2iBQvwfZFHPa_kElxtJTvDMR^Z| zG@=$8fsQB3ICFQ_!Q&xNLCvw{iK;PiA0eNvGF$gON*|)3Mng|{i!jj>bMrp2r?vWq zpA426*kg{YJ29TDjAUm@1KA18jlpwN+lK^>^zKP3cVB)t@BpsCg8O})BW#0%*m zfXbH$jmzn}mgx>E8-HqD<0f`2ONtNJw)!H&^lnX@yx+9tS~ZR#hRr72;#s_yGA!CX zG8GY4q=V&^loGo|DP5=@Wz#Nd$iW4mI65BDi;h>i9_%{m5@ohtn|E3UsdTf2VJwVS z_Z;g+>pV0XNe8y~m)RwCSd71l@BwWhyO1L|658zLGK?GsJkamqSuQ2EC@_0Ku)+av~9wv0=@%X)=x;;}b@T zfo^Qq5^>dQgeSBVan1qq4zVqmkYV$;Sk{UltT6wW^+3dwWybCDkbv>6tM_sJa6E&a z)6u-wvMkEG^MZom_?|;=DKL$?$Q;C6NhgaccdK3`GN*OMv!HRf<0jf)sp1>UCNO2=s8_=*t!*L3v0rze0xnXb^raFe?ST<@n_bA zVIq zL0DYJSI6wBbTpmyzF%v9_C^Y-o$EVj4HK_*S#GrOZfu;h?8a_LN&l)nQ+wWalC3;r zBjEMGvRImlJE`usDR;`Lxq9oqxX*>^HSTFj#csLaN6uEZ8+#!S(oEA{m}ADUpb<0) zy{#QS!T7deW|dPs=hp1uOWyow!SQBhB-?)Hq_sZH`C6f^{cTxBYH!DkXJlI5ut&bb zsM9Jq|4!R0>*9$wxl#nePkmz=3fPZ%B1QaGs9zP&-KPH(p#_s&qxF#Kn4Oy?`8rg1 zd0#}_Rx#2>ceDvo!9G~%`pf2yQQ-+*9Jjixd_D2>T4>ZpbhE(NHWuOR)#OJ7@Lf6O z)Kdpj=^}^}^bs?L5y2}%0CVzP*yP>Km}^t|k<;iTp!cGYF~czl7rlXV>Q4J{mG@I;tVMafZnIIFHHH&UDio!rBtGn?94}B@jZa zFnER9M?;g}*kI(uld5QBU3g)q!hAqqM+_vOzCUBZ%*(ZTyuAkfhBR~>@^Hjmv|6{( zRzGs&!BcaMHFK%|8SfS!S|&DrXQ6g~D&+GN~1L-b!gasNqZ76?g{T_Zi7iKa*4~Q!O<+ z_oW;-FRVEfa%+X6?Bk9;+ck$yZrGg{>rhf@c1251ihOu&agRImhMj`qGP9`($uZI< zm70DwfPC2SUUs+OomDeVy~OJnd9{sg9iinfGknT2>X_Fj^P$WJZN>ceeTpg5^bygp zwU@bMPCD%9U3`&fk1D41QX+|e8m>nuQl#e54@%^!~`XntT<1ULnp3##?(+8_Q3 z>{Od^-DF5bs9U#2oi7fl^l%FJv4#A%1!h7A??*ks2Arn181TE{J8-C^R&?EgnEnj`*&%N zu8o+A!(6wOYW40^^$eqtWu-o}e74Fj^#*CBe@PF5~PGYe*1u)NB~UeR-%(V5-!AN`$W&= zF=RGed?Ga!($-;5;n?s?Z*KKXlrP2=$NbGUU68R%S3_Hku3@BDy&6Xg)7xoq50+yz z!QscfJN?7wylB^9XVw{)y4Q>t3*@U|1GKB1vF?WojkF2YchA#O&&NP&V<7OGQ5Zt^ zQpfi;0f4@+NsN97z2NGdq(fL0&69x@?o5K2*rI0xgMXr?QTrSJYD@L_=V|Yr=#K?a zx$)9RQHrXX%;@L}g$C$n?%=bgUq%m1A=j95Oy)|I3tjuhqTS+9Xf`}(ww(7lEq>$g zbw^4wVZc*nH)eT)V$Y?VjgY(dkLBcTK;|L0T!;{P*Co{h+1u*xn)t41j+7Oniwo(Tqbnu)>+Cd z`#!erIxd9o?@(K=_vH$=BL&}Ylb%7XcfaXE&A#+r944AWFTCeU*hRGW%l%pcIR2b_ zX*;yNXz9g-`0OT3O-iVYi`IdTI&J~oP;J~zz&na0{P`Cg&Yn*cM`7Lvy-;IgYJGxa zi{2J*YJ?wW&C@G^+-7kIZJChbhlTLKERGJh2w_uW^cdNZrht;jn2S0+@^`!oU^}m$y6it>i?`x<%zAyKU0#{%efj$SjP=i(u_r=UBI z@#TqN+JLK4ujnYWxk8oS8@msHKC&RMi_ac%7(Q*STF4^fP6786EYO& z)2}1{fs`z16a)w!i%JYG%3bK@r38k2ZKCau?0Dj7+&vgdUv7~^m@fiHm0xfZ;3Z## zvptI?Ng}js#B9BbKn#hZR2@z-j6f_A=JZ{9^5NB73hqc02kI8LtQXq#`7hcn)BdW= zk6<5({d)RGix9@z*@^47I;W)>OK}=p`vx!B7Y9R$8@Dtv(yQd4df5#Wm6^WVQ-?{K z71}Yz@|BrM1ST`DO~Ws{DdhdFuA~GM_5~-bH{-QPhJ9_5fgfyyn0QFJiF^t1P^CRv z16c9Q4orGSA*hlz9_R-+Z?6}m04S`LcRFQ6aLK8jlMN6KgoYUm)m`eI1!UZ$z43~e113_dVbQQ4z&PNn2D~}#-UJ)xQeAu#i`rv8;Q8; zh^&&f5SZ8J-!XqbMHiJ)#m5uHk6U70On3gRb-q^r1}|Eo&MTL!%`94=j?%F7{isYT z#ZkE@+96A+M-w0q6Q(VTN|LR6`ase?QFXY+3$igyp5P zcVohMf3!zU6lF)=VxalF^lFc9MOMR1{~SF;4xom&y<9UO#LJ9*T#UnvK%@gdjO&J4 z9-mYXc2+5>ofUul9EYXcFr~kF_*i>+o5wm#TJIhqp!-(L9!>jTgb9t#(374C?GK$e zX5=;L!dB~a?W?@+zB+tcF1@eU-nu^1ROEC5MEIAe<sHcGNE=!OLSTi z-=!z@VaoGO>#zw^Sb@npk*F@tvrwdcPSeRof-jQr=ec(PP|FGm`sZ%MK|F}RJX^gH zxG}F1N3%=2qgSfNoSzH{TU2cy!&9?GB;` zu-dQa1EaHy7w%hgB?jLJ0yzR)FC3CAd&~n6cdf)D9Rk@Z9MaGPSvb4tzaS%Yh5TVol=GwsgJ;6bM7LnHI->vY)d?xzEq8B84|&v z+G`!OdzFeK`UQ2qWf&YYmctNSu?#-=*zAjnKiFUqsaxgox@-zHf;DQva3dCa-yKv4 zAC+jcCC;+coE(Y+NaEiXx9oHsLwxl4MKH4}F2+N7r)9hNfiO}>Y$8CAQQT(G;g|1s z3d@Yt`~iXZc|ITe^6YJSX=(nxVJ-*XJIn5x(V3tGHetnajgYpOr-ZRZLcneqGHc+O?L?? z(>#cf;FlIoPv2KN7TJ!OsrSId@y%JZW}yQ~mU&LY>Rz+{fh`;M_PvZ8G<3 z$-4Kgx#|Rg|6m54#s1L!m`~hiLzWlU#vh}B>cQhU%(ZGiZsce9W)`vXvLbyt*8J?Z zImrDT_ZRIV8+b{s11ag|#qXymk@H$>WvttWzO2X`)d%bwJ?o+Vs(SMVOkOm!xG(OmThmU@+dj{qskD7 zl^&(?BINxkK4H1nPN$|IkRm6XGqekV|E-_p<6j>LDwHlgz>TWe^Ln*DjM>+Y>S z(m=<=6m@_Gzk$M>AToFF@b8<4bC;Fhf(zH!r1a(b-B-#5bOR-hgROrKX4>;(bIUT7 zO)2-&3GVLO<<_8`iOmCo_c);5f2f3d)@rt<;*pS?=<`%~SYi^j=}PYFV(}@z(U-Nf zcG@FHl#h*HN)o;Et{YAKN!oH()hA926QdgYL#HV61;H-Mgq&ffo$3Vwv?|_4W4ZV= z?Eu5lsPg7B3G8JhA3BWsD~$Sxm_hX563(4&TtEVhTPD9UcsH$##y%+I#_!`>$`N7b zcGmoHbLHFP_3cH^3K@O43u>cG&C|v&ubsab;3=Ibm=Mq`CX{XW9FWq~m zQlKe>D17iPf-YpRK5eI9Qy^^QVrRWWTAF|(?oEp8u}*^@o3_PG0qg?tk>|b6Vdo|a zE&DL^#t1j1#L@~{RLLHay(iU?Q33OvJGy@*bGSF?1|Hyj-AmJJwqfrtoAOsPqO#d= z60b>Vcwp+WNt#uFUpW)2>%xs*;L7OqTR80$ziGuf>1sXKG##V5VByoAGC0k^;*5Ek zk}htsP*21!mGKE2^>Q$Rq8r^+LaL%9++zKyWR#j_2stgL?5f=|{}jmtQ}?RP7g}*3 zkCxu{7Ni)Ec+mDSC%Tsoau;uEX?!MDw3E4p8`q*MwT%!ZeYdkw5z^eP=gZhbPd#P+ zfb}Hc9JY6Jv!cdyNEM&i!P02eu5cE`R}$c+*TvebkF7-7FKrEDKDACp)lDp0UqE zajk=ZKh1faJJ`lZ<|c(L5Z2`>`w0hr$Nc%rD5(mcQLWn=#miwM8ers$B)*|hM$k@O z)Ekp$HD`=a4R#Lxrb;%}{$Fe5*_@m~T2;>LS@U)&&~#jMxX^dHmR1tJc>~(59gyt)e%^L_?rc0v#j-jD3N^Df?^K2W zLsoIveXvjKhUAppGO;wR*7q;OU4_b+<_(6k2H2PawqhXmk;jp*Hvrjc`s$(HTkoWI z?AL~xUI^=-8xhX${m4eJe7c55`pQ(D*PS-7Y-}^0BrhY58}sLVMh!J_@fk*YB2{OM zW)Dguk8dMqM>!KuMQfjb344rO%tilQJC3z_$UZ3J-%0E^{G#%?*4HX|rYd7UEbRu+ zu^h7!sp~i4lLbLEYqpGdSYyD6=GgQSuoxYo%Rt_Vic)?`q_Viu01n;)mHvFC-{WID z^^XIMr1X!jNbjGd&?v8Pf6#>DM zH9z33?%RsgCx!~j05X57DQfL@m;Z5RvM5Bo4!6CVzkEMGVp7BE z;Mz_Z7wki<+IugCEwDJ`2aChQU-its?+MR{2k+|D=%nr!SNf{rdOaNe3vQn3V3(7fZFzb#i#B=m2rFTqS}^|ZM-k_6Pt)Y6N~ zJNk9qcs@)f;m|KY8x%zi?|Urpvs;xd->hwO(?T+uko)2B#W+&niukhVsl%+m% z8NM19$)-teJ=|~8Pa8m_jC9Lw6TG~?$6~4>AQKfp&YD;@`{7`W>4ZJv@u}(SCDdRJ+{~PKFe@XNnCK?0$BnKe>F@4|OiYs$CtF4S)G6 zQnb$K3kD$*|7Up+y&T$AZ@KfX>SNVzSNP=)uXJ8mK3*-aHTZ9dkylp8I7+c}b`F6S zxKg?4=Z?x5eMn#YydTg(h}uu}-fhpn1lVCwEe>ML5qar9TOyy2sju?)xJd1KxHcYQ zzGGyhJ*2(`V_G{vHhBUz=MAI=g@wUg#!tw=wGNcw;ZgNtk0S8ECxf1M2NWe6I2+W1 z0vm>zV#8&aU22*!7?Gw#iGV_N6>}gglJh6`faMOO1p)corB^eWt^S!*--|-pQnSsp zyKhf#Pz9NrB6tOKbg#xDU1eb`*?C?~n{>hgfkNPFJ>#XUZ| z#WU1=DD6nuvn&!>IkDvZJTl|g<|@*&1|SB-z~XjWbKyuxV{AN>*MLB(>T7OJUX3zJ z$gY`T))y1VIHdTSELax~j@0U-w1iez{kNaK1f!{Tl6-VHkkVpvT283*SMaOaH>+Xv zRK@D&-KGpP+0i6T#TN+J9oaYDyM4!}yC5CbA0DmhI)vZWdg zuC$Pa_PEOgWNN!l54a17SLZotN_$3#gM7Rc*MzLYCyQHy%?jVrh*G$}usxvkky7d$ zY#+Ue;8|u7QfUVjQ(!YCNZ%gQ>yoo&pTu)eZ(dDD3nSWt7GnOfX3EGaIAjj69D>tBD5C*O1~H^>j^%{a3Iw z-e8D^LF1g#eTtjA131eK9F2;EkQ|WgKFgg#oYV`!+uCP-Ks11~x6dSI0KGMJdYwTG zNbDNH$Y)2FRRtR`dXud(Vu&*tV(8WOY43Nr-wQ@XjU#?=Sh7p7-d6lA8ra8Tm|Lgg zlI7N{#Ngu8#`zY``TP-!@6kF-F7y>}&gZqhcTZ9oOOdb$GI#Hnun0wf*}iuH?!+@f zzF}^>i=_eRLF5Lc_C06ScyigI%O^^#)>;B%<_Kh@1xgQoI8Fbyg>f3cA=`Vuo_8Z2S`O||w0{Gca3s-ud|sW6UptH$HQ)yP;oMgoaX;n(Xaq zue02H6*vyg=crbLBW;4JAJ46CSTdV!bthcsHKt zJabb#%eCp8EWu?MXEGgjh|cv*rUOh zUKYFP&7n2}pAp)=T>4bl1`*Bigm_on)8S7Z)b}-cwDM^IJW0qEmOr!(aen}XnVz9 z6I|XIKDU<(YL@qenJ|s4a#(7U^3`S*5;Ps9*V5$zP+;YL$|^>nG^HABt&F>l*cO3p zEiS>@hEWu?Fn=Z}UL)tK@Z_nQtH)72+ev|5gX`R?2pyAPZ>>uz);oSsWbDFPgLB0N zG=DtJS4d}y?Zm%za5u&7KK7o_##w?mb%mI14>(-e9mMQ{8y%y8LE<4${V-MHoxYrC zAQ2i$UJcWqF_xybD#S96C^4zh(|}uSD*14zUQv7Y;1BGX-g4axe~Pe^wbro{OTP

GrOwwy=mPTL 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 ax_xo5dY?a-8>k2eYaeA)r0XP2KK~!N3q{KS diff --git a/img/vs2017/vs2017_additional_mobile_workloads.png b/img/vs2017/vs2017_additional_mobile_workloads.png deleted file mode 100644 index 077ffa4e5f33af3c6d903905b3a26d7719bdc7d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295884 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≶kU5z#z3Bw?BZo` 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

qvqs2C%1_4;H}U$= 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 z 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

&E0i>k6 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

    g6hUMtl} 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 LZN-YmR$>1EBoZdm diff --git a/img/vs2017/xamarin-workload-options.png b/img/vs2017/xamarin-workload-options.png deleted file mode 100644 index 31a8dea26ec1b12404397e75c94c5ee53af460f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50616 zcmeFZRaje5x9^P;thl#06fIgP?rx<}w0MyeE$+cf(c;02(_%%6L+~O23PB3RJ!o-< zZ}IMZb1uHCy`OV+E?7y(dRFF|b7shI{6{{&)>0 zXCs22&4CA0_czLNC{?3Rk-!TKJ6TOx6qK3-yjx35;5Ck`ijg}C%CpGFKUC8K(hwAs zK222xSv?=K{RN!1P2D@}e}aPj9WKNXjuBB4N}s=|s1%dg;8dz{yh$T_12$k+Gqz7; zO054JeP3Kpq&6$>B?yO~JhYDmb_m)99kjdKZ7zztZ;9slO1kH5HD)gvb^H~Do!kZe zy4yb#@p{wW)FDkyPL2l>BQQu%Po~RC>(BYvpH8DhpDvaIUPyj?53N6rHjggQTGRFP@TFh0?$w^& zEImkRX1}WOFCrux!J>8iVs@OA?vbE}j~#ULcd103x1GhQWtIXgLB53am|5fGR00{i z`=}^(T~>$)Bb0(3G;if@x_jTx2VN{>+-r#;ivl$J{>j2tU8ub0z@?saL6CUbD4fRv{CY}lKSZ~9*lP#m7Cvj?*E)IL$1+3`1oybna@g!p)cJmUQF=+dYb$=XQ%U9 zQX=#>BQ8N%LH8$lwurz0sW&?Oau#Xyo|8Jra8fOmi$#Bz%;}7@gXS9u5^^!0CGEZB zsoilfu1p{JR6f>5;&^~LZZ-fcsNBJB8gSHi7y_NzmP9sIyEX9%=b*S5|6pl7{A)=(4QwHWaPsI0rcp$YQ znQ7*h%|e#l;cb_#y(H?JyKJ#}KV&o+DUI#(>j#)(iXte@Ud7Q%OEro}#mnD5t4RB`AQ>v!ompK1pjm&hYQdNJ^{NDIuANk3l z^utxAtyz$EZu!GX0z^gnp-;Qct95_+@5F>U??Su#-rA`6p@vJ)NmiYrd~15%%|R<~ z`v#ATYU84x!^KYi+IC@rmh@#8;W62^>7k#&oCiX)F4c8A|C3ksHhtBsUpU3 zycT`8+R~1`X$Nvw^~6rwKiSrubfObxcgVGUmGQ^=fS9jOoeeslwJXi>n&SxEcQ7BW9=DAc+9qd4 zbJy#&|F{i%xO4G4iZRdbILSFI0@jd!!EcxcIl!Et@z=T4>0-w>;bc^tH>;;2`rHoK zoa(%gt6>BL*gOYQ^5`*2(x;z7;>U3HryA$oh8;0;Aoo|uP`nodfwz?|f#v>+5068) z`iG08f4Ee(-KmD$?IKSR+G8SKW3IM*Am96|A6TJSblnT?C>+}i5PoM z!13UfA>=O4b(6lyT zCv}o>d*2~FNgznh9H|YtMj)-}Zw!r{eoh^i3&v;*Wr$vto1J|>cuUS4;no8W@5gvG zH?-VO>+&wgm^1R3L*-BX>Bup^>AGXPlM#_I2)Hdev2R3VX~O;zQu0jqV_%fDzQ((Z01qAi)`9};*VOF=Rw0U?sz2NdO9kjVbySy?8M+3S z_Gq&6_Rm&r=j2{w<0WD1C@NN?CI9_#dI)*os(hH#L^SaRs*?SYdNAV3f3&Vxd^h#q z5{h5WEZSog8tCb9`#?_z``<#`CSk3iJGSzU8PUvlX{r zEOPPG!D|-~z_gs8(`5*;n)nN9?0VK62P+w(bMAq)~}3;H9P1UiF{e@t2y^RSu?4f ztGv3y&)9S7Eg~W4wD5qO`4eCb$P1$c$0YvaXuvgn6zYKUQ*YU;9ahpy#(rG#SSId) zj0Bg4SzF{7h5w5_Rsx4q&cIV_vkB`MDEAetm0DOxvEBMWtpo1H5XzP`id|-2ejpHKcy`=?nynE{qr5AtsBrTDO zEr9jVgI80L6iSPE8egwtij+LdtNS2!pSoLYDqadskFAY#6SD%tDhG|p7EES#_#iD z5SfQJZ?D&2b}1)|?p5lvbb-Ft{i)tXHjC#7p@TTeVtLp}Lcjrm`IWlyx~8=1+M=tD z-!GB-+yu-~*!5_=zV4>gjmX8Gzs}qpo!1G3aeD4!O+^c zqqY8*G#`yWyvV`HiL6=u9j;{6wD~VmRl4o37}EQfgtSxr5DB=w=Y{(7cLBO$*BcI{ zT=79>eyd4%rIK2Ax))U?dlAozc3u1!Os@`a5XGOIb31;FMIukq=Tn65{<$D}H=AKn ztD?v~Z|6)Y|HU(8mcc^qp=HGFaf?4xL{?Y`r)AA0Fz@u8muOELFirL-Epb9!2D=?lz0g~`B9S; z_C#vGW4c=_G%5L&S?auGKWO)o=KNfV6q`?MO1jFl^79(4?6`LY5e8ZJxcs>n|UOQ~ZQmd3^o5q$`bYJX!tM4Gn7Zgs8CoK4L064DNc^+mu?THiX( z+QjBA_g_gM!p_`g*%Pd~8nY|2Hy3}e^yxWIt9{G&@g|X+22*4En$O@Vk^5J7xAYgA z?&$jY(36P+aN-d-b%SD`P8Hn8O5yCdeFQ#<>_S(6QTzIZ>#=p9`}Sa*S8fwL*5Be= z1f|+vDbMDEYN?8j$!=u+V1g$kgHs~=+(qMNMCvrF{dEmjm%vy9^ad4xi z!NL7@Pd=}y;6lK!Fr@iI*5t*F|AR`k|LAw{2sylJ5s_a*iY;vnN}-+(r2}rVgeAhd!9*CS4i2-m_O1)h2utmPE=9f}_)Zv2 zq&ZA|FWo0(|5jztWecr|Hq)AHR4wqG(m3#DjoxbJUER0B=5rSRwY@#Lh>jjte$FHC zaitz`sl~-+6SN zyoUgTxh+A6hX3JdN`Gwbmubjq5;*K_nud$$TBgTIdop4}WIoI5rW-J}Yr3W5=U*ON zgdB}N-L~uW2_kK=OW{qU4%OheE3@vMtNM}(60;f2eL9oMarn&bO_#@g-htXf%T1!k z>6J)H_1$V3kSy8WnhM#Rp9u5rx6KYAqg&}U#RIpaPum+^rX`Ja_`Ud9ltk)5tl#2*sEvso44uBVc4|9_(AG$1qs(5I{|)9b4vv5=h&XRPjG&v&*yUdTXSq_Wy|~fyCrP; zk;8@=Bk<8Jt#iAJ+w_h$C&l@F;8>ARjpgFotS!v@k6S%gEu~ep3N4KpO1FnA9Njf3$d_4>4JHp$@aC9^b)(Mt zfX8S^w?ray+StEv*80?}%V}hC?Xyd((A{m>R!QY_j;{@@z)Fb!U91!fqTRrCA&0QI z`u=*lekuJv+beK$2t0g!&}M}yYjcWbHrRdzhi$$Lt6Qp>J&luk1Rbg4cx`(~uHsMH zv%+`V%Ol6T-O};c4e$An$`=FwEPzBO&usHQoCDU*YrG#CMSuVA6EYb6$@aY(vUd2z zZcsVY0LrDL+%#k6?{qP<+;rG+GoeK5GzolC?oq5=k^f=4$Q=L*)T({@xF+r{mX;(1 z+nSF0Y278SdmfX=+{@nQCI3kVz2?B+wKx$iO7nn^Qp%vaHTuAh>sw?PD$4->a2MN1 z(QScINX!SEj39T)6)ATLiLLz*nj#xZK*aqp0mQi{x9wJ^dxVeYizwTcF*BO)?+zhbonFkSUB^tEwzSyv0j}47 zeo3YABmlHX$YEhi^3eC{X$edCCKevA1hdMo$JEhdQb*Yn!sGLMEat@=CDA&LwvSxP zMw-b4jYCBug!Vx@V3qXBzi->JiYhRMr$NOo*Voo>rgbs(VHDT@pxI9BX0NUlcKvU5 zEJ)bl)iQSij@o75@!<1PhpJ|_2ixQORZ7^vlC017@~RfjPmKf&+;HD6OiGUgI1Qo1 zKbc2*(F%KGY@1=@CN%Px?%(aZK!(pQryDy`<+n-DSl6^O1X%9?{4}bsx(wu4>gG3d zGbJspp@G*z)kY^PwH{}-msg6E2>EU9@@n( zFmyJ50Go*f()o;vZWX1&ZZ~H29w|~CD?iyDfZf0V2pNv0W^_YEU2-3jL{6KyjKBo| zY6Z7=p6x1k5e>MS?fm(B3o(t$lu`*+Ao-D22NIzR_XU1GqQ~uZ4|fdy(m3~_{4}kx zja6_k{}Wwi?#=v`ZO8=uX&(TqGBT*w0~L*__j;nT?J&EL*j_zC z%QyQGF-pAX&j3FxhXrzUfUXz3mn2Qx`%P}%;bHKVAIZ~SzdkVctc0S2Sf}vawhmek zox^Xl3oUt7D4JM2C@JQ@rwW)?ACzwsEcxbwr@eGeL^ zDKH3zu&=#sCHBb~3p{YYYVBBZYFs$J2=)^$3A~tr+n0#s)QyUj-#B2Ion+2jb+s6oq`(KEqAto5M9p|r-L1!gPrclcu{umi7h z`af(7#m>yS_7K?ZT%Z$5xR&sL;4YMC_^lBm=D$~?eE%fQ_HeIhEq=i~&|c$a6xbO# zFp=)B2#qVTxXuxnKf%S~h3i(f%fr|FuOUN<5_256l&_x~XZdRM)N!KiR<%0c z(_W;U{p>z;lELAczN^$z#)_Y5Kk!^&7PJtPuS@#_gnMN8Kr$x^< z#A>DH*rb1;OxgjKQTq`nH0ZxmW~P<5*}g!DDT=eN_J^*ZB2dn_yQ~li7JKl+sT!+M zeuG$NBIp|Z?J~Ates#N-`Sw;dOGiJCTy@)wm^b>LPmG zcwhC_mKJ_>AKz-0S3ew5)_84WOa; zUjqlk$WVOa?scjiWD{&pP%hf^rx+zF^37Gu`Z;aPdG|^ zou3s$ok_uezmll`!kpI1EGEjy5q5X(dsGqL5!v56x=T}>#%6ItD)yCr`0SINxe+&%<7PXiEHizy;m zJ~Ia|=ZCnevww=|)@7vIYRbF*ey#7HZt69wAu(!HBtH+=w|H{iH~>(%qT45TfWPq) zzQQ3b|LqdEYjWa?HfWWV5TR`2PheN`1@q(T=jSCrErTbkI6V3W#BO7>#{`vNhRRBE z3!n~%=$pEQwgZ2@yov3E>v+o8Q9gdqjzDFAEsfAME2^Slv`}_@Gd2!It z2IRQ$#(b(;cD^?|RtsrM-<`G%fQFdD)n!fiZ=laVF7W4(FS(sPB?=SWHS^z3g$V8g ze&Ep7R!)Vr!V&RLKaCfNHY@gXZ`Yr1xrYzxLU#@p_I^XpjF5aP*CY1}jHQrF`Nn=SsEkGz<>9>khPRKg)bR1=$G7Zks3 zhgr=5wm9R+kN0{o8tj)r{e{DbRu?YNrufGqj6fjy36@;^*ZdXh1li7af9GOE@GH1s zm8nJsnUp{GvnpN)Mp5AJ9HUM@KUj z3iv515`O((JobTP=P_jiR|R?b$EZxXy~gFSLVZ3ymR?FfVPK8hh1-zi7sc)`(qm+> z_t0Wu#KitKz>)*8j}gC;Q(@83e(DWdN)iRpvO*(>v#fl5*CE+5J75&^xl zJ-Kyg*Xr#E4@NN&A4>sRoQ+0?z{@!GWJJ@)k)_chUm6OBTs|>d61wj&d|ta8PyHv< zti8X9m7gZ|kXiZ>r7BF4gmczKzp`h_J;i2B0l;O}FaDcfzzC7!Zz5iiG%FabM&hZn z-Z%SC?nABP2e-mwNrZHWG-3skh)81oajXpyJP)tQ%%OrfG3e`9D&t~g+rQcmPPE2R zs1M3~^)W!~j+e0H-@E7~-9F6mz! zp=<1%U*F|+9q=LZ+P-jQE99B9L2L(5nb~M^LB|x>BkY#2=FBww4fFD&FUg{ELFNC$ zWcwS*$Yn|cD?rGsBmKLE#AALMwn)0?!*TU58zm`q9{VZ)~^%RX%1u-c%`{Fbd!uMu>k z0VU{@BOXrZ6msq_fL(*VsdM!4CC<233=QoVSd(9UoZu(G@)R~jq)ikl6Us`Lyf?oZ zGO$%U!6=biZnn9L4Z94#!|chXT~DN6QWekh_nuoHeo!@dIIOAP6u>K1cganemcA~7Sbi$Afo0myF`=^)rE};c?hsN)m|4MGqjDk+c#>lCq@XhHR*5GC4 zCG7lC;x5;s_aEw2N;A~GGqnzdGE4nWk9m zQWTF%+ojuApF$9+Z?!JnIhXR+h!Y?@GEon5bEw~lE1DMJi*04QA74afh&{S@;K^&Z zYZh>P%0^3M)N!*+A&y%PZRkD_R%Sau%WujNV2!(M3TztNEDrLda|xuX_RzO18qFmm zAU_d{OP!GXi+t)1=NDbjf%uI1FDCC2POu>J`U{3&v{-q$Sjc}pgogo-4sI#mGHp~H zsM!ON=E3OkFt4=k4)IL|3Cw8_5+0Tyy79p70n&l#=DJ*yafYhXHcHnrdzrxFxeh{YBC{@{6!%Ahe4W_2G5R-#vVhyl$fo#eVO_{ zKG55~qE3tX@}x<&=MsT1?@BXqo}C4}RtxO<`aAKL1#|ZV;8GhxmN}!=Im-0@Wp&pX zBA&S)&tc-cVi##zcDR1oNjIIBgqSC9)k>lo@7oUpUD$9IBVD_ao;7K)zbBb;$s^h9 zs^{L9M?(<(xLl3dY8D_h{0&KT=+mPI5#zlp+fZ?S9f@C(0WF|dwwF?6>Q%@yEu)N6 za#!(xZ$`h#vrn^9E_>@WRul(awHnAm!=&jF4E#P3`ETI*iM`<*JPU6cUC`8MnFcRC zmo;z#NEn0zhh$D}Oe2da3QfDCg=5pbRNSceDoMoYV}I5-P(6PRx5#)Jcsh<4CJ`22 zjNdk&j>Y8g950_MxZ~@BdW1L3gzNlbPX(WF_6cEOSLHin@+i^^btt7xKD@ zWeN-QA<~neCcdECrV@fRgwutVR#r}+fxI<`Y3&Iva_29-=GfhVY1~kHhOLr7!g%)& zKCxty6`EyoeZzcUk9KBH5NFlVu-i70JDqF`_o~}*3hWXQQW3?t4DmOf(tKe5aUCy{ z8rDfGn~`v%P6Zufrt-{6j$qqt2qz<95=xU7M#wMs38HPLLa}9AOJduf=rrDUayR6D z%^R6*Z|-D)o5%A0o1;3Xz#_dS!t}uSHkwn(Q>%_&j zjUU&NMXL=NeVnnkx)gSFq12P|izd>yK|qs#sF5XnLS~J){P?=I-FCU-Rmps-lPdUeUn!?bt3}ch&~FcnCc_=&;Yq4W}<)DGuryC&F`zwb=O2WO@Mt;c;Q` z08Kqj)sVF%o}=pV*`kAwFSW-r@^zQCcSg!$n>-cT5~5EH#j)qbdwb21r1ffRAC2+6+fczZLbF)742b>j^W}hd@-jYWv_EFTzM#of zvhb5@Bo_xRT@wf()xY4Y548EunF;GCz_JyRPCjO%0%W#EkjmN)X zACIJ{Yg1$|rN^3^%%8+{;?v=8HVCVS#HRa|Uvn;D-pW*(SIg(xSzyhfGOnvZaK=2xtP)FY{4)c0Z`gjTA?qcZutbOJ3Ao

    - - -### Set NPM path into Visual Studio -NPM will be usually installed under this path: -C:\Program Files (x86)\nodejs. -You need to update that path in Visual Studio 2015 under the "External Web Tools" location paths, as shown below: -

    - - -### Build the SPA app with NPM -Finally, you need to build the SPA app (TypeScript and Angular based client app) with NPM. -* Open a command-prompt window and move to the root of the SPA application (src\Web\WebSPA\eShopOnContainers.WebSPA) -* Run the command npm run build:prod as shown below: -

    - - -If you get an error like "Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 6.x", then run the command npm rebuild node-sass as in the following screenshot: - -Then, run again the npm run build:prod command that should finish with no errors. - -### Build/create the Docker images -Create the Docker images with the build-images.ps1 PowerShell script in Windows (or the build-images.sh bash script in a Mac) as explained in the main instructions at https://github.com/dotnet/eShopOnContainers/ - -### Deploy/run the Docker containers -Deploy/run the Docker containers with "docker-compose up" as explained in the main instructions at https://github.com/dotnet/eShopOnContainers/ - -### Test the SPA web application - -Test the SPA app by running the following URL in a browser: - http://localhost:5104 - -

    %5Bh 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 V`+-U3$s_dRrJ{yHm7HnV{{miSK_UPE diff --git a/img/xamarin-settings.png b/img/xamarin-settings.png deleted file mode 100644 index 4379091761f1a5be55ed0d1583124ac2028a49c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14366 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 SMt^;e;gzb+i}L4|@Bb558FU>0 diff --git a/img/xamarin/fix-hyperv-for-issue-xamarin-app-minimize-in-vs-android-emulator.png b/img/xamarin/fix-hyperv-for-issue-xamarin-app-minimize-in-vs-android-emulator.png deleted file mode 100644 index a4d0a3f499ffad58d408521c19cb47bf3e5a2eb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46506 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 - -You can install the version "Recommended For Most Users" of Node which at the moment of this writing was v6.9.3 LTS and comes with a newer version of NPM. -You can see your initial NPM version and the installed NPM version with the command -npm -v, as shown below. -

J;v;3w*jj(<0t&kZ!` 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 -Xm|~-n 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

%{x+V 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åoKGcd6GvA1ueYGR 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%0Ajj{?(%wcod8b&$(!fy6r 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 z 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 LYTPMOH1+#GXOQA( diff --git a/test/img/services-functional-tests-folder.PNG b/test/img/services-functional-tests-folder.PNG deleted file mode 100644 index b4efe946b856bb669680710326d9565beba2cb9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41410 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 diff --git a/test/img/unittestsrunning.PNG b/test/img/unittestsrunning.PNG deleted file mode 100644 index a0c28077519d071162f1954a38737f1327e83250..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63396 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 - -