UNPKG

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