Skip to content

Commit 7d20d4a

Browse files
author
aws-amplify-bot
committed
interface to have customer pass in source name
1 parent 0fedf86 commit 7d20d4a

File tree

1 file changed

+19
-6
lines changed
  • packages/@aws-cdk/mixins-preview/scripts/spec2logs

1 file changed

+19
-6
lines changed

packages/@aws-cdk/mixins-preview/scripts/spec2logs/builder.ts

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { naming, util } from '@aws-cdk/spec2cdk';
33
import { CDK_CORE, CONSTRUCTS } from '@aws-cdk/spec2cdk/lib/cdk/cdk';
44
import { RelationshipDecider } from '@aws-cdk/spec2cdk/lib/cdk/relationship-decider';
55
import type { Method } from '@cdklabs/typewriter';
6-
import { Module, ExternalModule, ClassType, Stability, Type, expr, stmt, ThingSymbol, $this, CallableProxy, NewExpression } from '@cdklabs/typewriter';
6+
import { Module, ExternalModule, ClassType, Stability, Type, expr, stmt, ThingSymbol, $this, CallableProxy, NewExpression, InterfaceType } from '@cdklabs/typewriter';
77
import { MIXINS_LOG_DELIVERY, REF_INTERFACES } from './helpers';
88
import type { ServiceSubmoduleProps, SelectiveImport, LocatedModule } from '@aws-cdk/spec2cdk/lib/cdk/service-submodule';
99
import { BaseServiceSubmodule, relativeImportPath } from '@aws-cdk/spec2cdk/lib/cdk/service-submodule';
@@ -362,22 +362,35 @@ class LogsMixin extends ClassType {
362362
},
363363
});
364364

365+
const deliverySourceInterface = new InterfaceType(this.scope, {
366+
name: `I${naming.classNameFromResource(this.resource)}LogSource`,
367+
properties: [{
368+
name: 'logDeliverySourceName',
369+
type: Type.STRING,
370+
docs: {
371+
summary: 'Must be unique among all delivery source names'
372+
}
373+
}],
374+
extends: [CONSTRUCTS.IConstruct],
375+
docs: {
376+
summary: `Interface for ${naming.classNameFromResource(this.resource)} to set up log delivery`
377+
}
378+
})
379+
365380
const resource = method.addParameter({
366381
name: 'resource',
367-
type: CONSTRUCTS.IConstruct,
382+
type: deliverySourceInterface.type,
368383
});
369384

370385
const cfnDeliverySourceType = this.scope.type('delivery.CfnDeliverySource');
371386
const arn = expr.sym(new ThingSymbol('cdkLib.Arn.format', this.scope)).call(expr.object({ service: expr.directCode('construct.cfnResourceType.split(\'::\')[1].toLowerCase()'), resource: expr.directCode('construct.cfnResourceType.split(\'::\')[2].toLowerCase()'), resourceName: expr.get(resource, 'ref') }), expr.sym(new ThingSymbol('cdkLib.Stack.of', this.scope)).call(resource));
372387
const arnVar = expr.ident('sourceArn');
373388

374-
const prefix = `${this.resource.name}Source-`;
375-
376389
const deliverySourceInstance = cfnDeliverySourceType.newInstance(
377390
resource,
378-
expr.strConcat(expr.str('CdkSource'), CDK_CORE.uniqueId(resource)),
391+
expr.strConcat(expr.str('CdkSource'), expr.get(resource, 'logDeliverySourceName'), CDK_CORE.uniqueId(resource)),
379392
expr.object({
380-
name: expr.strConcat(expr.str(prefix), CDK_CORE.uniqueResourceName(resource, expr.object({ maxLength: expr.binOp(expr.num(60 - prefix.length + 1), '-', $this.logType.prop('length')) })), expr.str('-'), $this.logType),
393+
name: expr.get(resource, 'logDeliverySourceName'),
381394
resourceArn: arnVar,
382395
logType: $this.logType,
383396
}),

0 commit comments

Comments
 (0)