diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..47a55f0 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,75 @@ +# LocalStack .NET Client Change Log + +### [v1.3.1](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.3.1) + +#### 1. New Features +- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v1.35 have been added. + - Route53Resolver + - KinesisAnalyticsV2 + - OpenSearch + - Amazon Managed Workflows for Apache Airflow (MWAA) + +#### 2. General +- Tested against LocalStack v0.14.2 container. +- AWSSDK.Core set to 3.7.9 as the minimum version. +- AWSSDK.Extensions.NETCore.Setup set to 3.7.2 as the minimum version. + + +### [v1.3.0](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.3.0) + +#### 1. New Features +- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v1.27 have been added. + - SESv2 + - EventBridge ([#14](https://github.com/localstack-dotnet/localstack-dotnet-client/pull/14)) +- Tested against LocalStack v0.13.0 container. +#### 2. Enhancements +- `useServiceUrl` parameter added to change client connection behavior. See [useServiceUrl Parameter](#useserviceurl) +- Readme and SourceLink added to Nuget packages +#### 3. Bug Fixes +- Session::RegionName configuration does not honor while creating AWS client ([#15](https://github.com/localstack-dotnet/localstack-dotnet-client/issues/15)) + +Thanks to [petertownsend](https://github.com/petertownsend) for his contribution + +### [v1.2.3](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.2.3) + +- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v1.25 have been added. + - Config Service +- .NET 6.0 support added. +- AWSSDK.Core set to 3.7.3.15 as the minimum version. +- AWSSDK.Extensions.NETCore.Setup set to 3.7.1 as the minimum version. +- Tested against LocalStack v0.13.0 container. + +### [v1.2.2](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.2.2) + +- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v1.22 have been added. + - EFS, Backup, LakeFormation, WAF, WAF V2 and QLDB Session +- AWSSDK.Core set to 3.7.1 as the minimum version. +- Tested against LocalStack v0.12.16 container. + +### [v1.2](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.2.0) + +- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v1.20 have been added. + - IoTAnalytics, IoT Events, IoT Events Data, IoT Wireless, IoT Data Plane, IoT Jobs Data Plane, Support, Neptune, DocDB, ServiceDiscovery, ServerlessApplicationRepository, AppConfig, Cost Explorer, MediaConvert, Resource Groups Tagging API, Resource Groups +- AWSSDK.Core set to 3.7.0 as the minimum version. +- Obsolete methods removed. +- New alternate AddAWSServiceLocalStack method added to prevent mix up with AddAWSService (for LocalStack.Client.Extension v1.1.0). +- Tested against LocalStack v0.12.10 container. + +### [v1.1](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.1.0) + +- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v1.10 have been added. + - Transfer, ACM, CodeCommit, Kinesis Analytics, Amplify, Application Auto Scaling, Kafka, Timestream Query, Timestream Write, Timestream Write, S3 Control, Elastic Load Balancing v2, Redshift Data +- .NET 5.0 support added. +- AWSSDK.Core set to 3.5.0 as the minimum version. +- Tested against LocalStack v0.12.07 container. + +### [v1.0](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.0.0) + +- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v0.23 have been added. + - ElastiCache, Kms, Emr, Ecs, Eks, XRay, ElasticBeanstalk, AppSync, CloudFront, Athena, Glue, Api Gateway V2, RdsData, SageMaker, SageMakerRuntime, Ecr, Qldb +- .netcore2.2 support removed since Microsoft depracated it. .netcore3.1 support added. +- AWSSDK.Core set to 3.3.106.5 as the minimum version. + +### [v0.8.0.163](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v0.8.0.163) + +- First release. \ No newline at end of file diff --git a/README.md b/README.md index fbe26d7..23514c4 100644 --- a/README.md +++ b/README.md @@ -440,64 +440,7 @@ Linux ## Changelog -### [v1.3.0](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.3.0) - -#### 1. New Features -- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v1.27 have been added. - - SESv2 - - EventBridge ([#14](https://github.com/localstack-dotnet/localstack-dotnet-client/pull/14)) -- Tested against LocalStack v0.13.0 container. -#### 2. Enhancements -- `useServiceUrl` parameter added to change client connection behavior. See [useServiceUrl Parameter](#useserviceurl) -- Readme and SourceLink added to Nuget packages -#### 3. Bug Fixes -- Session::RegionName configuration does not honor while creating AWS client ([#15](https://github.com/localstack-dotnet/localstack-dotnet-client/issues/15)) - -Thanks to [petertownsend](https://github.com/petertownsend) for his contribution - -### [v1.2.3](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.2.3) - -- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v1.25 have been added. - - Config Service -- .NET 6.0 support added. -- AWSSDK.Core set to 3.7.3.15 as the minimum version. -- AWSSDK.Extensions.NETCore.Setup set to 3.7.1 as the minimum version. -- Tested against LocalStack v0.13.0 container. - -### [v1.2.2](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.2.2) - -- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v1.22 have been added. - - EFS, Backup, LakeFormation, WAF, WAF V2 and QLDB Session -- AWSSDK.Core set to 3.7.1 as the minimum version. -- Tested against LocalStack v0.12.16 container. - -### [v1.2](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.2.0) - -- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v1.20 have been added. - - IoTAnalytics, IoT Events, IoT Events Data, IoT Wireless, IoT Data Plane, IoT Jobs Data Plane, Support, Neptune, DocDB, ServiceDiscovery, ServerlessApplicationRepository, AppConfig, Cost Explorer, MediaConvert, Resource Groups Tagging API, Resource Groups -- AWSSDK.Core set to 3.7.0 as the minimum version. -- Obsolete methods removed. -- New alternate AddAWSServiceLocalStack method added to prevent mix up with AddAWSService (for LocalStack.Client.Extension v1.1.0). -- Tested against LocalStack v0.12.10 container. - -### [v1.1](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.1.0) - -- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v1.10 have been added. - - Transfer, ACM, CodeCommit, Kinesis Analytics, Amplify, Application Auto Scaling, Kafka, Timestream Query, Timestream Write, Timestream Write, S3 Control, Elastic Load Balancing v2, Redshift Data -- .NET 5.0 support added. -- AWSSDK.Core set to 3.5.0 as the minimum version. -- Tested against LocalStack v0.12.07 container. - -### [v1.0](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.0.0) - -- New endpoints in the official [Localstack Python Client](https://github.com/localstack/localstack-python-client) v0.23 have been added. - - ElastiCache, Kms, Emr, Ecs, Eks, XRay, ElasticBeanstalk, AppSync, CloudFront, Athena, Glue, Api Gateway V2, RdsData, SageMaker, SageMakerRuntime, Ecr, Qldb -- .netcore2.2 support removed since Microsoft depracated it. .netcore3.1 support added. -- AWSSDK.Core set to 3.3.106.5 as the minimum version. - -### [v0.8.0.163](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v0.8.0.163) - -- First release. +Please refer to [`CHANGELOG.md`](CHANGELOG.md) to see the complete list of changes for each release. ## License diff --git a/build/LocalStack.Build/GlobalUsings.cs b/build/LocalStack.Build/GlobalUsings.cs index cee24ea..61987d7 100644 --- a/build/LocalStack.Build/GlobalUsings.cs +++ b/build/LocalStack.Build/GlobalUsings.cs @@ -1,27 +1,29 @@ -global using System; -global using System.IO; -global using System.Collections.Generic; -global using System.Collections.Immutable; -global using System.Linq; -global using System.Text; -global using System.Text.RegularExpressions; - -global using Cake.Common; +global using Cake.Common; +global using Cake.Common.Diagnostics; global using Cake.Common.IO; global using Cake.Common.IO.Paths; -global using Cake.Common.Tools.NuGet; -global using Cake.Common.Tools.NuGet.Install; -global using Cake.Common.Diagnostics; -global using Cake.Common.Tools.DotNetCore.NuGet.Push; +global using Cake.Common.Tools.DotNet.MSBuild; global using Cake.Common.Tools.DotNetCore; global using Cake.Common.Tools.DotNetCore.Build; global using Cake.Common.Tools.DotNetCore.MSBuild; +global using Cake.Common.Tools.DotNetCore.NuGet.Push; global using Cake.Common.Tools.DotNetCore.Pack; global using Cake.Common.Tools.DotNetCore.Test; +global using Cake.Common.Tools.NuGet; +global using Cake.Common.Tools.NuGet.Install; global using Cake.Common.Tools.NuGet.List; global using Cake.Core; global using Cake.Core.IO; +global using Cake.Docker; global using Cake.Frosting; global using LocalStack.Build; -global using LocalStack.Build.Models; \ No newline at end of file +global using LocalStack.Build.Models; + +global using System; +global using System.Collections.Generic; +global using System.Collections.Immutable; +global using System.IO; +global using System.Linq; +global using System.Text; +global using System.Text.RegularExpressions; \ No newline at end of file diff --git a/build/LocalStack.Build/LocalStack.Build.csproj b/build/LocalStack.Build/LocalStack.Build.csproj index e0c8120..7780e66 100644 --- a/build/LocalStack.Build/LocalStack.Build.csproj +++ b/build/LocalStack.Build/LocalStack.Build.csproj @@ -7,7 +7,7 @@ CA1303 - - + + diff --git a/build/LocalStack.Build/Program.cs b/build/LocalStack.Build/Program.cs index f3a4122..99b5cf3 100644 --- a/build/LocalStack.Build/Program.cs +++ b/build/LocalStack.Build/Program.cs @@ -1,6 +1,4 @@ -using Cake.Docker; - -return new CakeHost() +return new CakeHost() .UseContext() .Run(args); diff --git a/build/scripts/packageUpdate.ps1 b/build/scripts/packageUpdate.ps1 new file mode 100644 index 0000000..48318fe --- /dev/null +++ b/build/scripts/packageUpdate.ps1 @@ -0,0 +1,17 @@ +$regex = 'PackageReference Include="([^"]*)" Version="([^"]*)"' + +ForEach ($file in get-childitem . -recurse | where {$_.extension -like "*proj"}) +{ + $packages = Get-Content $file.FullName | + select-string -pattern $regex -AllMatches | + ForEach-Object {$_.Matches} | + ForEach-Object {$_.Groups[1].Value.ToString()}| + sort -Unique + + ForEach ($package in $packages) + { + write-host "Update $file package :$package" -foreground 'magenta' + $fullName = $file.FullName + iex "dotnet add $fullName package $package" + } +} \ No newline at end of file diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 53b7949..f707cd2 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -5,6 +5,6 @@ LocalStack.NET https://github.com/localstack-dotnet/localstack-dotnet-client localstack-dotnet-square.png - 1.3 + 1.3.1 \ No newline at end of file diff --git a/src/LocalStack.Client.Extensions/LocalStack.Client.Extensions.csproj b/src/LocalStack.Client.Extensions/LocalStack.Client.Extensions.csproj index f2e01ac..99bf263 100644 --- a/src/LocalStack.Client.Extensions/LocalStack.Client.Extensions.csproj +++ b/src/LocalStack.Client.Extensions/LocalStack.Client.Extensions.csproj @@ -6,7 +6,7 @@ LocalStack.Client.Extensions LocalStack.Client.Extensions latest - 1.1.2 + 1.1.3 LocalStack.NET Client @@ -25,7 +25,7 @@ - + diff --git a/src/LocalStack.Client.Extensions/README.md b/src/LocalStack.Client.Extensions/README.md index a3e73ea..fbe26d7 100644 --- a/src/LocalStack.Client.Extensions/README.md +++ b/src/LocalStack.Client.Extensions/README.md @@ -394,7 +394,7 @@ ServiceProvider serviceProvider = collection.BuildServiceProvider(); var amazonS3Client = serviceProvider.GetRequiredService(); ``` -See [useServiceUrl] parameter usage (#standalone-useserviceurl) +See [useServiceUrl](#standalone-useserviceurl) parameter usage. ## Developing diff --git a/src/LocalStack.Client/Enums/AwsServiceEndpointMetadata.cs b/src/LocalStack.Client/Enums/AwsServiceEndpointMetadata.cs index 34dd3f4..72d394a 100644 --- a/src/LocalStack.Client/Enums/AwsServiceEndpointMetadata.cs +++ b/src/LocalStack.Client/Enums/AwsServiceEndpointMetadata.cs @@ -11,6 +11,7 @@ public class AwsServiceEndpointMetadata public static readonly AwsServiceEndpointMetadata DynamoDb = new("DynamoDB", "dynamodb", CommonEndpointPattern, 4569, AwsServiceEnum.DynamoDb); public static readonly AwsServiceEndpointMetadata DynamoDbStreams = new("DynamoDB Streams", "dynamodbstreams", CommonEndpointPattern, 4570, AwsServiceEnum.DynamoDbStreams); public static readonly AwsServiceEndpointMetadata ElasticSearch = new("Elasticsearch Service", "elasticsearch", CommonEndpointPattern, 4571, AwsServiceEnum.ElasticSearch); + public static readonly AwsServiceEndpointMetadata OpenSearch = new("OpenSearch", "opensearch", CommonEndpointPattern, 4571, AwsServiceEnum.OpenSearch); public static readonly AwsServiceEndpointMetadata S3 = new("S3", "s3", CommonEndpointPattern, 4572, AwsServiceEnum.S3); public static readonly AwsServiceEndpointMetadata Firehose = new("Firehose", "firehose", CommonEndpointPattern, 4573, AwsServiceEnum.Firehose); public static readonly AwsServiceEndpointMetadata Lambda = new("Lambda", "lambda", CommonEndpointPattern, 4574, AwsServiceEnum.Lambda); @@ -22,6 +23,7 @@ public class AwsServiceEndpointMetadata public static readonly AwsServiceEndpointMetadata Ses = new("SES", "ses", CommonEndpointPattern, 4579, AwsServiceEnum.Ses); public static readonly AwsServiceEndpointMetadata Sesv2 = new("SESv2", "sesv2", CommonEndpointPattern, 4579, AwsServiceEnum.Sesv2); public static readonly AwsServiceEndpointMetadata Route53 = new("Route 53", "route53", CommonEndpointPattern, 4580, AwsServiceEnum.Route53); + public static readonly AwsServiceEndpointMetadata Route53Resolver = new("Route53Resolver", "route53resolver", CommonEndpointPattern, 4580, AwsServiceEnum.Route53Resolver); public static readonly AwsServiceEndpointMetadata CloudFormation = new("CloudFormation", "cloudformation", CommonEndpointPattern, 4581, AwsServiceEnum.CloudFormation); public static readonly AwsServiceEndpointMetadata CloudWatch = new("CloudWatch", "cloudwatch", CommonEndpointPattern, 4582, AwsServiceEnum.CloudWatch); public static readonly AwsServiceEndpointMetadata Ssm = new("SSM", "ssm", CommonEndpointPattern, 4583, AwsServiceEnum.Ssm); @@ -73,6 +75,7 @@ public class AwsServiceEndpointMetadata public static readonly AwsServiceEndpointMetadata Acm = new("ACM", "acm", CommonEndpointPattern, 4619, AwsServiceEnum.Acm); public static readonly AwsServiceEndpointMetadata CodeCommit = new("CodeCommit", "codecommit", CommonEndpointPattern, 4620, AwsServiceEnum.CodeCommit); public static readonly AwsServiceEndpointMetadata KinesisAnalytics = new("Kinesis Analytics", "kinesisanalytics", CommonEndpointPattern, 4621, AwsServiceEnum.KinesisAnalytics); + public static readonly AwsServiceEndpointMetadata KinesisAnalyticsV2 = new("Kinesis Analytics V2", "kinesisanalyticsv2", CommonEndpointPattern, 4621, AwsServiceEnum.KinesisAnalyticsV2); public static readonly AwsServiceEndpointMetadata Amplify = new("Amplify", "amplify", CommonEndpointPattern, 4622, AwsServiceEnum.Amplify); public static readonly AwsServiceEndpointMetadata ApplicationAutoscaling = new("Application Auto Scaling", "application-autoscaling", CommonEndpointPattern, 4623, AwsServiceEnum.ApplicationAutoscaling); public static readonly AwsServiceEndpointMetadata Kafka = new("Kafka", "kafka", CommonEndpointPattern, 4624, AwsServiceEnum.Kafka); @@ -97,17 +100,18 @@ public class AwsServiceEndpointMetadata public static readonly AwsServiceEndpointMetadata Waf = new("WAF", "waf", CommonEndpointPattern, 4640, AwsServiceEnum.Waf); public static readonly AwsServiceEndpointMetadata WafV2 = new("WAFV2", "wafv2", CommonEndpointPattern, 4640, AwsServiceEnum.WafV2); public static readonly AwsServiceEndpointMetadata ConfigService = new("Config Service", "config", CommonEndpointPattern, 4641, AwsServiceEnum.ConfigService); + public static readonly AwsServiceEndpointMetadata Mwaa = new("MWAA", "mwaa", CommonEndpointPattern, 4642, AwsServiceEnum.Mwaa); public static readonly AwsServiceEndpointMetadata EventBridge = new("EventBridge", "eventbridge", CommonEndpointPattern, 4587, AwsServiceEnum.EventBridge); public static readonly AwsServiceEndpointMetadata[] All = { - ApiGateway, ApiGatewayV2, Kinesis, DynamoDb, DynamoDbStreams, ElasticSearch, S3, Firehose, Lambda, Sns, Sqs, Redshift, RedshiftData, Es, Ses, Sesv2, Route53, CloudFormation, CloudWatch, - Ssm, SecretsManager, StepFunctions, Logs, Events, Elb, Iot, IoTAnalytics, IoTEvents, IoTEventsData, IoTWireless, IoTDataPlane, IoTJobsDataPlane, CognitoIdp, CognitoIdentity, Sts, + ApiGateway, ApiGatewayV2, Kinesis, DynamoDb, DynamoDbStreams, ElasticSearch, OpenSearch, S3, Firehose, Lambda, Sns, Sqs, Redshift, RedshiftData, Es, Ses, Sesv2, Route53, Route53Resolver, CloudFormation, + CloudWatch, Ssm, SecretsManager, StepFunctions, Logs, Events, Elb, Iot, IoTAnalytics, IoTEvents, IoTEventsData, IoTWireless, IoTDataPlane, IoTJobsDataPlane, CognitoIdp, CognitoIdentity, Sts, Iam, Rds, RdsData, CloudSearch, Swf, Ec2, ElastiCache, Kms, Emr, Ecs, Eks, XRay, ElasticBeanstalk, AppSync, CloudFront, Athena, Glue, SageMaker, SageMakerRuntime, Ecr, Qldb, QldbSession, - CloudTrail, Glacier, Batch, Organizations, AutoScaling, MediaStore, MediaStoreData, Transfer, Acm, CodeCommit, KinesisAnalytics, Amplify, ApplicationAutoscaling, Kafka, ApiGatewayManagementApi, + CloudTrail, Glacier, Batch, Organizations, AutoScaling, MediaStore, MediaStoreData, Transfer, Acm, CodeCommit, KinesisAnalytics, KinesisAnalyticsV2, Amplify, ApplicationAutoscaling, Kafka, ApiGatewayManagementApi, TimeStreamQuery, TimeStreamWrite, S3Control, ElbV2, Support, Neptune, DocDb, ServiceDiscovery, ServerlessApplicationRepository, AppConfig, CostExplorer, MediaConvert, ResourceGroupsTaggingApi, - ResourceGroups, Efs, Backup, LakeFormation, Waf, WafV2, ConfigService, EventBridge + ResourceGroups, Efs, Backup, LakeFormation, Waf, WafV2, ConfigService, Mwaa, EventBridge }; private AwsServiceEndpointMetadata() diff --git a/src/LocalStack.Client/Enums/AwsServiceEnum.cs b/src/LocalStack.Client/Enums/AwsServiceEnum.cs index e4c5375..f08758f 100644 --- a/src/LocalStack.Client/Enums/AwsServiceEnum.cs +++ b/src/LocalStack.Client/Enums/AwsServiceEnum.cs @@ -8,6 +8,7 @@ public enum AwsServiceEnum DynamoDb, DynamoDbStreams, ElasticSearch, + OpenSearch, S3, Firehose, Lambda, @@ -19,6 +20,7 @@ public enum AwsServiceEnum Ses, Sesv2, Route53, + Route53Resolver, CloudFormation, CloudWatch, Ssm, @@ -70,6 +72,7 @@ public enum AwsServiceEnum Acm, CodeCommit, KinesisAnalytics, + KinesisAnalyticsV2, Amplify, ApplicationAutoscaling, Kafka, @@ -94,5 +97,6 @@ public enum AwsServiceEnum Waf, WafV2, ConfigService, + Mwaa, EventBridge } \ No newline at end of file diff --git a/src/LocalStack.Client/LocalStack.Client.csproj b/src/LocalStack.Client/LocalStack.Client.csproj index 0f00c9c..278777d 100644 --- a/src/LocalStack.Client/LocalStack.Client.csproj +++ b/src/LocalStack.Client/LocalStack.Client.csproj @@ -24,7 +24,7 @@ - + diff --git a/src/LocalStack.Client/README.md b/src/LocalStack.Client/README.md index a3e73ea..fbe26d7 100644 --- a/src/LocalStack.Client/README.md +++ b/src/LocalStack.Client/README.md @@ -394,7 +394,7 @@ ServiceProvider serviceProvider = collection.BuildServiceProvider(); var amazonS3Client = serviceProvider.GetRequiredService(); ``` -See [useServiceUrl] parameter usage (#standalone-useserviceurl) +See [useServiceUrl](#standalone-useserviceurl) parameter usage. ## Developing diff --git a/tests/LocalStack.Client.Extensions.Tests/LocalStack.Client.Extensions.Tests.csproj b/tests/LocalStack.Client.Extensions.Tests/LocalStack.Client.Extensions.Tests.csproj index 557993d..c71ea49 100644 --- a/tests/LocalStack.Client.Extensions.Tests/LocalStack.Client.Extensions.Tests.csproj +++ b/tests/LocalStack.Client.Extensions.Tests/LocalStack.Client.Extensions.Tests.csproj @@ -7,9 +7,9 @@ - - - + + + @@ -21,9 +21,9 @@ runtime; build; native; contentfiles; analyzers - + - + diff --git a/tests/LocalStack.Client.Functional.Tests/Fixtures/LocalStackFixture.cs b/tests/LocalStack.Client.Functional.Tests/Fixtures/LocalStackFixture.cs index d0c0e12..9c7efea 100644 --- a/tests/LocalStack.Client.Functional.Tests/Fixtures/LocalStackFixture.cs +++ b/tests/LocalStack.Client.Functional.Tests/Fixtures/LocalStackFixture.cs @@ -7,8 +7,8 @@ public class LocalStackFixture : IAsyncLifetime public LocalStackFixture() { ITestcontainersBuilder localStackBuilder = new TestcontainersBuilder() - .WithName($"LocalStack-0.13.0-{DateTime.Now.Ticks}") - .WithImage("localstack/localstack:0.13.0") + .WithName($"LocalStack-0.14.2-{DateTime.Now.Ticks}") + .WithImage("localstack/localstack:0.14.2") .WithCleanUp(true) .WithEnvironment("SERVICES", "s3,dynamodb,sqs,sns") .WithEnvironment("DOCKER_HOST", "unix:///var/run/docker.sock") diff --git a/tests/LocalStack.Client.Functional.Tests/LocalStack.Client.Functional.Tests.csproj b/tests/LocalStack.Client.Functional.Tests/LocalStack.Client.Functional.Tests.csproj index af3e900..ba53612 100644 --- a/tests/LocalStack.Client.Functional.Tests/LocalStack.Client.Functional.Tests.csproj +++ b/tests/LocalStack.Client.Functional.Tests/LocalStack.Client.Functional.Tests.csproj @@ -17,10 +17,10 @@ - - + + - + @@ -31,17 +31,17 @@ all runtime; build; native; contentfiles; analyzers - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + diff --git a/tests/LocalStack.Client.Integration.Tests/AssertAmazonClient.cs b/tests/LocalStack.Client.Integration.Tests/AssertAmazonClient.cs index b5c338a..c729422 100644 --- a/tests/LocalStack.Client.Integration.Tests/AssertAmazonClient.cs +++ b/tests/LocalStack.Client.Integration.Tests/AssertAmazonClient.cs @@ -10,7 +10,7 @@ public static void AssertClientConfiguration(AmazonServiceClient amazonServiceCl if (clientConfig.ServiceURL != null) { - Assert.Equal($"http://{Constants.LocalStackHost}:{Constants.EdgePort}", clientConfig.ServiceURL); + Assert.Equal($"http://{Constants.LocalStackHost}:{Constants.EdgePort}/", clientConfig.ServiceURL); } else if(clientConfig.ServiceURL == null) { diff --git a/tests/LocalStack.Client.Integration.Tests/CreateClientByImplementationTests.cs b/tests/LocalStack.Client.Integration.Tests/CreateClientByImplementationTests.cs index a315d2c..3fc2950 100644 --- a/tests/LocalStack.Client.Integration.Tests/CreateClientByImplementationTests.cs +++ b/tests/LocalStack.Client.Integration.Tests/CreateClientByImplementationTests.cs @@ -57,6 +57,15 @@ public void Should_Able_To_Create_AmazonElasticsearchClient() AssertAmazonClient.AssertClientConfiguration(amazonElasticsearchClient); } + [Fact] + public void Should_Able_To_Create_AmazonOpenSearchServiceClient() + { + var amazonOpenSearchServiceClient = Session.CreateClientByImplementation(); + + Assert.NotNull(amazonOpenSearchServiceClient); + AssertAmazonClient.AssertClientConfiguration(amazonOpenSearchServiceClient); + } + [Fact] public void Should_Able_To_Create_AmazonEventBridgeClient() { @@ -138,6 +147,15 @@ public void Should_Able_To_Create_AmazonRoute53Client() AssertAmazonClient.AssertClientConfiguration(amazonRoute53Client); } + [Fact] + public void Should_Able_To_Create_AmazonRoute53ResolverClient() + { + var amazonRoute53ResolverClient = Session.CreateClientByImplementation(); + + Assert.NotNull(amazonRoute53ResolverClient); + AssertAmazonClient.AssertClientConfiguration(amazonRoute53ResolverClient); + } + [Fact] public void Should_Able_To_Create_AmazonCloudFormationClient() { @@ -663,6 +681,15 @@ public void Should_Able_To_Create_AmazonKinesisAnalyticsClient() AssertAmazonClient.AssertClientConfiguration(amazonKinesisAnalyticsClient); } + [Fact] + public void Should_Able_To_Create_AmazonKinesisAnalyticsV2Client() + { + var kinesisAnalyticsV2Client = Session.CreateClientByImplementation(); + + Assert.NotNull(kinesisAnalyticsV2Client); + AssertAmazonClient.AssertClientConfiguration(kinesisAnalyticsV2Client); + } + [Fact] public void Should_Able_To_Create_AmazonAmplifyClient() { @@ -878,4 +905,13 @@ public void Should_Able_To_Create_AmazonConfigServiceClient() Assert.NotNull(amazonConfigServiceClient); AssertAmazonClient.AssertClientConfiguration(amazonConfigServiceClient); } + + [Fact] + public void Should_Able_To_Create_AmazonMWAAClient() + { + var amazonMwaaClient = Session.CreateClientByImplementation(); + + Assert.NotNull(amazonMwaaClient); + AssertAmazonClient.AssertClientConfiguration(amazonMwaaClient); + } } diff --git a/tests/LocalStack.Client.Integration.Tests/CreateClientByInterfaceTests.cs b/tests/LocalStack.Client.Integration.Tests/CreateClientByInterfaceTests.cs index 95ecb40..53f0987 100644 --- a/tests/LocalStack.Client.Integration.Tests/CreateClientByInterfaceTests.cs +++ b/tests/LocalStack.Client.Integration.Tests/CreateClientByInterfaceTests.cs @@ -57,6 +57,15 @@ public void Should_Able_To_Create_AmazonElasticsearchClient() AssertAmazonClient.AssertClientConfiguration(amazonElasticsearchClient); } + [Fact] + public void Should_Able_To_Create_AmazonOpenSearchServiceClient() + { + AmazonServiceClient amazonOpenSearchServiceClient = Session.CreateClientByInterface(); + + Assert.NotNull(amazonOpenSearchServiceClient); + AssertAmazonClient.AssertClientConfiguration(amazonOpenSearchServiceClient); + } + [Fact] public void Should_Able_To_Create_AmazonEventBridgeClient() { @@ -138,6 +147,15 @@ public void Should_Able_To_Create_AmazonRoute53Client() AssertAmazonClient.AssertClientConfiguration(amazonRoute53Client); } + [Fact] + public void Should_Able_To_Create_AmazonRoute53ResolverClient() + { + AmazonServiceClient amazonRoute53ResolverClient = Session.CreateClientByInterface(); + + Assert.NotNull(amazonRoute53ResolverClient); + AssertAmazonClient.AssertClientConfiguration(amazonRoute53ResolverClient); + } + [Fact] public void Should_Able_To_Create_AmazonCloudFormationClient() { @@ -663,6 +681,15 @@ public void Should_Able_To_Create_AmazonKinesisAnalyticsClient() AssertAmazonClient.AssertClientConfiguration(amazonKinesisAnalyticsClient); } + [Fact] + public void Should_Able_To_Create_AmazonKinesisAnalyticsV2Client() + { + AmazonServiceClient kinesisAnalyticsV2Client = Session.CreateClientByInterface(); + + Assert.NotNull(kinesisAnalyticsV2Client); + AssertAmazonClient.AssertClientConfiguration(kinesisAnalyticsV2Client); + } + [Fact] public void Should_Able_To_Create_AmazonAmplifyClient() { @@ -878,4 +905,13 @@ public void Should_Able_To_Create_AmazonConfigServiceClient() Assert.NotNull(amazonConfigServiceClient); AssertAmazonClient.AssertClientConfiguration(amazonConfigServiceClient); } + + [Fact] + public void Should_Able_To_Create_AmazonMWAAClient() + { + AmazonServiceClient amazonMwaaClient = Session.CreateClientByInterface(); + + Assert.NotNull(amazonMwaaClient); + AssertAmazonClient.AssertClientConfiguration(amazonMwaaClient); + } } diff --git a/tests/LocalStack.Client.Integration.Tests/GlobalUsings.cs b/tests/LocalStack.Client.Integration.Tests/GlobalUsings.cs index aabc346..74f9151 100644 --- a/tests/LocalStack.Client.Integration.Tests/GlobalUsings.cs +++ b/tests/LocalStack.Client.Integration.Tests/GlobalUsings.cs @@ -1,7 +1,4 @@ -global using System; -global using System.Reflection; - -global using Amazon; +global using Amazon; global using Amazon.Amplify; global using Amazon.APIGateway; global using Amazon.ApiGatewayManagementApi; @@ -52,13 +49,16 @@ global using Amazon.Kafka; global using Amazon.KeyManagementService; global using Amazon.KinesisAnalytics; +global using Amazon.KinesisAnalyticsV2; global using Amazon.KinesisFirehose; global using Amazon.LakeFormation; global using Amazon.Lambda; global using Amazon.MediaConvert; global using Amazon.MediaStore; global using Amazon.MediaStoreData; +global using Amazon.MWAA; global using Amazon.Neptune; +global using Amazon.OpenSearchService; global using Amazon.Organizations; global using Amazon.QLDB; global using Amazon.RDS; @@ -68,6 +68,7 @@ global using Amazon.ResourceGroups; global using Amazon.ResourceGroupsTaggingAPI; global using Amazon.Route53; +global using Amazon.Route53Resolver; global using Amazon.Runtime; global using Amazon.S3; global using Amazon.S3Control; @@ -91,9 +92,12 @@ global using Amazon.WAFV2; global using Amazon.XRay; -global using LocalStack.Client.Options; global using LocalStack.Client.Contracts; global using LocalStack.Client.Exceptions; global using LocalStack.Client.Models; +global using LocalStack.Client.Options; + +global using System; +global using System.Reflection; global using Xunit; diff --git a/tests/LocalStack.Client.Integration.Tests/LocalStack.Client.Integration.Tests.csproj b/tests/LocalStack.Client.Integration.Tests/LocalStack.Client.Integration.Tests.csproj index 7bd6eb6..da3f17d 100644 --- a/tests/LocalStack.Client.Integration.Tests/LocalStack.Client.Integration.Tests.csproj +++ b/tests/LocalStack.Client.Integration.Tests/LocalStack.Client.Integration.Tests.csproj @@ -7,97 +7,101 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -111,7 +115,7 @@ - + diff --git a/tests/LocalStack.Client.Tests/LocalStack.Client.Tests.csproj b/tests/LocalStack.Client.Tests/LocalStack.Client.Tests.csproj index db5edab..7133c0d 100644 --- a/tests/LocalStack.Client.Tests/LocalStack.Client.Tests.csproj +++ b/tests/LocalStack.Client.Tests/LocalStack.Client.Tests.csproj @@ -7,8 +7,8 @@ - - + + @@ -20,11 +20,11 @@ runtime; build; native; contentfiles; analyzers - + - + diff --git a/tests/sandboxes/LocalStack.Client.Sandbox.DependencyInjection/LocalStack.Client.Sandbox.DependencyInjection.csproj b/tests/sandboxes/LocalStack.Client.Sandbox.DependencyInjection/LocalStack.Client.Sandbox.DependencyInjection.csproj index 13492a8..115ced2 100644 --- a/tests/sandboxes/LocalStack.Client.Sandbox.DependencyInjection/LocalStack.Client.Sandbox.DependencyInjection.csproj +++ b/tests/sandboxes/LocalStack.Client.Sandbox.DependencyInjection/LocalStack.Client.Sandbox.DependencyInjection.csproj @@ -23,12 +23,12 @@ - - - - - - + + + + + + diff --git a/tests/sandboxes/LocalStack.Client.Sandbox.WithGenericHost/LocalStack.Client.Sandbox.WithGenericHost.csproj b/tests/sandboxes/LocalStack.Client.Sandbox.WithGenericHost/LocalStack.Client.Sandbox.WithGenericHost.csproj index 2dc1a34..8d2b054 100644 --- a/tests/sandboxes/LocalStack.Client.Sandbox.WithGenericHost/LocalStack.Client.Sandbox.WithGenericHost.csproj +++ b/tests/sandboxes/LocalStack.Client.Sandbox.WithGenericHost/LocalStack.Client.Sandbox.WithGenericHost.csproj @@ -17,12 +17,12 @@ - - - - - - + + + + + + diff --git a/tests/sandboxes/LocalStack.Client.Sandbox/LocalStack.Client.Sandbox.csproj b/tests/sandboxes/LocalStack.Client.Sandbox/LocalStack.Client.Sandbox.csproj index 5268f49..a62a810 100644 --- a/tests/sandboxes/LocalStack.Client.Sandbox/LocalStack.Client.Sandbox.csproj +++ b/tests/sandboxes/LocalStack.Client.Sandbox/LocalStack.Client.Sandbox.csproj @@ -8,7 +8,7 @@ - + diff --git a/tests/sandboxes/LocalStack.Container/Program.cs b/tests/sandboxes/LocalStack.Container/Program.cs index bb39494..8b3af81 100644 --- a/tests/sandboxes/LocalStack.Container/Program.cs +++ b/tests/sandboxes/LocalStack.Container/Program.cs @@ -8,8 +8,8 @@ Console.ReadLine(); ITestcontainersBuilder localStackBuilder = new TestcontainersBuilder() - .WithName("LocalStack-0.13.0") - .WithImage("localstack/localstack:0.13.0") + .WithName("LocalStack-0.14.2") + .WithImage("localstack/localstack:0.14.2") .WithCleanUp(true) .WithEnvironment("DEFAULT_REGION", "eu-central-1") .WithEnvironment("SERVICES", "iam,lambda,dynamodb,apigateway,s3,sns,cloudformation,cloudwatch,sts")