Skip to content

Commit ef4057b

Browse files
Merge pull request aws-ia#19 from nakomis/ctv2-warehouse-grant
Prepares Warehouse Grant for CTv2 testing
2 parents ec341e2 + 27578db commit ef4057b

File tree

5 files changed

+26
-2
lines changed

5 files changed

+26
-2
lines changed

Snowflake-Warehouse-Grant/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,5 @@ coverage/
1616

1717
# contains credentials
1818
sam-tests/
19+
20+
snowflake-warehouse-grant.zip

Snowflake-Warehouse-Grant/.rpdk-config

+7
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,12 @@
1717
"target_schemas": [],
1818
"useDocker": false,
1919
"protocolVersion": "2.0.0"
20+
},
21+
"contractSettings":{
22+
"typeConfiguration": {
23+
"configuration": {
24+
"SnowflakeAccess": { "Account": "{{resolve:ssm-secure:/cfn/snowflake/account:1}}", "Username": "{{resolve:ssm-secure:/cfn/snowflake/username:1}}", "Password": "{{resolve:ssm-secure:/cfn/snowflake/password:1}}" }
25+
}
26+
}
2027
}
2128
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"WarehouseName": "<SNOWFLAKE_WAREHOUSE_NAME>",
3+
"Privilege": "USAGE",
4+
"Role": "<SNOWFLAKE_ROLE_NAME>"
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"WarehouseName": "_INVALID",
3+
"Privilege": "1234",
4+
"Role": "123INVALID"
5+
}

Snowflake-Warehouse-Grant/src/handlers.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
NotUpdatable
88
} from "@amazon-web-services-cloudformation/cloudformation-cli-typescript-lib/dist/exceptions";
99
import {version} from '../package.json';
10+
import {plainToClass, classToPlain, plainToClassFromExist} from "class-transformer";
1011

1112
type ShownGrant = {
1213
granted_on: string,
@@ -93,13 +94,17 @@ class Resource extends AbstractSnowflakeResource<ResourceModel, ResourceModel, R
9394
return model;
9495
}
9596

96-
return new ResourceModel({
97+
const result = new ResourceModel({
9798
...model,
9899
...Transformer.for(from)
99100
.transformKeys(CaseTransformer.SNAKE_TO_CAMEL)
100101
.forModelIngestion()
101102
.transform(),
102-
}); return model;
103+
});
104+
105+
return plainToClass(ResourceModel,
106+
classToPlain(result),
107+
{ excludeExtraneousValues: true });
103108
}
104109
}
105110

0 commit comments

Comments
 (0)