Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add AWS CDK support #2225

Open
wants to merge 38 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
b97fd81
Initial AWS CDK Support
Apr 12, 2024
a3ecee3
Add documentation and additional resources
Apr 30, 2024
6164785
Make properties optional
Apr 30, 2024
77d56cb
Add Amazon Kinesis streams
May 1, 2024
306e022
Merge branch 'main' into vlesierse/aws-cdk
May 8, 2024
756fea0
Add bucket notifications and topic subscriptions
May 8, 2024
be9136a
Adding this for extension methods
May 8, 2024
925b358
Fix await stack resource
vlesierse May 15, 2024
6120522
Allow multiple reference to same construct resource
vlesierse May 15, 2024
953c11e
Merge branch 'main' into vlesierse/aws-cdk
vlesierse May 22, 2024
e74cbf0
Refactoring after code review
May 29, 2024
f54ee37
Cleanup
May 29, 2024
4063577
Changes after code review
May 30, 2024
c606bb3
Provide guidance for missing CDK bootstrap
Jun 10, 2024
4cf0b37
Merge AWSCDK in AWS playground
Jun 11, 2024
4b6ae98
Merge branch 'main' into vlesierse/aws-cdk
Jun 12, 2024
98feb7e
Merge branch 'main' into vlesierse/aws-cdk
Jun 13, 2024
6ff3a61
Changes after code review
Jun 13, 2024
9668b80
Remove support restrictions
Jun 13, 2024
38433e6
Simplified construct/stack outputs
Jun 13, 2024
e691101
Include output changes
Jun 13, 2024
2b25719
Introduce new provisioners
Jun 19, 2024
9f71622
CloudFormation provisioners
vlesierse Jun 20, 2024
2a4d1e9
Refactor CloudFormation executor
Jun 20, 2024
77ef4ec
Add AWS CDK Provisioning
vlesierse Jun 21, 2024
e7e50d5
Change manifest to include the right stack name
vlesierse Jun 21, 2024
bc5daa1
Fix manifest values
vlesierse Jun 21, 2024
6850b46
Support dev environments with spaces
vlesierse Jun 21, 2024
29cebe5
Add tests for CDK resources
Jun 21, 2024
95f55af
Add CDK documentation to README.md
Jun 21, 2024
9329a9c
Changes after code review
Jun 23, 2024
821a6cf
Changes after code review
Jul 5, 2024
910e762
Additional changes after code review
Jul 5, 2024
dd45fb9
Refactor and simplify CDK stack provisioning
Jul 6, 2024
98e94ba
Merge branch 'main' into vlesierse/aws-cdk
Jul 7, 2024
6ce231a
Remove AWSSDK SSO
Jul 7, 2024
4e9338a
Fix build
Jul 8, 2024
04f0571
Merge branch 'main' into vlesierse/aws-cdk
Jul 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Make properties optional
  • Loading branch information
Vincent Lesierse committed Apr 30, 2024
commit 616478504e1e08a743f519cc297d5809f971fc1b
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public static class CognitoResourceExtensions
/// <param name="builder">The builder for the distributed application.</param>
/// <param name="name">The name of the resource.</param>
/// <param name="props">The properties of the userpool.</param>
public static IResourceBuilder<IConstructResource<UserPool>> AddCognitoUserPool(this IResourceBuilder<IResourceWithConstruct> builder, string name, IUserPoolProps props)
public static IResourceBuilder<IConstructResource<UserPool>> AddCognitoUserPool(this IResourceBuilder<IResourceWithConstruct> builder, string name, IUserPoolProps? props = null)
{
return builder.AddConstruct(name, scope => new UserPool(scope, name, props));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static class S3ResourceExtensions
/// <param name="builder">The builder for the distributed application.</param>
/// <param name="name">The name of the resource.</param>
/// <param name="props">The properties of the bucket.</param>
public static IResourceBuilder<IConstructResource<Bucket>> AddS3Bucket(this IResourceBuilder<IResourceWithConstruct> builder, string name, IBucketProps props)
public static IResourceBuilder<IConstructResource<Bucket>> AddS3Bucket(this IResourceBuilder<IResourceWithConstruct> builder, string name, IBucketProps? props = null)
{
return builder.AddConstruct(name, scope => new Bucket(scope, name, props));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static class SNSResourceExtensions
/// <param name="builder">The builder for the distributed application.</param>
/// <param name="name">The name of the resource.</param>
/// <param name="props">The properties of the topic.</param>
public static IResourceBuilder<IConstructResource<Topic>> AddSNSTopic(this IResourceBuilder<IResourceWithConstruct> builder, string name, ITopicProps props)
public static IResourceBuilder<IConstructResource<Topic>> AddSNSTopic(this IResourceBuilder<IResourceWithConstruct> builder, string name, ITopicProps? props = null)
{
return builder.AddConstruct(name, scope => new Topic(scope, name, props));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static class SQSResourceExtensions
/// <param name="builder">The builder for the distributed application.</param>
/// <param name="name">The name of the resource.</param>
/// <param name="props">The properties of the queue.</param>
public static IResourceBuilder<IConstructResource<Queue>> AddSQSQueue(this IResourceBuilder<IResourceWithConstruct> builder, string name, IQueueProps props)
public static IResourceBuilder<IConstructResource<Queue>> AddSQSQueue(this IResourceBuilder<IResourceWithConstruct> builder, string name, IQueueProps? props = null)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By putting the extension method on IResourceWithConstruct the method shows up more then makes sense. For example when I call the AddDynamoDBTable to create a DDB table intellisense then shows AddSQSQueue as a method off of the table which is really confusing to look like you can add a queue to a table.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From a CDK perspective it allowed to add a Queue construct to a DynamoDB Table, but I agree it introduces confusion and false expectations. I'll change this to only accept the IResourceBuilder<IStackResource> so it can only be add to a stack. If the user want to do this to a construct, they can use the AddConstruct method.

{
return builder.AddConstruct(name, scope => new Queue(scope, name, props));
}
Expand Down