-
Notifications
You must be signed in to change notification settings - Fork 4k
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
awslint:ref-via-interface #2412
Closed
eladb opened this issue
May 1, 2019
· 0 comments
· Fixed by #2499 or MechanicalRock/tech-radar#14 · May be fixed by MechanicalRock/cdk-constructs#5, MechanicalRock/cdk-constructs#6 or MechanicalRock/cdk-constructs#7
Closed
awslint:ref-via-interface #2412
eladb opened this issue
May 1, 2019
· 0 comments
· Fixed by #2499 or MechanicalRock/tech-radar#14 · May be fixed by MechanicalRock/cdk-constructs#5, MechanicalRock/cdk-constructs#6 or MechanicalRock/cdk-constructs#7
Labels
package/awscl
Cross-cutting issues related to the AWS Construct Library
Comments
eladb
added
package/awscl
Cross-cutting issues related to the AWS Construct Library
and removed
package/awscl
Cross-cutting issues related to the AWS Construct Library
labels
May 1, 2019
eladb
changed the title
awslint:ref-via-interface: All public APIs (props, methods, properties) should only use construct interfaces (IFoo)
awslint:ref-via-interface
May 1, 2019
eladb
pushed a commit
that referenced
this issue
May 8, 2019
…erface) (#2499) Adds a new awslint:ref-via-interface rule which validates that all input APIs (e.g. props, method arguments) use construct interface (IBucket) and not concrete classes (Bucket). This is in order to enable passing in unowned resources and in accordance with the aws construct library guidelines. There are situations where an owned resource is required. In those, the rule can be disabled by adding [disable-awslint:ref-via-interface] to the element's inline documentation. To enable this, the following new construct interfaces were added, along with `fromXxx` import methods: * `applicationautoscaling.IScalableTarget` * `cloudwatch.IAlarm` * `ecs.IService` * `ecs.IEc2Service` * `ec2.IFargateService` * `ecs.ITaskDefinition` * `iam.IGroup` * `iam.IUser` * `iam.IPolicy` * `lambda.IVersion` Fixes #2412 BREAKING CHANGE: `apigateway.ResourceBase.trackChild` is now internal. * `cloudfront.S3OriginConfig.originAccessIdentity` is now `originAccessIdentityId` * `codedeploy.LambdaDeploymentGroup.alarms` is now `cloudwatch.IAlarm[]` (previously `cloudwatch.Alarm[]`) * `codepipeline.crossRegionScaffoldingStacks` renamed to `crossRegionScaffolding` * `codepipeline.CrossRegionScaffoldingStack` renamed to `codepipeline.CrossRegionScaffolding` and cannot be instantiated (abstract) * `ec2.VpcSubnet.addDefaultRouteToNAT` renamed to `addDefaultNatRoute` and made public * `ec2.VpcSubnet.addDefaultRouteToIGW` renamed to `addDefaultInternetRoute`, made public and first argument is the gateway ID (string) and not the CFN L1 class * `ecs.Ec2EventRuleTarget.taskDefinition` is now `ITaskDefinition` (previously `TaskDefinition`) * `lambda.IEventSource.bind` now accepts `IFunction` instead of `FunctionBase`. Use `IFunction.addEventSourceMapping` to add an event source mapping under the function. * `lambda.Layer.grantUsage` renamed to `lambda.layer.addPermission` and returns void * `stepfunctions.StateMachine.role` is now `iam.IRole` (previously `iam.Role`)
4 tasks
SanderKnape
pushed a commit
to SanderKnape/aws-cdk
that referenced
this issue
May 14, 2019
…erface) (aws#2499) Adds a new awslint:ref-via-interface rule which validates that all input APIs (e.g. props, method arguments) use construct interface (IBucket) and not concrete classes (Bucket). This is in order to enable passing in unowned resources and in accordance with the aws construct library guidelines. There are situations where an owned resource is required. In those, the rule can be disabled by adding [disable-awslint:ref-via-interface] to the element's inline documentation. To enable this, the following new construct interfaces were added, along with `fromXxx` import methods: * `applicationautoscaling.IScalableTarget` * `cloudwatch.IAlarm` * `ecs.IService` * `ecs.IEc2Service` * `ec2.IFargateService` * `ecs.ITaskDefinition` * `iam.IGroup` * `iam.IUser` * `iam.IPolicy` * `lambda.IVersion` Fixes aws#2412 BREAKING CHANGE: `apigateway.ResourceBase.trackChild` is now internal. * `cloudfront.S3OriginConfig.originAccessIdentity` is now `originAccessIdentityId` * `codedeploy.LambdaDeploymentGroup.alarms` is now `cloudwatch.IAlarm[]` (previously `cloudwatch.Alarm[]`) * `codepipeline.crossRegionScaffoldingStacks` renamed to `crossRegionScaffolding` * `codepipeline.CrossRegionScaffoldingStack` renamed to `codepipeline.CrossRegionScaffolding` and cannot be instantiated (abstract) * `ec2.VpcSubnet.addDefaultRouteToNAT` renamed to `addDefaultNatRoute` and made public * `ec2.VpcSubnet.addDefaultRouteToIGW` renamed to `addDefaultInternetRoute`, made public and first argument is the gateway ID (string) and not the CFN L1 class * `ecs.Ec2EventRuleTarget.taskDefinition` is now `ITaskDefinition` (previously `TaskDefinition`) * `lambda.IEventSource.bind` now accepts `IFunction` instead of `FunctionBase`. Use `IFunction.addEventSourceMapping` to add an event source mapping under the function. * `lambda.Layer.grantUsage` renamed to `lambda.layer.addPermission` and returns void * `stepfunctions.StateMachine.role` is now `iam.IRole` (previously `iam.Role`)
This was referenced Aug 22, 2019
This was referenced Dec 12, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
All public APIs (props, methods, properties) should only use construct interfaces (IFoo)
The text was updated successfully, but these errors were encountered: