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

refactor: remove "export"s and normalize resource names #2580

Merged
merged 39 commits into from
May 18, 2019

Conversation

eladb
Copy link
Contributor

@eladb eladb commented May 18, 2019

Implemented an awslint rule to help identify all "export" methods and remove them.

Align all AWS resource constructs (besides events.EventRule) to their canonical name.

Fixes #2577
Fixes #2578
Fixes #2458
Fixes #2419
Fixes #2579
Fixes #2313

Related #2551

BREAKING CHANGE: All export methods from all AWS resources have been removed. CloudFormation Exports are now automatically created when attributes are referenced across stacks within the same app. To export resources manually, you can explicitly define a CfnOutput.

  • kms.EncryptionKey renamed to kms.Key
  • ec2.VpcNetwork renamed to ec2.Vpc
  • ec2.VpcSubnet renamed to ec2.Subnet
  • cloudtrail.CloudTrail renamed to cloudtrail.Trail`
  • Deleted a few XxxAttribute and XxxImportProps interfaces which were no longer in used after their corresponding export method was deleted and there was no use for them in imports.
  • ecs.ClusterAttributes now accepts IVpc and ISecurityGroup instead of attributes. You can use their
    corresponding fromXxx methods to import them as needed.
  • servicediscovery.CnameInstance.instanceCname renamed to cname.
  • glue.IDatabase.locationUrl is now only in glue.Database (not on the interface)
  • ec2.TcpPortFromAttribute and UdpPortFromAttribute removed. Use TcpPort and UdpPort with new Token(x).toNumber instead.
  • ec2.VpcNetwork.importFromContext renamed to ec2.Vpc.fromLookup
  • iam.IRole.roleId has been removed from the interface, but Role.roleId is still available for owned resources.

Pull Request Checklist

  • Testing
    • Unit test added (prefer not to modify an existing test, otherwise, it's probably a breaking change)
    • CLI change?: coordinate update of integration tests with team
    • cdk-init template change?: coordinated update of integration tests with team
  • Docs
    • jsdocs: All public APIs documented
    • README: README and/or documentation topic updated
    • Design: For significant features, design document added to design folder
  • Title and Description
    • Change type: title prefixed with fix, feat and module name in parens, which will appear in changelog
    • Title: use lower-case and doesn't end with a period
    • Breaking?: last paragraph: "BREAKING CHANGE: <describe what changed + link for details>"
    • Issues: Indicate issues fixed via: "Fixes #xxx" or "Closes #xxx"
  • Sensitive Modules (requires 2 PR approvers)
    • IAM Policy Document (in @aws-cdk/aws-iam)
    • EC2 Security Groups and ACLs (in @aws-cdk/aws-ec2)
    • Grant APIs (only if not based on official documentation with a reference)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license.

Elad Ben-Israel added 30 commits May 15, 2019 15:19
* `iam.IRole.export` has been removed.
* `iam.RoleAttributes` has been removed.
* `iam.IRole.roleId` has been removed. `Role.roleId` is still available for owned resources.
* `events.EventRuleAttributes` has been removed.
* `events.IEventRule.export` has been removed.
kms
BREAKING CHANGES:

* `kms.EncryptionKey` renamed to `kms.Key`
* `kms.IEncryptionKey` renamed to `kms.IKey`
* `kms.EncryptionKey.import` is now `kms.Key.fromKeyArn`
*
ec2
BREAKING CHANGE:

* `ec2.VpcNetwork` and all related classes renamed to `ec2.Vpc`
* `ec2.VpcSubnet` and all related classes renamed to `ec2.Subnet`
* `import` static methods replaced by `fromXxx`
* `ec2.TcpPortFromAttribute` and `UdpPortFromAttribute` removed. Use `TcpPort` and `UdpPort` with `Token.toNumber` instead.
* `ec2.SecurityGroupAttributes` removed
* `ec2.VpcNetwork.importFromContext` renamed to `ec2.Vpc.fromLookup`
s3
BREAKING CHANGE:

* `s3.Bucket.export` is removed
BREAKING CHANGE:

* `cloudtrail.CloudTrail` renamed to `Trail`
fix key reference
elb
fix build breaks
fix build breaks

BREAKING CHANGE:

- `glue.DatabaseAttributes` removed
- `glue.IDatabase.locationUrl` is now only available for `glue.Database`
- `glue.Database.fromDatabaseAttributes` removed (use `fromDatabaseArn`).
Related #2551
canInline based on tokens
* `certificatemanager.CertificateAttributes` removed.
ses
* `ses.ReceiptRuleAttributes` removed
* `ses.ReceiptRuleSetAttributes` removed
* `codebuild.ProjectAttributes` removed
* `servicediscovery.CnameInstance.instanceCname` renamed to `cname`.
* `servicediscovery.
@mergify
Copy link
Contributor

mergify bot commented Sep 23, 2019

Thanks so much for taking the time to contribute to the AWS CDK ❤️

We will shortly assign someone to review this pull request and help get it
merged. In the meantime, please take a minute to make sure you follow this
checklist
:

  • PR title type(scope): text
    • type: fix, feat, refactor go into CHANGELOG, chore is hidden
    • scope: name of module without aws- or cdk- prefix or postfix (e.g. s3 instead of aws-s3-deployment)
    • text: use all lower-case, do not end with a period, do not include issue refs
  • PR Description
    • Rationale: describe rationale of change and approach taken
    • Issues: indicate issues fixed via: fixes #xxx or closes #xxx
    • Breaking?: last paragraph: BREAKING CHANGE: <describe what changed + link for details>
  • Testing
    • Unit test added. Prefer to add a new test rather than modify existing tests
    • CLI or init templates change? Re-run/add CLI integration tests
  • Documentation
    • README: update module README to describe new features
    • API docs: public APIs must be documented. Copy from official AWS docs when possible
    • Design: for significant features, follow design process

This was referenced Dec 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution/core This is a PR that came from AWS.
Projects
None yet
3 participants