UNPKG

1.55 kBJavaScriptView Raw
1'use strict';
2
3const intrinsic = require('./lib/intrinsic');
4const conditions = require('./lib/conditions');
5const pseudo = require('./lib/pseudo');
6const build = require('./lib/build');
7const validate = require('./lib/validate');
8const merge = require('./lib/merge');
9const shortcuts = require('./lib/shortcuts');
10
11/**
12 * The cloudfriend module
13 *
14 * @example
15 * var cloudfriend = require('cloudfriend');
16 */
17const cloudfriend = module.exports = {
18 build,
19 validate,
20 merge,
21 shortcuts
22};
23
24Object.keys(intrinsic).forEach((key) => {
25 cloudfriend[key] = intrinsic[key];
26});
27
28Object.keys(conditions).forEach((key) => {
29 cloudfriend[key] = conditions[key];
30});
31
32Object.keys(pseudo).forEach((key) => {
33 cloudfriend[key] = pseudo[key];
34});
35
36cloudfriend.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};