1 | 'use strict';
|
2 |
|
3 | const intrinsic = require('./lib/intrinsic');
|
4 | const conditions = require('./lib/conditions');
|
5 | const pseudo = require('./lib/pseudo');
|
6 | const build = require('./lib/build');
|
7 | const validate = require('./lib/validate');
|
8 | const merge = require('./lib/merge');
|
9 | const shortcuts = require('./lib/shortcuts');
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | const cloudfriend = module.exports = {
|
18 | build,
|
19 | validate,
|
20 | merge,
|
21 | shortcuts
|
22 | };
|
23 |
|
24 | Object.keys(intrinsic).forEach((key) => {
|
25 | cloudfriend[key] = intrinsic[key];
|
26 | });
|
27 |
|
28 | Object.keys(conditions).forEach((key) => {
|
29 | cloudfriend[key] = conditions[key];
|
30 | });
|
31 |
|
32 | Object.keys(pseudo).forEach((key) => {
|
33 | cloudfriend[key] = pseudo[key];
|
34 | });
|
35 |
|
36 | cloudfriend.permissions = {
|
37 | AWSTemplateFormatVersion: '2010-09-09',
|
38 | Resources: {
|
39 | User: {
|
40 | Type: 'AWS::IAM::User',
|
41 | Properties: {
|
42 | Policies: [
|
43 | {
|
44 | PolicyName: 'validate-templates',
|
45 | PolicyDocument: {
|
46 | Statement: [
|
47 | {
|
48 | Action: 'cloudformation:ValidateTemplate',
|
49 | Effect: 'Allow',
|
50 | Resource: '*'
|
51 | }
|
52 | ]
|
53 | }
|
54 | }
|
55 | ]
|
56 | }
|
57 | },
|
58 | AccessKey: {
|
59 | Type: 'AWS::IAM::AccessKey',
|
60 | Properties: {
|
61 | UserName: cloudfriend.ref('User')
|
62 | }
|
63 | }
|
64 | },
|
65 | Outputs: {
|
66 | AccessKeyId: { Value: cloudfriend.ref('AccessKey') },
|
67 | SecretAccessKey: { Value: cloudfriend.getAtt('AccessKey', 'SecretAccessKey') }
|
68 | }
|
69 | };
|