@cloud-copilot/iam-collect 0.1.46 → 0.1.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -48,33 +48,34 @@ This will download the IAM data from the current account to the `./iam-data` dir
48
48
 
49
49
  # Supported Services and Data Downloaded
50
50
 
51
- | Service | Resource Type | Data Downloaded |
52
- | ------------- | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
53
- | iam | Users | name, path, id, groups, tags, inline policies, managed policies, permission boundary |
54
- | iam | Groups | name, path, id, inline policies, managed policies |
55
- | iam | Roles | name, path, id, trust policy, inline policies, managed policies, instance profiles, tags, permission boundary |
56
- | iam | Customer and AWS Managed Policies | name, path, id, default version, default version doc, tags |
57
- | iam | OIDC Providers | arn, audiences, thumbprints, url, tags |
58
- | iam | SAML Providers | arn, metadata document, uuid, private keys, valid until, tags |
59
- | iam | Instance Profiles | arn, name, roles, id, path, tags |
60
- | apigateway | Rest APIs | id, name, policy, tags |
61
- | dynamodb | Tables | name, arn, region, tags, resource policy |
62
- | ecr | Repositories | name, arn, region, tags, resource policy, key id |
63
- | ecr | Registries | policy |
64
- | ec2 | VPC Endpoints | id, name, type, vpc, policy |
65
- | glacier | Vaults | name, arn, region, tags, policy |
66
- | kms | Keys | id, policy, tags |
67
- | lambda | Functions | name, role, tags, policy |
68
- | s3 | Access Points | name, bucket, bucket account, policy, block public access configuration, network origin, vpc, alias, endpoints |
69
- | s3 | Buckets | name, region, tags, policy, block public access configuration, default encryption |
70
- | s3 | Multi Region Access Points | name, alias, regions, policy, block public access configuration |
71
- | s3express | Directory Buckets | name, encryption settings, policy |
72
- | s3tables | Table Buckets | name, region, bucket policy, encryption |
73
- | organizations | Organizations | id, arn, root account id, enabled policy types, org structure |
74
- | organizations | Organizational Units | id, arn, parent ou, enabled SCPs, enabled RCPs, tags |
75
- | organizations | Accounts | id, arn, parent ou, enabled SCPs, enabled RCPs, tags |
76
- | organizations | SCPs, RCPs | id, arn, name, description, tags, policy |
77
- | sns | Topics | name, arn, tags, kms key id, policy |
78
- | sqs | Queues | name, arn, tags, kms key id, policy |
79
- | sso | Instances | id, arn, name, owner account id, status, tags |
80
- | sso | Permission Sets | name, description, AWS managed policies, customer managed policies, inline policy, permission boundary, accounts, tags |
51
+ | Service | Resource Type | Data Downloaded |
52
+ | ----------------- | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
53
+ | iam | Users | name, path, id, groups, tags, inline policies, managed policies, permission boundary |
54
+ | iam | Groups | name, path, id, inline policies, managed policies |
55
+ | iam | Roles | name, path, id, trust policy, inline policies, managed policies, instance profiles, tags, permission boundary |
56
+ | iam | Customer and AWS Managed Policies | name, path, id, default version, default version doc, tags |
57
+ | iam | OIDC Providers | arn, audiences, thumbprints, url, tags |
58
+ | iam | SAML Providers | arn, metadata document, uuid, private keys, valid until, tags |
59
+ | iam | Instance Profiles | arn, name, roles, id, path, tags |
60
+ | apigateway | Rest APIs | id, name, policy, tags |
61
+ | dynamodb | Tables | name, arn, region, tags, resource policy |
62
+ | ecr | Repositories | name, arn, region, tags, resource policy, key id |
63
+ | ecr | Registries | policy |
64
+ | ec2 | VPC Endpoints | id, name, type, vpc, policy |
65
+ | elasticfilesystem | File Systems | name, id, key, encryption, tags, policy |
66
+ | glacier | Vaults | name, arn, region, tags, policy |
67
+ | kms | Keys | id, policy, tags |
68
+ | lambda | Functions | name, role, tags, policy |
69
+ | s3 | Access Points | name, bucket, bucket account, policy, block public access configuration, network origin, vpc, alias, endpoints |
70
+ | s3 | Buckets | name, region, tags, policy, block public access configuration, default encryption |
71
+ | s3 | Multi Region Access Points | name, alias, regions, policy, block public access configuration |
72
+ | s3express | Directory Buckets | name, encryption settings, policy |
73
+ | s3tables | Table Buckets | name, region, bucket policy, encryption |
74
+ | organizations | Organizations | id, arn, root account id, enabled policy types, org structure |
75
+ | organizations | Organizational Units | id, arn, parent ou, enabled SCPs, enabled RCPs, tags |
76
+ | organizations | Accounts | id, arn, parent ou, enabled SCPs, enabled RCPs, tags |
77
+ | organizations | SCPs, RCPs | id, arn, name, description, tags, policy |
78
+ | sns | Topics | name, arn, tags, kms key id, policy |
79
+ | sqs | Queues | name, arn, tags, kms key id, policy |
80
+ | sso | Instances | id, arn, name, owner account id, status, tags |
81
+ | sso | Permission Sets | name, description, AWS managed policies, customer managed policies, inline policy, permission boundary, accounts, tags |
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * All Valid AWS Services
3
3
  */
4
- export declare const allServices: readonly ["apigateway", "dynamodb", "ec2", "ecr", "glacier", "iam", "kms", "lambda", "organizations", "s3", "s3express", "s3tables", "secretsmanager", "sns", "sqs", "sso"];
4
+ export declare const allServices: readonly ["apigateway", "dynamodb", "ec2", "ecr", "elasticfilesystem", "glacier", "iam", "kms", "lambda", "organizations", "s3", "s3express", "s3tables", "secretsmanager", "sns", "sqs", "sso"];
5
5
  /**
6
6
  * Type representing a valid AWS service. A union of all strings in `allServices`.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,6KAiBd,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,kMAkBd,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA"}
@@ -9,6 +9,7 @@ exports.allServices = [
9
9
  'dynamodb',
10
10
  'ec2',
11
11
  'ecr',
12
+ 'elasticfilesystem',
12
13
  'glacier',
13
14
  'iam',
14
15
  'kms',
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,mBAAmB;IACnB,SAAS;IACT,KAAK;IACL,KAAK;IACL,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const ElasticFileSystemsSync: import("../sync.js").Sync;
2
+ //# sourceMappingURL=fileSystems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSystems.d.ts","sourceRoot":"","sources":["../../../../src/syncs/efs/fileSystems.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,sBAAsB,2BAwClC,CAAA"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ElasticFileSystemsSync = void 0;
4
+ const client_efs_1 = require("@aws-sdk/client-efs");
5
+ const client_tools_js_1 = require("../../utils/client-tools.js");
6
+ const json_js_1 = require("../../utils/json.js");
7
+ const typedSync_js_1 = require("../typedSync.js");
8
+ exports.ElasticFileSystemsSync = (0, typedSync_js_1.createTypedSyncOperation)('elasticfilesystem', 'fileSystems', (0, typedSync_js_1.createResourceSyncType)({
9
+ client: client_efs_1.EFSClient,
10
+ command: client_efs_1.DescribeFileSystemsCommand,
11
+ key: 'FileSystems',
12
+ paginationConfig: {
13
+ inputKey: 'Marker',
14
+ outputKey: 'NextMarker'
15
+ },
16
+ resourceTypeParts: (accountId, region) => ({
17
+ service: 'elasticfilesystem',
18
+ resourceType: 'file-system',
19
+ account: accountId,
20
+ region: region
21
+ }),
22
+ extraFields: {
23
+ policy: async (client, fileSystem) => {
24
+ return (0, client_tools_js_1.runAndCatch404)(async () => {
25
+ const policyResult = await client.send(new client_efs_1.DescribeFileSystemPolicyCommand({ FileSystemId: fileSystem.FileSystemId }));
26
+ return (0, json_js_1.parseIfPresent)(policyResult.Policy);
27
+ });
28
+ }
29
+ },
30
+ tags: (fileSystem) => fileSystem.Tags,
31
+ arn: (fileSystem) => fileSystem.FileSystemArn,
32
+ results: (fileSystem) => ({
33
+ metadata: {
34
+ name: fileSystem.Name,
35
+ id: fileSystem.FileSystemId,
36
+ az: fileSystem.AvailabilityZoneId,
37
+ key: fileSystem.KmsKeyId,
38
+ encrypted: fileSystem.Encrypted
39
+ },
40
+ policy: fileSystem.extraFields.policy
41
+ })
42
+ }));
43
+ //# sourceMappingURL=fileSystems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSystems.js","sourceRoot":"","sources":["../../../../src/syncs/efs/fileSystems.ts"],"names":[],"mappings":";;;AAAA,oDAI4B;AAC5B,iEAA4D;AAC5D,iDAAoD;AACpD,kDAAkF;AAErE,QAAA,sBAAsB,GAAG,IAAA,uCAAwB,EAC5D,mBAAmB,EACnB,aAAa,EACb,IAAA,qCAAsB,EAAC;IACrB,MAAM,EAAE,sBAAS;IACjB,OAAO,EAAE,uCAA0B;IACnC,GAAG,EAAE,aAAa;IAClB,gBAAgB,EAAE;QAChB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,YAAY;KACxB;IACD,iBAAiB,EAAE,CAAC,SAAiB,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,mBAAmB;QAC5B,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,MAAM;KACf,CAAC;IACF,WAAW,EAAE;QACX,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;YACnC,OAAO,IAAA,gCAAc,EAAC,KAAK,IAAI,EAAE;gBAC/B,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,CACpC,IAAI,4CAA+B,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAC/E,CAAA;gBACD,OAAO,IAAA,wBAAc,EAAC,YAAY,CAAC,MAAM,CAAC,CAAA;YAC5C,CAAC,CAAC,CAAA;QACJ,CAAC;KACF;IACD,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI;IACrC,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAc;IAC9C,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACxB,QAAQ,EAAE;YACR,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,EAAE,EAAE,UAAU,CAAC,YAAY;YAC3B,EAAE,EAAE,UAAU,CAAC,kBAAkB;YACjC,GAAG,EAAE,UAAU,CAAC,QAAQ;YACxB,SAAS,EAAE,UAAU,CAAC,SAAS;SAChC;QACD,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM;KACtC,CAAC;CACH,CAAC,CACH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"syncMap.d.ts","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAsB3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AA4ChC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMtE"}
1
+ {"version":3,"file":"syncMap.d.ts","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAuB3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AA6ChC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMtE"}
@@ -6,6 +6,7 @@ const gateways_js_1 = require("./apigateway/gateways.js");
6
6
  const tables_js_1 = require("./dynamodb/tables.js");
7
7
  const vpcEndpoints_js_1 = require("./ec2/vpcEndpoints.js");
8
8
  const ecrSyncs_js_1 = require("./ecr/ecrSyncs.js");
9
+ const fileSystems_js_1 = require("./efs/fileSystems.js");
9
10
  const authorizationDetails_js_1 = require("./iam/authorizationDetails.js");
10
11
  const identityProviders_js_1 = require("./iam/identityProviders.js");
11
12
  const instanceProfiles_js_1 = require("./iam/instanceProfiles.js");
@@ -28,6 +29,7 @@ const allSyncs = [
28
29
  authorizationDetails_js_1.AuthorizationDetailsSync,
29
30
  tables_js_1.DynamoDBTableSync,
30
31
  ...ecrSyncs_js_1.EcrSyncs,
32
+ fileSystems_js_1.ElasticFileSystemsSync,
31
33
  instanceProfiles_js_1.InstanceProfilesSync,
32
34
  ...identityProviders_js_1.IdentityProviderSyncs,
33
35
  vaults_js_1.GlacierVaultsSync,
@@ -1 +1 @@
1
- {"version":3,"file":"syncMap.js","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":";;AAwEA,4DAMC;AAQD,gEAMC;AA3FD,0DAAuD;AACvD,oDAAwD;AACxD,2DAAwD;AACxD,mDAA4C;AAC5C,2EAAwE;AACxE,qEAAkE;AAClE,mEAAgE;AAChE,yCAAsC;AACtC,kDAA+C;AAC/C,uEAAmE;AACnE,0DAAyD;AACzD,sDAAqD;AACrD,gDAA4D;AAC5D,gFAA+E;AAC/E,8CAAkD;AAClD,qFAA8E;AAC9E,gEAA+D;AAC/D,4DAAwD;AACxD,+CAA+C;AAC/C,+CAA8C;AAC9C,2DAAmD;AAGnD,MAAM,QAAQ,GAAG;IACf,gCAAgB;IAChB,kDAAwB;IACxB,6BAAiB;IACjB,GAAG,sBAAQ;IACX,0CAAoB;IACpB,GAAG,4CAAqB;IACxB,6BAAiB;IACjB,gBAAO;IACP,sBAAU;IACV,mCAAgB;IAChB,0BAAY;IACZ,oCAAkB;IAClB,kDAAsB;IACtB,uCAA0B;IAC1B,0DAA6B;IAC7B,oCAAkB;IAClB,uBAAU;IACV,yBAAa;IACb,wBAAY;IACZ,6BAAW;IACX,kCAAgB;CACjB,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoD,CAAA;AAE3E,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;YACnB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;IACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,OAAmB;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;IACpD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAC,OAAmB;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;IACpD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAA;AACvB,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,WAAW,EAAgB,CAAA;AAC5C,CAAC"}
1
+ {"version":3,"file":"syncMap.js","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":";;AA0EA,4DAMC;AAQD,gEAMC;AA7FD,0DAAuD;AACvD,oDAAwD;AACxD,2DAAwD;AACxD,mDAA4C;AAC5C,yDAA6D;AAC7D,2EAAwE;AACxE,qEAAkE;AAClE,mEAAgE;AAChE,yCAAsC;AACtC,kDAA+C;AAC/C,uEAAmE;AACnE,0DAAyD;AACzD,sDAAqD;AACrD,gDAA4D;AAC5D,gFAA+E;AAC/E,8CAAkD;AAClD,qFAA8E;AAC9E,gEAA+D;AAC/D,4DAAwD;AACxD,+CAA+C;AAC/C,+CAA8C;AAC9C,2DAAmD;AAGnD,MAAM,QAAQ,GAAG;IACf,gCAAgB;IAChB,kDAAwB;IACxB,6BAAiB;IACjB,GAAG,sBAAQ;IACX,uCAAsB;IACtB,0CAAoB;IACpB,GAAG,4CAAqB;IACxB,6BAAiB;IACjB,gBAAO;IACP,sBAAU;IACV,mCAAgB;IAChB,0BAAY;IACZ,oCAAkB;IAClB,kDAAsB;IACtB,uCAA0B;IAC1B,0DAA6B;IAC7B,oCAAkB;IAClB,uBAAU;IACV,yBAAa;IACb,wBAAY;IACZ,6BAAW;IACX,kCAAgB;CACjB,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoD,CAAA;AAE3E,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;YACnB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;IACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,OAAmB;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;IACpD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAC,OAAmB;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;IACpD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAA;AACvB,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,WAAW,EAAgB,CAAA;AAC5C,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * All Valid AWS Services
3
3
  */
4
- export declare const allServices: readonly ["apigateway", "dynamodb", "ec2", "ecr", "glacier", "iam", "kms", "lambda", "organizations", "s3", "s3express", "s3tables", "secretsmanager", "sns", "sqs", "sso"];
4
+ export declare const allServices: readonly ["apigateway", "dynamodb", "ec2", "ecr", "elasticfilesystem", "glacier", "iam", "kms", "lambda", "organizations", "s3", "s3express", "s3tables", "secretsmanager", "sns", "sqs", "sso"];
5
5
  /**
6
6
  * Type representing a valid AWS service. A union of all strings in `allServices`.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,6KAiBd,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,kMAkBd,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA"}
@@ -6,6 +6,7 @@ export const allServices = [
6
6
  'dynamodb',
7
7
  'ec2',
8
8
  'ecr',
9
+ 'elasticfilesystem',
9
10
  'glacier',
10
11
  'iam',
11
12
  'kms',
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY;IACZ,UAAU;IACV,KAAK;IACL,KAAK;IACL,mBAAmB;IACnB,SAAS;IACT,KAAK;IACL,KAAK;IACL,QAAQ;IACR,eAAe;IACf,IAAI;IACJ,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const ElasticFileSystemsSync: import("../sync.js").Sync;
2
+ //# sourceMappingURL=fileSystems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSystems.d.ts","sourceRoot":"","sources":["../../../../src/syncs/efs/fileSystems.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,sBAAsB,2BAwClC,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { DescribeFileSystemPolicyCommand, DescribeFileSystemsCommand, EFSClient } from '@aws-sdk/client-efs';
2
+ import { runAndCatch404 } from '../../utils/client-tools.js';
3
+ import { parseIfPresent } from '../../utils/json.js';
4
+ import { createResourceSyncType, createTypedSyncOperation } from '../typedSync.js';
5
+ export const ElasticFileSystemsSync = createTypedSyncOperation('elasticfilesystem', 'fileSystems', createResourceSyncType({
6
+ client: EFSClient,
7
+ command: DescribeFileSystemsCommand,
8
+ key: 'FileSystems',
9
+ paginationConfig: {
10
+ inputKey: 'Marker',
11
+ outputKey: 'NextMarker'
12
+ },
13
+ resourceTypeParts: (accountId, region) => ({
14
+ service: 'elasticfilesystem',
15
+ resourceType: 'file-system',
16
+ account: accountId,
17
+ region: region
18
+ }),
19
+ extraFields: {
20
+ policy: async (client, fileSystem) => {
21
+ return runAndCatch404(async () => {
22
+ const policyResult = await client.send(new DescribeFileSystemPolicyCommand({ FileSystemId: fileSystem.FileSystemId }));
23
+ return parseIfPresent(policyResult.Policy);
24
+ });
25
+ }
26
+ },
27
+ tags: (fileSystem) => fileSystem.Tags,
28
+ arn: (fileSystem) => fileSystem.FileSystemArn,
29
+ results: (fileSystem) => ({
30
+ metadata: {
31
+ name: fileSystem.Name,
32
+ id: fileSystem.FileSystemId,
33
+ az: fileSystem.AvailabilityZoneId,
34
+ key: fileSystem.KmsKeyId,
35
+ encrypted: fileSystem.Encrypted
36
+ },
37
+ policy: fileSystem.extraFields.policy
38
+ })
39
+ }));
40
+ //# sourceMappingURL=fileSystems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSystems.js","sourceRoot":"","sources":["../../../../src/syncs/efs/fileSystems.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,SAAS,EACV,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAElF,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAC5D,mBAAmB,EACnB,aAAa,EACb,sBAAsB,CAAC;IACrB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,0BAA0B;IACnC,GAAG,EAAE,aAAa;IAClB,gBAAgB,EAAE;QAChB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,YAAY;KACxB;IACD,iBAAiB,EAAE,CAAC,SAAiB,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,mBAAmB;QAC5B,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,MAAM;KACf,CAAC;IACF,WAAW,EAAE;QACX,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;YACnC,OAAO,cAAc,CAAC,KAAK,IAAI,EAAE;gBAC/B,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,CACpC,IAAI,+BAA+B,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAC/E,CAAA;gBACD,OAAO,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;YAC5C,CAAC,CAAC,CAAA;QACJ,CAAC;KACF;IACD,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI;IACrC,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAc;IAC9C,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACxB,QAAQ,EAAE;YACR,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,EAAE,EAAE,UAAU,CAAC,YAAY;YAC3B,EAAE,EAAE,UAAU,CAAC,kBAAkB;YACjC,GAAG,EAAE,UAAU,CAAC,QAAQ;YACxB,SAAS,EAAE,UAAU,CAAC,SAAS;SAChC;QACD,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM;KACtC,CAAC;CACH,CAAC,CACH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"syncMap.d.ts","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAsB3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AA4ChC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMtE"}
1
+ {"version":3,"file":"syncMap.d.ts","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAuB3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AA6ChC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,CAMtE"}
@@ -2,6 +2,7 @@ import { RestApisSync } from './apigateway/gateways.js';
2
2
  import { DynamoDBTableSync } from './dynamodb/tables.js';
3
3
  import { VpcEndpointsSync } from './ec2/vpcEndpoints.js';
4
4
  import { EcrSyncs } from './ecr/ecrSyncs.js';
5
+ import { ElasticFileSystemsSync } from './efs/fileSystems.js';
5
6
  import { AuthorizationDetailsSync } from './iam/authorizationDetails.js';
6
7
  import { IdentityProviderSyncs } from './iam/identityProviders.js';
7
8
  import { InstanceProfilesSync } from './iam/instanceProfiles.js';
@@ -24,6 +25,7 @@ const allSyncs = [
24
25
  AuthorizationDetailsSync,
25
26
  DynamoDBTableSync,
26
27
  ...EcrSyncs,
28
+ ElasticFileSystemsSync,
27
29
  InstanceProfilesSync,
28
30
  ...IdentityProviderSyncs,
29
31
  GlacierVaultsSync,
@@ -1 +1 @@
1
- {"version":3,"file":"syncMap.js","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syncMap.js","sourceRoot":"","sources":["../../../src/syncs/syncMap.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud-copilot/iam-collect",
3
- "version": "0.1.46",
3
+ "version": "0.1.47",
4
4
  "description": "Collect IAM information from AWS Accounts",
5
5
  "repository": {
6
6
  "type": "git",
@@ -113,6 +113,7 @@
113
113
  "@aws-sdk/client-dynamodb": "^3.788.0",
114
114
  "@aws-sdk/client-ec2": "^3.798.0",
115
115
  "@aws-sdk/client-ecr": "^3.798.0",
116
+ "@aws-sdk/client-efs": "^3.806.0",
116
117
  "@aws-sdk/client-glacier": "^3.799.0",
117
118
  "@aws-sdk/client-iam": "^3.777.0",
118
119
  "@aws-sdk/client-kms": "^3.782.0",