@actsecurity/iam-collect 0.1.220 → 0.1.222

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.
Files changed (72) hide show
  1. package/README.md +7 -0
  2. package/dist/cjs/aws/ClientPool.d.ts.map +1 -1
  3. package/dist/cjs/aws/ClientPool.js +7 -0
  4. package/dist/cjs/aws/ClientPool.js.map +1 -1
  5. package/dist/cjs/config/version.d.ts +1 -1
  6. package/dist/cjs/config/version.js +1 -1
  7. package/dist/cjs/services.d.ts +1 -1
  8. package/dist/cjs/services.d.ts.map +1 -1
  9. package/dist/cjs/services.js +4 -0
  10. package/dist/cjs/services.js.map +1 -1
  11. package/dist/cjs/syncs/codeartifact/repositories.d.ts +2 -0
  12. package/dist/cjs/syncs/codeartifact/repositories.d.ts.map +1 -0
  13. package/dist/cjs/syncs/codeartifact/repositories.js +51 -0
  14. package/dist/cjs/syncs/codeartifact/repositories.js.map +1 -0
  15. package/dist/cjs/syncs/codebuild/projects.d.ts +6 -0
  16. package/dist/cjs/syncs/codebuild/projects.d.ts.map +1 -0
  17. package/dist/cjs/syncs/codebuild/projects.js +77 -0
  18. package/dist/cjs/syncs/codebuild/projects.js.map +1 -0
  19. package/dist/cjs/syncs/iot/policies.d.ts +5 -0
  20. package/dist/cjs/syncs/iot/policies.d.ts.map +1 -0
  21. package/dist/cjs/syncs/iot/policies.js +50 -0
  22. package/dist/cjs/syncs/iot/policies.js.map +1 -0
  23. package/dist/cjs/syncs/ses/identities.d.ts +6 -0
  24. package/dist/cjs/syncs/ses/identities.d.ts.map +1 -0
  25. package/dist/cjs/syncs/ses/identities.js +86 -0
  26. package/dist/cjs/syncs/ses/identities.js.map +1 -0
  27. package/dist/cjs/syncs/sso/identityStoreDirectory.d.ts +7 -0
  28. package/dist/cjs/syncs/sso/identityStoreDirectory.d.ts.map +1 -0
  29. package/dist/cjs/syncs/sso/identityStoreDirectory.js +213 -0
  30. package/dist/cjs/syncs/sso/identityStoreDirectory.js.map +1 -0
  31. package/dist/cjs/syncs/sso/ssoInstances.d.ts.map +1 -1
  32. package/dist/cjs/syncs/sso/ssoInstances.js +6 -1
  33. package/dist/cjs/syncs/sso/ssoInstances.js.map +1 -1
  34. package/dist/cjs/syncs/syncMap.d.ts.map +1 -1
  35. package/dist/cjs/syncs/syncMap.js +8 -0
  36. package/dist/cjs/syncs/syncMap.js.map +1 -1
  37. package/dist/esm/aws/ClientPool.d.ts.map +1 -1
  38. package/dist/esm/aws/ClientPool.js +7 -0
  39. package/dist/esm/aws/ClientPool.js.map +1 -1
  40. package/dist/esm/config/version.d.ts +1 -1
  41. package/dist/esm/config/version.js +1 -1
  42. package/dist/esm/services.d.ts +1 -1
  43. package/dist/esm/services.d.ts.map +1 -1
  44. package/dist/esm/services.js +4 -0
  45. package/dist/esm/services.js.map +1 -1
  46. package/dist/esm/syncs/codeartifact/repositories.d.ts +2 -0
  47. package/dist/esm/syncs/codeartifact/repositories.d.ts.map +1 -0
  48. package/dist/esm/syncs/codeartifact/repositories.js +48 -0
  49. package/dist/esm/syncs/codeartifact/repositories.js.map +1 -0
  50. package/dist/esm/syncs/codebuild/projects.d.ts +6 -0
  51. package/dist/esm/syncs/codebuild/projects.d.ts.map +1 -0
  52. package/dist/esm/syncs/codebuild/projects.js +75 -0
  53. package/dist/esm/syncs/codebuild/projects.js.map +1 -0
  54. package/dist/esm/syncs/iot/policies.d.ts +5 -0
  55. package/dist/esm/syncs/iot/policies.d.ts.map +1 -0
  56. package/dist/esm/syncs/iot/policies.js +47 -0
  57. package/dist/esm/syncs/iot/policies.js.map +1 -0
  58. package/dist/esm/syncs/ses/identities.d.ts +6 -0
  59. package/dist/esm/syncs/ses/identities.d.ts.map +1 -0
  60. package/dist/esm/syncs/ses/identities.js +84 -0
  61. package/dist/esm/syncs/ses/identities.js.map +1 -0
  62. package/dist/esm/syncs/sso/identityStoreDirectory.d.ts +7 -0
  63. package/dist/esm/syncs/sso/identityStoreDirectory.d.ts.map +1 -0
  64. package/dist/esm/syncs/sso/identityStoreDirectory.js +211 -0
  65. package/dist/esm/syncs/sso/identityStoreDirectory.js.map +1 -0
  66. package/dist/esm/syncs/sso/ssoInstances.d.ts.map +1 -1
  67. package/dist/esm/syncs/sso/ssoInstances.js +6 -1
  68. package/dist/esm/syncs/sso/ssoInstances.js.map +1 -1
  69. package/dist/esm/syncs/syncMap.d.ts.map +1 -1
  70. package/dist/esm/syncs/syncMap.js +8 -0
  71. package/dist/esm/syncs/syncMap.js.map +1 -1
  72. package/package.json +6 -1
package/README.md CHANGED
@@ -147,6 +147,8 @@ If you prefer, you can configure iam-collect to pull data from AWS Config instea
147
147
  | iam | Instance Profiles | name, roles, id, path, tags |
148
148
  | apigateway | Rest APIs | id, name, policy, tags |
149
149
  | backup | Backup Vaults | name, key, tags, policy |
150
+ | codeartifact | Repositories | name, region, domain name, domain owner, administrator account, description, tags, resource policy |
151
+ | codebuild | Projects | name, description, service role, resource access role, encryption key, visibility, public project alias, tags, policy |
150
152
  | dynamodb | Streams | name, region, resource policy |
151
153
  | dynamodb | Tables | name, region, tags, resource policy |
152
154
  | ecr | Repositories | name, region, tags, resource policy, key id |
@@ -159,6 +161,7 @@ If you prefer, you can configure iam-collect to pull data from AWS Config instea
159
161
  | events | Event Buses | name, key id, policy, tags |
160
162
  | glacier | Vaults | name, region, tags, policy |
161
163
  | glue | Root Catalogs | policy |
164
+ | iot | Policies | name, default version, default version doc, attachment targets |
162
165
  | kafka | MSK Clusters | name, policy, kms key, tags |
163
166
  | kinesis | Data Streams | name, encryption type, key id, policy, tags |
164
167
  | kms | Keys | id, policy, tags |
@@ -182,7 +185,11 @@ If you prefer, you can configure iam-collect to pull data from AWS Config instea
182
185
  | sns | Topics | name, tags, kms key id, policy |
183
186
  | sqs | Queues | name, tags, kms key id, policy |
184
187
  | secretsmanager | Secrets | name, tags, kms key id, policy |
188
+ | ses | Verified Identities | name, identity type, sending authorization policies |
185
189
  | sso | Instances | id, name, owner account id, status, tags |
186
190
  | sso | Permission Sets | name, description, AWS managed policies, customer managed policies, inline policy, permission boundary, accounts, tags |
191
+ | sso | Identity Store Users | username, display name, profile attributes, external ids, groups |
192
+ | sso | Identity Store Groups | name, description, external ids, members |
193
+ | sso | Identity Store Group Memberships | group and member relationships |
187
194
 
188
195
  If you don't see the data you are looking for, please check the [open resource issues](https://github.com/act-security-labs/iam-collect/issues?q=is%3Aissue%20state%3Aopen%20label%3Aresource) and comment on the issue or create a new one.
@@ -1 +1 @@
1
- {"version":3,"file":"ClientPool.d.ts","sourceRoot":"","sources":["../../../src/aws/ClientPool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAMnD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,eAAe,CAAA;AAEtE,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC,CAAA;AACvD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAWlD,qBAAa,aAAa;IACxB,OAAc,eAAe,gBAAsB;IAEnD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,oBAAoB,CAAiB;;IAU7C;;;;;;;;OAQG;IACI,MAAM,CAAC,CAAC,SAAS,SAAS,EAC/B,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAChC,WAAW,EAAE,iCAAiC,EAC9C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,CAAC;IAoBJ,OAAO,CAAC,WAAW;IASnB;;;;OAIG;IACI,KAAK,IAAI,IAAI;IASpB;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC;;OAEG;IACI,sBAAsB,IAAI,OAAO;IAIxC;;;;;;;OAOG;IACI,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAItF,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,iBAAiB;CAK1B"}
1
+ {"version":3,"file":"ClientPool.d.ts","sourceRoot":"","sources":["../../../src/aws/ClientPool.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAMnD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,eAAe,CAAA;AAEtE,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC,CAAA;AACvD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAiBlD,qBAAa,aAAa;IACxB,OAAc,eAAe,gBAAsB;IAEnD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,oBAAoB,CAAiB;;IAU7C;;;;;;;;OAQG;IACI,MAAM,CAAC,CAAC,SAAS,SAAS,EAC/B,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAChC,WAAW,EAAE,iCAAiC,EAC9C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,CAAC;IAoBJ,OAAO,CAAC,WAAW;IASnB;;;;OAIG;IACI,KAAK,IAAI,IAAI;IASpB;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC;;OAEG;IACI,sBAAsB,IAAI,OAAO;IAIxC;;;;;;;OAOG;IACI,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAItF,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,iBAAiB;CAK1B"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AwsClientPool = void 0;
4
4
  const client_lambda_1 = require("@aws-sdk/client-lambda");
5
+ const client_ses_1 = require("@aws-sdk/client-ses");
5
6
  const node_http_handler_1 = require("@smithy/node-http-handler");
6
7
  const util_retry_1 = require("@smithy/util-retry");
7
8
  const retrySettings = {
@@ -10,6 +11,12 @@ const retrySettings = {
10
11
  minFillRate: 0.2, // lower baseline QPS (default 0.5)
11
12
  scaleConstant: 0.1, // slower cubic ramp (default 0.4)
12
13
  smooth: 0.5 // dampen measured rate (default 0.8)
14
+ },
15
+ [client_ses_1.SESClient.name]: {
16
+ beta: 0.4, // SES identity APIs are limited to one request per second
17
+ minFillRate: 0.2,
18
+ scaleConstant: 0.1,
19
+ smooth: 0.5
13
20
  }
14
21
  };
15
22
  class AwsClientPool {
@@ -1 +1 @@
1
- {"version":3,"file":"ClientPool.js","sourceRoot":"","sources":["../../../src/aws/ClientPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientPool.js","sourceRoot":"","sources":["../../../src/aws/ClientPool.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  * iam-collect version.
3
3
  * Generated by build, do not manually edit
4
4
  */
5
- export declare const IAM_COLLECT_VERSION = "0.1.219";
5
+ export declare const IAM_COLLECT_VERSION = "0.1.221";
6
6
  //# sourceMappingURL=version.d.ts.map
@@ -5,5 +5,5 @@ exports.IAM_COLLECT_VERSION = void 0;
5
5
  * iam-collect version.
6
6
  * Generated by build, do not manually edit
7
7
  */
8
- exports.IAM_COLLECT_VERSION = '0.1.219';
8
+ exports.IAM_COLLECT_VERSION = '0.1.221';
9
9
  //# sourceMappingURL=version.js.map
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * All Valid AWS Services
3
3
  */
4
- export declare const allServices: readonly ["apigateway", "backup", "dynamodb", "ec2", "ecr", "eks", "elasticfilesystem", "es", "events", "glacier", "glue", "iam", "kafka", "kinesis", "kms", "lambda", "organizations", "ram", "s3", "s3-object-lambda", "s3express", "s3outposts", "s3tables", "secretsmanager", "sns", "sqs", "sso"];
4
+ export declare const allServices: readonly ["apigateway", "backup", "codeartifact", "codebuild", "dynamodb", "ec2", "ecr", "eks", "elasticfilesystem", "es", "events", "glacier", "glue", "iam", "iot", "kafka", "kinesis", "kms", "lambda", "organizations", "ram", "s3", "s3-object-lambda", "s3express", "s3outposts", "s3tables", "secretsmanager", "ses", "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,wSA4Bd,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAErD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAE5D"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,mVAgCd,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAErD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAE5D"}
@@ -8,6 +8,8 @@ exports.lowerCaseService = lowerCaseService;
8
8
  exports.allServices = [
9
9
  'apigateway',
10
10
  'backup',
11
+ 'codeartifact',
12
+ 'codebuild',
11
13
  'dynamodb',
12
14
  'ec2',
13
15
  'ecr',
@@ -18,6 +20,7 @@ exports.allServices = [
18
20
  'glacier',
19
21
  'glue',
20
22
  'iam',
23
+ 'iot',
21
24
  'kafka',
22
25
  'kinesis',
23
26
  'kms',
@@ -30,6 +33,7 @@ exports.allServices = [
30
33
  's3outposts',
31
34
  's3tables',
32
35
  'secretsmanager',
36
+ 'ses',
33
37
  'sns',
34
38
  'sqs',
35
39
  'sso'
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":";;;AA4CA,4CAEC;AA9CD;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,mBAAmB;IACnB,IAAI;IACJ,QAAQ;IACR,SAAS;IACT,MAAM;IACN,KAAK;IACL,OAAO;IACP,SAAS;IACT,KAAK;IACL,QAAQ;IACR,eAAe;IACf,KAAK;IACL,IAAI;IACJ,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,UAAU;IACV,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA;AAOV;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,OAAO,OAAO,CAAC,WAAW,EAAgB,CAAA;AAC5C,CAAC"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":";;;AAgDA,4CAEC;AAlDD;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,YAAY;IACZ,QAAQ;IACR,cAAc;IACd,WAAW;IACX,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,mBAAmB;IACnB,IAAI;IACJ,QAAQ;IACR,SAAS;IACT,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,SAAS;IACT,KAAK;IACL,QAAQ;IACR,eAAe;IACf,KAAK;IACL,IAAI;IACJ,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,UAAU;IACV,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAA;AAOV;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,OAAO,OAAO,CAAC,WAAW,EAAgB,CAAA;AAC5C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const CodeArtifactRepositoriesSync: import("../sync.js").Sync;
2
+ //# sourceMappingURL=repositories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repositories.d.ts","sourceRoot":"","sources":["../../../../src/syncs/codeartifact/repositories.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,4BAA4B,2BAkDxC,CAAA"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodeArtifactRepositoriesSync = void 0;
4
+ const client_codeartifact_1 = require("@aws-sdk/client-codeartifact");
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.CodeArtifactRepositoriesSync = (0, typedSync_js_1.createTypedSyncOperation)('codeartifact', 'repositories', (0, typedSync_js_1.createResourceSyncType)({
9
+ client: client_codeartifact_1.CodeartifactClient,
10
+ command: client_codeartifact_1.ListRepositoriesCommand,
11
+ key: 'repositories',
12
+ paginationConfig: {
13
+ inputKey: 'nextToken',
14
+ outputKey: 'nextToken'
15
+ },
16
+ arn: (repository) => repository.arn,
17
+ extraFields: {
18
+ tags: async (client, repository) => {
19
+ const result = await client.send(new client_codeartifact_1.ListTagsForResourceCommand({ resourceArn: repository.arn }));
20
+ return result.tags;
21
+ },
22
+ policy: async (client, repository) => {
23
+ return (0, client_tools_js_1.runAndCatchError)('ResourceNotFoundException', async () => {
24
+ const result = await client.send(new client_codeartifact_1.GetRepositoryPermissionsPolicyCommand({
25
+ domain: repository.domainName,
26
+ domainOwner: repository.domainOwner,
27
+ repository: repository.name
28
+ }));
29
+ return (0, json_js_1.parseIfPresent)(result.policy?.document);
30
+ });
31
+ }
32
+ },
33
+ tags: (repository) => repository.extraFields.tags,
34
+ resourceTypeParts: (account, region) => ({
35
+ service: 'codeartifact',
36
+ resourceType: 'repository',
37
+ account,
38
+ region
39
+ }),
40
+ results: (repository) => ({
41
+ metadata: {
42
+ name: repository.name,
43
+ domainName: repository.domainName,
44
+ domainOwner: repository.domainOwner,
45
+ administratorAccount: repository.administratorAccount,
46
+ description: repository.description
47
+ },
48
+ policy: repository.extraFields.policy
49
+ })
50
+ }));
51
+ //# sourceMappingURL=repositories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repositories.js","sourceRoot":"","sources":["../../../../src/syncs/codeartifact/repositories.ts"],"names":[],"mappings":";;;AAAA,sEAKqC;AACrC,iEAA8D;AAC9D,iDAAoD;AACpD,kDAAkF;AAErE,QAAA,4BAA4B,GAAG,IAAA,uCAAwB,EAClE,cAAc,EACd,cAAc,EACd,IAAA,qCAAsB,EAAC;IACrB,MAAM,EAAE,wCAAkB;IAC1B,OAAO,EAAE,6CAAuB;IAChC,GAAG,EAAE,cAAc;IACnB,gBAAgB,EAAE;QAChB,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,WAAW;KACvB;IACD,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,GAAI;IACpC,WAAW,EAAE;QACX,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,IAAI,gDAA0B,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAChE,CAAA;YACD,OAAO,MAAM,CAAC,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;YACnC,OAAO,IAAA,kCAAgB,EAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;gBAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,IAAI,2DAAqC,CAAC;oBACxC,MAAM,EAAE,UAAU,CAAC,UAAW;oBAC9B,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,UAAU,EAAE,UAAU,CAAC,IAAK;iBAC7B,CAAC,CACH,CAAA;gBACD,OAAO,IAAA,wBAAc,EAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAChD,CAAC,CAAC,CAAA;QACJ,CAAC;KACF;IACD,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI;IACjD,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO,EAAE,cAAc;QACvB,YAAY,EAAE,YAAY;QAC1B,OAAO;QACP,MAAM;KACP,CAAC;IACF,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACxB,QAAQ,EAAE;YACR,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;YACrD,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC;QACD,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM;KACtC,CAAC;CACH,CAAC,CACH,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { type Sync } from '../sync.js';
2
+ /**
3
+ * Sync AWS CodeBuild projects and their resource policies.
4
+ */
5
+ export declare const CodeBuildProjectsSync: Sync;
6
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../../src/syncs/codebuild/projects.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAmB,KAAK,IAAI,EAAY,MAAM,YAAY,CAAA;AAKjE;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,IA4DnC,CAAA"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodeBuildProjectsSync = void 0;
4
+ const client_codebuild_1 = require("@aws-sdk/client-codebuild");
5
+ const log_1 = require("@actsecurity/log");
6
+ const client_tools_js_1 = require("../../utils/client-tools.js");
7
+ const json_js_1 = require("../../utils/json.js");
8
+ const tags_js_1 = require("../../utils/tags.js");
9
+ const sync_js_1 = require("../sync.js");
10
+ const typedSync_js_1 = require("../typedSync.js");
11
+ const BATCH_GET_PROJECTS_LIMIT = 100;
12
+ /**
13
+ * Sync AWS CodeBuild projects and their resource policies.
14
+ */
15
+ exports.CodeBuildProjectsSync = {
16
+ awsService: 'codebuild',
17
+ name: 'projects',
18
+ execute: async (accountId, region, credentials, storage, endpoint, syncOptions) => {
19
+ const codeBuildClient = syncOptions.clientPool.client(client_codebuild_1.CodeBuildClient, credentials, region, endpoint);
20
+ const projectNames = await (0, client_tools_js_1.withDnsRetry)(() => (0, typedSync_js_1.paginateResource)(codeBuildClient, client_codebuild_1.ListProjectsCommand, 'projects', {
21
+ inputKey: 'nextToken',
22
+ outputKey: 'nextToken'
23
+ }));
24
+ const projects = [];
25
+ for (let i = 0; i < projectNames.length; i += BATCH_GET_PROJECTS_LIMIT) {
26
+ const response = await (0, client_tools_js_1.withDnsRetry)(() => codeBuildClient.send(new client_codebuild_1.BatchGetProjectsCommand({
27
+ names: projectNames.slice(i, i + BATCH_GET_PROJECTS_LIMIT)
28
+ })));
29
+ projects.push(...(response.projects ?? []));
30
+ }
31
+ const projectJobs = projects.map((project) => ({
32
+ properties: { project },
33
+ execute: async () => collectProjectRecord(codeBuildClient, project)
34
+ }));
35
+ const projectResults = await Promise.all(syncOptions.workerPool.enqueueAll(projectJobs));
36
+ const records = [];
37
+ for (const result of projectResults) {
38
+ if (result.status === 'rejected') {
39
+ const project = result.properties.project;
40
+ log_1.log.error('Failed to collect CodeBuild project', result.reason, {
41
+ projectArn: project.arn
42
+ });
43
+ throw new Error(`Failed to collect CodeBuild project ${project.arn}`);
44
+ }
45
+ records.push(result.value);
46
+ }
47
+ await (0, sync_js_1.syncData)(records, storage, accountId, {
48
+ service: 'codebuild',
49
+ resourceType: 'project',
50
+ account: credentials.accountId,
51
+ region
52
+ }, syncOptions.writeOnly);
53
+ }
54
+ };
55
+ async function collectProjectRecord(codeBuildClient, project) {
56
+ const projectArn = project.arn;
57
+ const policy = await (0, client_tools_js_1.withDnsRetry)(() => (0, client_tools_js_1.runAndCatchAccessDeniedWithLog)(projectArn, 'codebuild', 'projects', 'policy', () => (0, client_tools_js_1.runAndCatchError)('ResourceNotFoundException', async () => {
58
+ const response = await codeBuildClient.send(new client_codebuild_1.GetResourcePolicyCommand({ resourceArn: projectArn }));
59
+ return (0, json_js_1.parseIfPresent)(response.policy);
60
+ })));
61
+ return {
62
+ arn: projectArn,
63
+ metadata: {
64
+ arn: projectArn,
65
+ name: project.name,
66
+ description: project.description,
67
+ serviceRole: project.serviceRole,
68
+ resourceAccessRole: project.resourceAccessRole,
69
+ encryptionKey: project.encryptionKey,
70
+ projectVisibility: project.projectVisibility,
71
+ publicProjectAlias: project.publicProjectAlias
72
+ },
73
+ tags: (0, tags_js_1.convertTagsToRecord)(project.tags),
74
+ policy
75
+ };
76
+ }
77
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../../src/syncs/codebuild/projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Sync AWS IoT policies, their default policy documents, and attached targets.
3
+ */
4
+ export declare const IotPoliciesSync: import("../sync.js").Sync;
5
+ //# sourceMappingURL=policies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../../../src/syncs/iot/policies.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,eAAO,MAAM,eAAe,2BA0C3B,CAAA"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IotPoliciesSync = void 0;
4
+ const client_iot_1 = require("@aws-sdk/client-iot");
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
+ const paginationConfig = {
9
+ inputKey: 'marker',
10
+ outputKey: 'nextMarker'
11
+ };
12
+ /**
13
+ * Sync AWS IoT policies, their default policy documents, and attached targets.
14
+ */
15
+ exports.IotPoliciesSync = (0, typedSync_js_1.createTypedSyncOperation)('iot', 'policies', (0, typedSync_js_1.createResourceSyncType)({
16
+ client: client_iot_1.IoTClient,
17
+ command: client_iot_1.ListPoliciesCommand,
18
+ key: 'policies',
19
+ paginationConfig,
20
+ arn: (policy) => policy.policyArn,
21
+ extraFields: {
22
+ details: async (client, policy) => {
23
+ return (0, client_tools_js_1.runAndCatch404)(() => client.send(new client_iot_1.GetPolicyCommand({ policyName: policy.policyName })));
24
+ },
25
+ targets: async (client, policy) => {
26
+ return (0, client_tools_js_1.runAndCatch404)(() => (0, typedSync_js_1.paginateResource)(client, client_iot_1.ListTargetsForPolicyCommand, 'targets', paginationConfig, {
27
+ policyName: policy.policyName
28
+ }));
29
+ }
30
+ },
31
+ tags: () => undefined,
32
+ resourceTypeParts: (accountId, region) => ({
33
+ service: 'iot',
34
+ resourceType: 'policy',
35
+ account: accountId,
36
+ region
37
+ }),
38
+ results: (policy) => ({
39
+ metadata: {
40
+ name: policy.extraFields.details?.policyName ?? policy.policyName,
41
+ defaultVersionId: policy.extraFields.details?.defaultVersionId,
42
+ generationId: policy.extraFields.details?.generationId,
43
+ creationDate: policy.extraFields.details?.creationDate,
44
+ lastModifiedDate: policy.extraFields.details?.lastModifiedDate
45
+ },
46
+ 'current-policy': (0, json_js_1.parseIfPresent)(policy.extraFields.details?.policyDocument),
47
+ targets: policy.extraFields.targets
48
+ })
49
+ }));
50
+ //# sourceMappingURL=policies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policies.js","sourceRoot":"","sources":["../../../../src/syncs/iot/policies.ts"],"names":[],"mappings":";;;AAAA,oDAK4B;AAC5B,iEAA4D;AAC5D,iDAAoD;AACpD,kDAAoG;AAEpG,MAAM,gBAAgB,GAAG;IACvB,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,YAAY;CACf,CAAA;AAEV;;GAEG;AACU,QAAA,eAAe,GAAG,IAAA,uCAAwB,EACrD,KAAK,EACL,UAAU,EACV,IAAA,qCAAsB,EAAC;IACrB,MAAM,EAAE,sBAAS;IACjB,OAAO,EAAE,gCAAmB;IAC5B,GAAG,EAAE,UAAU;IACf,gBAAgB;IAChB,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAU;IAClC,WAAW,EAAE;QACX,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAChC,OAAO,IAAA,gCAAc,EAAC,GAAG,EAAE,CACzB,MAAM,CAAC,IAAI,CAAC,IAAI,6BAAgB,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAW,EAAE,CAAC,CAAC,CACtE,CAAA;QACH,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAChC,OAAO,IAAA,gCAAc,EAAC,GAAG,EAAE,CACzB,IAAA,+BAAgB,EAAC,MAAM,EAAE,wCAA2B,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACjF,UAAU,EAAE,MAAM,CAAC,UAAW;aAC/B,CAAC,CACH,CAAA;QACH,CAAC;KACF;IACD,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;IACrB,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,SAAS;QAClB,MAAM;KACP,CAAC;IACF,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,IAAI,MAAM,CAAC,UAAU;YACjE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB;YAC9D,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY;YACtD,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY;YACtD,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB;SAC/D;QACD,gBAAgB,EAAE,IAAA,wBAAc,EAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC;QAC5E,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO;KACpC,CAAC;CACH,CAAC,CACH,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { type Sync } from '../sync.js';
2
+ /**
3
+ * Sync verified SES identities and their named sending authorization policies.
4
+ */
5
+ export declare const SesIdentitiesSync: Sync;
6
+ //# sourceMappingURL=identities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identities.d.ts","sourceRoot":"","sources":["../../../../src/syncs/ses/identities.ts"],"names":[],"mappings":"AAWA,OAAO,EAAmB,KAAK,IAAI,EAAY,MAAM,YAAY,CAAA;AAKjE;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,IA2C/B,CAAA"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SesIdentitiesSync = void 0;
4
+ const client_ses_1 = require("@aws-sdk/client-ses");
5
+ const log_1 = require("@actsecurity/log");
6
+ const client_tools_js_1 = require("../../utils/client-tools.js");
7
+ const json_js_1 = require("../../utils/json.js");
8
+ const sync_js_1 = require("../sync.js");
9
+ const typedSync_js_1 = require("../typedSync.js");
10
+ const VERIFICATION_BATCH_SIZE = 100;
11
+ /**
12
+ * Sync verified SES identities and their named sending authorization policies.
13
+ */
14
+ exports.SesIdentitiesSync = {
15
+ awsService: 'ses',
16
+ name: 'identities',
17
+ execute: async (accountId, region, credentials, storage, endpoint, syncOptions) => {
18
+ const sesClient = syncOptions.clientPool.client(client_ses_1.SESClient, credentials, region, endpoint);
19
+ const identities = await (0, client_tools_js_1.withDnsRetry)(() => (0, typedSync_js_1.paginateResource)(sesClient, client_ses_1.ListIdentitiesCommand, 'Identities', {
20
+ inputKey: 'NextToken',
21
+ outputKey: 'NextToken'
22
+ }));
23
+ const verifiedIdentities = await getVerifiedIdentities(sesClient, identities);
24
+ const jobs = verifiedIdentities.map((identity) => ({
25
+ properties: { identity },
26
+ execute: async () => collectIdentity(sesClient, identity, accountId, region, credentials.partition)
27
+ }));
28
+ const results = await Promise.all(syncOptions.workerPool.enqueueAll(jobs));
29
+ const records = [];
30
+ for (const result of results) {
31
+ if (result.status === 'rejected') {
32
+ const identity = result.properties.identity;
33
+ log_1.log.error('Failed to collect SES identity policies', result.reason, { identity, region });
34
+ throw new Error(`Failed to collect policies for SES identity ${identity}`);
35
+ }
36
+ records.push(result.value);
37
+ }
38
+ await (0, sync_js_1.syncData)(records, storage, accountId, {
39
+ service: 'ses',
40
+ resourceType: 'identity',
41
+ account: accountId,
42
+ region
43
+ }, syncOptions.writeOnly);
44
+ }
45
+ };
46
+ async function getVerifiedIdentities(sesClient, identities) {
47
+ const verifiedIdentities = [];
48
+ for (let index = 0; index < identities.length; index += VERIFICATION_BATCH_SIZE) {
49
+ const batch = identities.slice(index, index + VERIFICATION_BATCH_SIZE);
50
+ const response = await (0, client_tools_js_1.withDnsRetry)(() => sesClient.send(new client_ses_1.GetIdentityVerificationAttributesCommand({ Identities: batch })));
51
+ for (const identity of batch) {
52
+ if (response.VerificationAttributes?.[identity]?.VerificationStatus === 'Success') {
53
+ verifiedIdentities.push(identity);
54
+ }
55
+ }
56
+ }
57
+ return verifiedIdentities;
58
+ }
59
+ async function collectIdentity(sesClient, identity, accountId, region, partition) {
60
+ const arn = identityArn(partition, region, accountId, identity);
61
+ const policies = await (0, client_tools_js_1.runAndCatchAccessDeniedWithLog)(arn, 'ses', 'identity', 'policies', async () => {
62
+ const listResponse = await (0, client_tools_js_1.withDnsRetry)(() => sesClient.send(new client_ses_1.ListIdentityPoliciesCommand({ Identity: identity })));
63
+ const policyNames = listResponse.PolicyNames || [];
64
+ if (policyNames.length === 0) {
65
+ return undefined;
66
+ }
67
+ const response = await (0, client_tools_js_1.withDnsRetry)(() => sesClient.send(new client_ses_1.GetIdentityPoliciesCommand({ Identity: identity, PolicyNames: policyNames })));
68
+ return Object.fromEntries(Object.entries(response.Policies || {}).map(([name, document]) => [
69
+ name,
70
+ (0, json_js_1.parseIfPresent)(document)
71
+ ]));
72
+ });
73
+ return {
74
+ arn,
75
+ metadata: {
76
+ arn,
77
+ name: identity,
78
+ identityType: identity.includes('@') ? 'EmailAddress' : 'Domain'
79
+ },
80
+ policies
81
+ };
82
+ }
83
+ function identityArn(partition, region, accountId, identity) {
84
+ return `arn:${partition}:ses:${region}:${accountId}:identity/${identity}`;
85
+ }
86
+ //# sourceMappingURL=identities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identities.js","sourceRoot":"","sources":["../../../../src/syncs/ses/identities.ts"],"names":[],"mappings":";;;AAAA,oDAM4B;AAE5B,0CAAsC;AACtC,iEAA0F;AAC1F,iDAAoD;AACpD,wCAAiE;AACjE,kDAAkD;AAElD,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAEnC;;GAEG;AACU,QAAA,iBAAiB,GAAS;IACrC,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE;QAChF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,sBAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QACzF,MAAM,UAAU,GAAG,MAAM,IAAA,8BAAY,EAAC,GAAG,EAAE,CACzC,IAAA,+BAAgB,EAAC,SAAS,EAAE,kCAAqB,EAAE,YAAY,EAAE;YAC/D,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,WAAW;SACvB,CAAC,CACH,CAAA;QACD,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QAE7E,MAAM,IAAI,GAA4C,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC1F,UAAU,EAAE,EAAE,QAAQ,EAAE;YACxB,OAAO,EAAE,KAAK,IAAI,EAAE,CAClB,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC;SACjF,CAAC,CAAC,CAAA;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1E,MAAM,OAAO,GAAiB,EAAE,CAAA;QAEhC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAkB,CAAA;gBACrD,SAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;gBACzF,MAAM,IAAI,KAAK,CAAC,+CAA+C,QAAQ,EAAE,CAAC,CAAA;YAC5E,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,MAAM,IAAA,kBAAQ,EACZ,OAAO,EACP,OAAO,EACP,SAAS,EACT;YACE,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,UAAU;YACxB,OAAO,EAAE,SAAS;YAClB,MAAM;SACP,EACD,WAAW,CAAC,SAAS,CACtB,CAAA;IACH,CAAC;CACF,CAAA;AAED,KAAK,UAAU,qBAAqB,CAClC,SAAoB,EACpB,UAAoB;IAEpB,MAAM,kBAAkB,GAAa,EAAE,CAAA;IAEvC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,uBAAuB,EAAE,CAAC;QAChF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,uBAAuB,CAAC,CAAA;QACtE,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAY,EAAC,GAAG,EAAE,CACvC,SAAS,CAAC,IAAI,CAAC,IAAI,qDAAwC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CACpF,CAAA;QAED,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,IAAI,QAAQ,CAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC,EAAE,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBAClF,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,SAAoB,EACpB,QAAgB,EAChB,SAAiB,EACjB,MAAc,EACd,SAAiB;IAEjB,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,MAAM,IAAA,gDAA8B,EACnD,GAAG,EACH,KAAK,EACL,UAAU,EACV,UAAU,EACV,KAAK,IAAI,EAAE;QACT,MAAM,YAAY,GAAG,MAAM,IAAA,8BAAY,EAAC,GAAG,EAAE,CAC3C,SAAS,CAAC,IAAI,CAAC,IAAI,wCAA2B,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CACxE,CAAA;QACD,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,EAAE,CAAA;QAClD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAY,EAAC,GAAG,EAAE,CACvC,SAAS,CAAC,IAAI,CACZ,IAAI,uCAA0B,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CACjF,CACF,CAAA;QACD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChE,IAAI;YACJ,IAAA,wBAAc,EAAC,QAAQ,CAAC;SACzB,CAAC,CACH,CAAA;IACH,CAAC,CACF,CAAA;IAED,OAAO;QACL,GAAG;QACH,QAAQ,EAAE;YACR,GAAG;YACH,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ;SACjE;QACD,QAAQ;KACT,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAClB,SAAiB,EACjB,MAAc,EACd,SAAiB,EACjB,QAAgB;IAEhB,OAAO,OAAO,SAAS,QAAQ,MAAM,IAAI,SAAS,aAAa,QAAQ,EAAE,CAAA;AAC3E,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type Sync } from '../sync.js';
2
+ /**
3
+ * Creates an instance-scoped sync for the Identity Store directory associated with an
4
+ * IAM Identity Center instance.
5
+ */
6
+ export declare function createIdentityStoreDirectorySync(identityStoreId: string, instanceArn: string): Sync;
7
+ //# sourceMappingURL=identityStoreDirectory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identityStoreDirectory.d.ts","sourceRoot":"","sources":["../../../../src/syncs/sso/identityStoreDirectory.ts"],"names":[],"mappings":"AAYA,OAAO,EAAmB,KAAK,IAAI,EAA8B,MAAM,YAAY,CAAA;AAUnF;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GAClB,IAAI,CA4KN"}