Skip to content

Commit d3ed6b9

Browse files
committed
fix: Drop Jobs tables
1 parent a4b3132 commit d3ed6b9

20 files changed

Lines changed: 59 additions & 233 deletions

plugins/source/aws/docs/tables/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,12 +292,15 @@
292292
- [aws_iam_accounts](aws_iam_accounts.md)
293293
- [aws_iam_credential_reports](aws_iam_credential_reports.md)
294294
- [aws_iam_groups](aws_iam_groups.md)
295+
- [aws_iam_group_last_accessed_details](aws_iam_group_last_accessed_details.md)
295296
- [aws_iam_group_policies](aws_iam_group_policies.md)
296297
- [aws_iam_instance_profiles](aws_iam_instance_profiles.md)
297298
- [aws_iam_openid_connect_identity_providers](aws_iam_openid_connect_identity_providers.md)
298299
- [aws_iam_password_policies](aws_iam_password_policies.md)
299300
- [aws_iam_policies](aws_iam_policies.md)
301+
- [aws_iam_policy_last_accessed_details](aws_iam_policy_last_accessed_details.md)
300302
- [aws_iam_roles](aws_iam_roles.md)
303+
- [aws_iam_role_last_accessed_details](aws_iam_role_last_accessed_details.md)
301304
- [aws_iam_role_policies](aws_iam_role_policies.md)
302305
- [aws_iam_saml_identity_providers](aws_iam_saml_identity_providers.md)
303306
- [aws_iam_server_certificates](aws_iam_server_certificates.md)
@@ -307,6 +310,7 @@
307310
- [aws_iam_user_access_keys](aws_iam_user_access_keys.md)
308311
- [aws_iam_user_attached_policies](aws_iam_user_attached_policies.md)
309312
- [aws_iam_user_groups](aws_iam_user_groups.md)
313+
- [aws_iam_user_last_accessed_details](aws_iam_user_last_accessed_details.md)
310314
- [aws_iam_user_policies](aws_iam_user_policies.md)
311315
- [aws_iam_virtual_mfa_devices](aws_iam_virtual_mfa_devices.md)
312316
- [aws_identitystore_groups](aws_identitystore_groups.md)

plugins/source/aws/resources/services/iam/groups.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func Groups() *schema.Table {
3333

3434
Relations: []*schema.Table{
3535
GroupPolicies(),
36-
groupLastAccessedJobs(),
36+
groupLastAccessedDetails(),
3737
},
3838
}
3939
}

plugins/source/aws/resources/services/iam/last_accessed_details.go

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func userLastAccessedDetails() *schema.Table {
2323
return &schema.Table{
2424
Name: "aws_iam_user_last_accessed_details",
2525
Description: `https://docs.aws.amazon.com/IAM/latest/APIReference/API_ServiceLastAccessed.html`,
26-
Resolver: fetchLastAccessedDetails,
26+
Resolver: fetchUserLastAccessedDetails,
2727
Transform: transformers.TransformWithStruct(&LastAccessed{}, transformers.WithUnwrapAllEmbeddedStructs(), transformers.WithPrimaryKeys("Arn", "ServiceNamespace")),
2828
Multiplex: client.ServiceAccountRegionMultiplexer("iam"),
2929
Columns: []schema.Column{
@@ -36,7 +36,7 @@ func roleLastAccessedDetails() *schema.Table {
3636
return &schema.Table{
3737
Name: "aws_iam_role_last_accessed_details",
3838
Description: `https://docs.aws.amazon.com/IAM/latest/APIReference/API_ServiceLastAccessed.html`,
39-
Resolver: fetchLastAccessedDetails,
39+
Resolver: fetchRoleLastAccessedDetails,
4040
Transform: transformers.TransformWithStruct(&LastAccessed{}, transformers.WithUnwrapAllEmbeddedStructs(), transformers.WithPrimaryKeys("Arn", "ServiceNamespace")),
4141
Multiplex: client.ServiceAccountRegionMultiplexer("iam"),
4242
Columns: []schema.Column{
@@ -49,7 +49,7 @@ func groupLastAccessedDetails() *schema.Table {
4949
return &schema.Table{
5050
Name: "aws_iam_group_last_accessed_details",
5151
Description: `https://docs.aws.amazon.com/IAM/latest/APIReference/API_ServiceLastAccessed.html`,
52-
Resolver: fetchLastAccessedDetails,
52+
Resolver: fetchGroupLastAccessedDetails,
5353
Transform: transformers.TransformWithStruct(&LastAccessed{}, transformers.WithUnwrapAllEmbeddedStructs(), transformers.WithPrimaryKeys("Arn", "ServiceNamespace")),
5454
Multiplex: client.ServiceAccountRegionMultiplexer("iam"),
5555
Columns: []schema.Column{
@@ -62,7 +62,7 @@ func policyLastAccessedDetails() *schema.Table {
6262
return &schema.Table{
6363
Name: "aws_iam_policy_last_accessed_details",
6464
Description: `https://docs.aws.amazon.com/IAM/latest/APIReference/API_ServiceLastAccessed.html`,
65-
Resolver: fetchLastAccessedDetails,
65+
Resolver: fetchPolicyLastAccessedDetails,
6666
Transform: transformers.TransformWithStruct(&LastAccessed{}, transformers.WithUnwrapAllEmbeddedStructs(), transformers.WithPrimaryKeys("Arn", "ServiceNamespace")),
6767
Multiplex: client.ServiceAccountRegionMultiplexer("iam"),
6868
Columns: []schema.Column{
@@ -71,11 +71,41 @@ func policyLastAccessedDetails() *schema.Table {
7171
}
7272
}
7373

74-
func fetchLastAccessedDetails(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error {
74+
func fetchUserLastAccessedDetails(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error {
75+
user := parent.Item.(*types.User)
76+
return fetchLastAccessedDetails(ctx, meta, user.Arn, res)
77+
}
78+
79+
func fetchRoleLastAccessedDetails(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error {
80+
role := parent.Item.(*types.Role)
81+
return fetchLastAccessedDetails(ctx, meta, role.Arn, res)
82+
}
83+
84+
func fetchGroupLastAccessedDetails(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error {
85+
group := parent.Item.(types.Group)
86+
return fetchLastAccessedDetails(ctx, meta, group.Arn, res)
87+
}
88+
89+
func fetchPolicyLastAccessedDetails(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error {
90+
policy := parent.Item.(types.ManagedPolicyDetail)
91+
return fetchLastAccessedDetails(ctx, meta, policy.Arn, res)
92+
}
93+
94+
func fetchLastAccessedDetails(ctx context.Context, meta schema.ClientMeta, arn *string, res chan<- any) error {
7595
svc := meta.(*client.Client).Services().Iam
76-
job := parent.Item.(Job)
96+
generateConfig := iam.GenerateServiceLastAccessedDetailsInput{
97+
Arn: arn,
98+
Granularity: types.AccessAdvisorUsageGranularityTypeActionLevel,
99+
}
100+
output, err := svc.GenerateServiceLastAccessedDetails(ctx, &generateConfig)
101+
if err != nil {
102+
return err
103+
}
104+
105+
jobId := output.JobId
106+
77107
config := iam.GetServiceLastAccessedDetailsInput{
78-
JobId: &job.JobId,
108+
JobId: jobId,
79109
MaxItems: aws.Int32(1000),
80110
}
81111

@@ -94,8 +124,8 @@ func fetchLastAccessedDetails(ctx context.Context, meta schema.ClientMeta, paren
94124
case types.JobStatusTypeCompleted:
95125
for _, detail := range details.ServicesLastAccessed {
96126
res <- LastAccessed{
97-
Arn: job.Arn,
98-
JobId: job.JobId,
127+
Arn: *arn,
128+
JobId: *jobId,
99129
ServiceLastAccessed: detail,
100130
}
101131
}

plugins/source/aws/resources/services/iam/last_accessed_jobs.go

Lines changed: 0 additions & 108 deletions
This file was deleted.

plugins/source/aws/resources/services/iam/policies.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ func Policies() *schema.Table {
3535
Resolver: resolveIamPolicyVersionList,
3636
},
3737
},
38-
Relations: []*schema.Table{policyLastAccessedJobs()},
38+
Relations: []*schema.Table{policyLastAccessedDetails()},
3939
}
4040
}

plugins/source/aws/resources/services/iam/roles.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func Roles() *schema.Table {
4444

4545
Relations: []*schema.Table{
4646
RolePolicies(),
47-
roleLastAccessedJobs(),
47+
roleLastAccessedDetails(),
4848
},
4949
}
5050
}

plugins/source/aws/resources/services/iam/users.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func Users() *schema.Table {
4444
UserPolicies(),
4545
SshPublicKeys(),
4646
SigningCertificates(),
47-
userLastAccessedJobs(),
47+
userLastAccessedDetails(),
4848
},
4949
}
5050
}

website/pages/docs/plugins/sources/aws/tables.md

Lines changed: 4 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

website/tables/aws/aws_iam_group_last_accessed_details.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ The composite primary key for this table is (**arn**, **service_namespace**).
66

77
## Relations
88

9-
This table depends on [aws_iam_group_last_accessed_jobs](aws_iam_group_last_accessed_jobs).
9+
This table depends on [aws_iam_groups](aws_iam_groups).
1010

1111
## Columns
1212

website/tables/aws/aws_iam_group_last_accessed_jobs.md

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)