1- // import * as crypto from 'crypto';
2- import { ResourceNaming } from '@gammarers/aws-resource-naming' ;
1+ import { ResourceAutoNaming , ResourceDefaultNaming , ResourceNaming , ResourceNamingOptions , ResourceNamingType } from '@gammarers/aws-resource-naming' ;
32import * as cdk from 'aws-cdk-lib' ;
43import * as iam from 'aws-cdk-lib/aws-iam' ;
54import * as cr from 'aws-cdk-lib/custom-resources' ;
@@ -18,21 +17,66 @@ export enum ResponseField {
1817 HOST_ARN = 'HostArn' ,
1918}
2019
21- export interface ResourceNamingOptions {
22- readonly naming : ResourceNaming . AutoNaming | ResourceNaming . DefaultNaming | {
23- type : ResourceNaming . NamingType . CUSTOM ;
24- names : {
25- functionName : string ;
26- functionRoleName : string ;
27- } ;
28- } ;
20+ //export type Names = {
21+ // functionName: string;
22+ // functionRoleName: string;
23+ //}
24+ //export interface Names {
25+ // readonly functionName: string;
26+ // readonly functionRoleName: string;
27+ //}
28+ //
29+ //export type CustomNaming = {
30+ // type: ResourceNaming.NamingType.CUSTOM;
31+ // // functionName: string;
32+ // // functionRoleName: string;
33+ // names: Names;
34+ //}
35+
36+ //export interface ResourceNamingOptions {
37+ // readonly naming: ResourceNaming.AutoNaming | ResourceNaming.DefaultNaming | {
38+ // type: ResourceNaming.NamingType.CUSTOM;
39+ // names: {
40+ // functionName: string;
41+ // functionRoleName: string;
42+ // };
43+ // };
44+ //}
45+
46+ //export interface ResourceNamingOptions {
47+ // readonly naming: ResourceNaming.AutoNaming | ResourceNaming.DefaultNaming;
48+ //}
49+ //export type Naming = { type: ResourceNaming.NamingType.DEFAULT } | { type: ResourceNaming.NamingType.AUTO } | CustomNaming;
50+ //export type Naming = { type: ResourceNaming.NamingType.DEFAULT } | { type: ResourceNaming.NamingType.AUTO } | CustomNaming;
51+ //export type Naming = CustomNaming;
52+
53+ //export interface ResourceNamingOptions {
54+ // readonly naming: Naming;
55+ //}
56+ //export interface DefaultNamingOption {
57+ // readonly type: ResourceNaming.NamingType.DEFAULT;
58+ //}
59+ //
60+ //export interface AutoNamingOption {
61+ // readonly type: ResourceNaming.NamingType.AUTO;
62+ //}
63+
64+ export interface CustomNaming {
65+ readonly type : ResourceNamingType . CUSTOM ;
66+ // readonly names: Names; // CUSTOM の場合に必須
67+ readonly functionName : string ; // フラット化
68+ readonly functionRoleName : string ; // フラット化
2969}
3070
71+ export type ResourceNamingOption = ResourceDefaultNaming | ResourceAutoNaming | CustomNaming ;
72+
3173export interface CodeConnectionsHostCustomResourceProps {
3274 readonly name : string ;
3375 readonly providerEndpoint : string ;
3476 readonly providerType : CodeConnectionsHostProviderType ;
35- readonly resouceNamingOption ?: ResourceNamingOptions ;
77+ //readonly resouceNamingOption?: ResourceNamingOptions;
78+ // readonly resouceNamingOption?: { type: ResourceNaming.NamingType.DEFAULT } | { type: ResourceNaming.NamingType.AUTO } | CustomNaming;
79+ readonly resouceNamingOption ?: ResourceNamingOption ;
3680}
3781
3882export class CodeConnectionsHostCustomResource extends cr . AwsCustomResource {
@@ -45,13 +89,16 @@ export class CodeConnectionsHostCustomResource extends cr.AwsCustomResource {
4589 functionName : `custom-resource-codeconnection-host-${ random } -func` ,
4690 functionRoleName : `custom-resource-codeconnection-host-${ random } -func-exc-role` ,
4791 } ;
48- const naming = ResourceNaming . naming ( autoNaming , props . resouceNamingOption ) ;
92+ const names = ResourceNaming . naming ( autoNaming , props . resouceNamingOption as ResourceNamingOptions ) ;
93+ // const naming = {
94+ // names: autoNaming,
95+ // };
4996
5097 const account = cdk . Stack . of ( scope ) . account ;
5198 const region = cdk . Stack . of ( scope ) . region ;
5299
53100 const functionRole = new iam . Role ( scope , 'FunctionRole' , {
54- roleName : naming . names . functionRoleName ,
101+ roleName : names . functionRoleName ,
55102 description : 'Custom Resource Function Execution Role.' ,
56103 assumedBy : new iam . ServicePrincipal ( 'lambda.amazonaws.com' ) ,
57104 managedPolicies : [
@@ -77,10 +124,11 @@ export class CodeConnectionsHostCustomResource extends cr.AwsCustomResource {
77124 } ) ;
78125
79126 super ( scope , id , {
80- functionName : naming . names . functionName ,
127+ functionName : names . functionName ,
81128 role : functionRole ,
82129 timeout : cdk . Duration . seconds ( 15 ) ,
83130 installLatestAwsSdk : true ,
131+ //logGroup: todo
84132 onCreate : {
85133 service : 'CodeConnections' ,
86134 action : 'createHost' ,
0 commit comments