Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save adam-fowler/de8bc87edafbafaf1d270e5f17197369 to your computer and use it in GitHub Desktop.
Save adam-fowler/de8bc87edafbafaf1d270e5f17197369 to your computer and use it in GitHub Desktop.
AWSSDKSwift: Create User report
```swift
let cloudTrail = CloudTrail(region:.euwest1)
let ses = SES(region:.euwest1)
let request = CloudTrail.LookupEventsRequest(
endTime:TimeStamp(Date()),
lookupAttributes: [.init(attributeKey: .username, attributeValue: "adamfowler")],
startTime: TimeStamp(Date(timeIntervalSinceNow: -24*60*60))
)
// generate report
let response = cloudTrail.lookupEvents(request)
// massage data
.map { response in
return response.events?.compactMap { event -> String? in
if let source = event.eventSource, let name = event.eventName {
return "source: \(source), event: \(name)"
}
return nil
} ?? []
}
// email report
.flatMap { events -> EventLoopFuture<SES.SendEmailResponse> in
let messageBody = "Usage:\n\(events.joined(separator: "\n"))"
let messageSubject = "Usage report for Adam Fowler"
let request = SES.SendEmailRequest(
destination: SES.Destination(toAddresses: ["reports@awssdkswift.com"]),
message: .init(body:.init(text:.init(data:messageBody)), subject: .init(data: messageSubject)),
source: "admin@awssdkswift.com")
return ses.sendEmail(request)
}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment