Skip to content

Commit 18634a9

Browse files
committed
feat!: re resource naming changed
1 parent d915192 commit 18634a9

File tree

2 files changed

+64
-18
lines changed

2 files changed

+64
-18
lines changed

src/index.ts

Lines changed: 62 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
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';
32
import * as cdk from 'aws-cdk-lib';
43
import * as iam from 'aws-cdk-lib/aws-iam';
54
import * 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+
3173
export 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

3882
export 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',

test/custom-resource.bitbucket.option.test.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ResourceNaming } from '@gammarers/aws-resource-naming';
1+
import { ResourceNamingType } from '@gammarers/aws-resource-naming';
22
import { App, Stack } from 'aws-cdk-lib';
33
import { Template } from 'aws-cdk-lib/assertions';
44
import * as codeconnections from 'aws-cdk-lib/aws-codeconnections';
@@ -20,9 +20,7 @@ describe('CustomResource Testing', () => {
2020
providerEndpoint: 'https://bitbucket.example.com',
2121
providerType: CodeConnectionsHostProviderType.BIT_BUCKET,
2222
resouceNamingOption: {
23-
naming: {
24-
type: ResourceNaming.NamingType.AUTO,
25-
},
23+
type: ResourceNamingType.AUTO,
2624
},
2725
});
2826

0 commit comments

Comments
 (0)