├── .git-blame-ignore-revs ├── .github ├── dependabot.yml ├── release-drafter.yml └── workflows │ ├── ci.yaml │ └── release.yaml ├── .gitignore ├── .jvmopts ├── .mergify.yml ├── .scalafmt.conf ├── LICENSE.txt ├── README.md ├── build.sbt ├── project ├── build.properties └── plugins.sbt ├── publishing.sbt ├── scripts └── release.sh └── src └── main ├── scala-2.13 └── net │ └── exoego │ └── facade │ └── aws_lambda │ └── literal │ └── literal.scala ├── scala-3 └── net │ └── exoego │ └── facade │ └── aws_lambda │ └── literal │ └── literal.scala └── scala └── net └── exoego └── facade └── aws_lambda ├── Handler.scala ├── alb.scala ├── apigateway_authorizer.scala ├── apigateway_common.scala ├── apigateway_proxy.scala ├── appsync-resolver.scala ├── cloudformation_custom_resource.scala ├── cloudfront.scala ├── cloudfront_request.scala ├── cloudfront_response.scala ├── cloudwatch_events.scala ├── cloudwatch_logs.scala ├── codebuild_cloudwatch_state.scala ├── codepipeline.scala ├── codepipeline_cloudwatch_action.scala ├── codepipeline_cloudwatch_pipeline.scala ├── codepipeline_cloudwatch_stage.scala ├── cognito_userpool_common.scala ├── cognito_userpool_create_auth_challenge.scala ├── cognito_userpool_custom_email_sender.scala ├── cognito_userpool_custom_message.scala ├── cognito_userpool_define_auth_challenge.scala ├── cognito_userpool_post_authentication.scala ├── cognito_userpool_post_confirmation.scala ├── cognito_userpool_pre_authentication.scala ├── cognito_userpool_pre_signup.scala ├── cognito_userpool_pre_token_generation.scala ├── cognito_userpool_user_migration.scala ├── cognito_userpool_verify_auth_challenge_response.scala ├── connet-contact-flow.scala ├── dynamodb_stream.scala ├── eventbridge.scala ├── iot.scala ├── kinesis_firehose_transformation.scala ├── kinesis_stream.scala ├── lex.scala ├── msk.scala ├── package.scala ├── s3.scala ├── s3_batch.scala ├── ses.scala ├── sns.scala └── sqs.scala /.git-blame-ignore-revs: -------------------------------------------------------------------------------- 1 | # Scala Steward: Reformat with scalafmt 3.8.3 2 | f4852d0e3cca832d627c921f0c5c188af339b3c0 3 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: github-actions 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "20:00" 8 | open-pull-requests-limit: 10 9 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name-template: 'v$NEXT_PATCH_VERSION 🌈' 2 | tag-template: 'v$NEXT_PATCH_VERSION' 3 | categories: 4 | - title: '🚀 Features' 5 | labels: 6 | - 'feature' 7 | - 'enhancement' 8 | - title: '🐛 Bug Fixes' 9 | labels: 10 | - 'fix' 11 | - 'bugfix' 12 | - 'bug' 13 | - title: '📚 Docs' 14 | labels: 15 | - 'docs' 16 | - title: '🧰 Maintenance' 17 | labels: 18 | - 'chore' 19 | - 'internal' 20 | - 'dependencies' 21 | change-template: '- $TITLE @$AUTHOR (#$NUMBER)' 22 | sort-by: 'title' 23 | template: | 24 | ## Changes 25 | 26 | $CHANGES 27 | -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | push: 4 | branches: 5 | - master 6 | pull_request: 7 | types: 8 | - opened 9 | - synchronize 10 | - reopened 11 | jobs: 12 | ci: 13 | runs-on: ubuntu-latest 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | scala: [2.13.8, 3.1.0] 18 | steps: 19 | - uses: actions/checkout@v4 20 | - uses: olafurpg/setup-scala@v14 21 | with: 22 | java-version: adopt@1.11 23 | - uses: coursier/cache-action@v6 24 | - name: Run Tests 25 | run: sbt ++${{ matrix.scala }} scalafmtCheckAll scalafmtSbtCheck fullOptJS 26 | -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | name: Automatic Release 2 | on: 3 | push: 4 | branches: [master, main] 5 | tags: ["*"] 6 | jobs: 7 | publish: 8 | runs-on: ubuntu-20.04 9 | steps: 10 | - uses: actions/checkout@v4 11 | with: 12 | fetch-depth: 0 13 | - uses: olafurpg/setup-scala@v14 14 | - run: sbt test ci-release 15 | env: 16 | PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} 17 | PGP_SECRET: ${{ secrets.PGP_SECRET }} 18 | SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} 19 | SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Project exclude paths 2 | /project/project/target/ 3 | /project/target/ 4 | /target/ 5 | 6 | .idea/ 7 | -------------------------------------------------------------------------------- /.jvmopts: -------------------------------------------------------------------------------- 1 | -Xss4M 2 | -Xms1G 3 | -Xmx3G 4 | -XX:MaxMetaspaceSize=3G 5 | -XX:+CMSClassUnloadingEnabled 6 | -------------------------------------------------------------------------------- /.mergify.yml: -------------------------------------------------------------------------------- 1 | pull_request_rules: 2 | - name: Automatic merge on approval if Scala Steward 3 | conditions: 4 | - "author=scala-steward" 5 | - "#check-success>=3" 6 | actions: 7 | merge: 8 | method: merge 9 | label: 10 | add: ["chore"] 11 | 12 | - name: Automatic merge on approval if dependabot 13 | conditions: 14 | - "author~=^dependabot" 15 | - "#check-success>=3" 16 | actions: 17 | merge: 18 | method: merge 19 | label: 20 | add: ["chore"] 21 | -------------------------------------------------------------------------------- /.scalafmt.conf: -------------------------------------------------------------------------------- 1 | version = 3.8.3 2 | runner.dialect = scala213 3 | newlines.afterCurlyLambda = preserve 4 | maxColumn = 120 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DEPRECATED 2 | ============ 3 | 4 | Use [ScalablyTyped](https://scalablytyped.org/docs/readme.html) instead 🙇 5 | 6 | 7 | # aws-lambda-scalajs-facade 8 | 9 | A set of type definition and utility to implement AWS Lambda functions. 10 | 11 | This is NOT a type definition for AWS Lambda API in aws-sdk-js. 12 | It can be found in [aws-sdk-scalajs-facade](https://github.com/exoego/aws-sdk-scalajs-facade/tree/master/services/lambda/src/main/scala/facade/amazonaws/services). 13 | 14 | [exoego/scala-js-nodejs](https://github.com/exoego/scala-js-nodejs) offers type definition and utilities for Node.js API. 15 | 16 | 17 | ## Support matrix 18 | 19 | | | ScalaJS 0.6.28+ | ScalaJS 1.x | 20 | | ---------- | :------------------------------------|:-------------------------------------:| 21 | | Scala 2.13 | :heavy_check_mark: (0.9.0 was final) | :heavy_check_mark: | 22 | | Scala 2.12 | :heavy_check_mark: (0.9.0 was final) | :heavy_check_mark: (0.11.0 was final) | 23 | | Scala 2.11 | N/A | N/A | 24 | | Scala 2.10 | N/A | N/A | 25 | 26 | - :heavy_check_mark: Supported 27 | - :construction: Not supported but planned 28 | 29 | 30 | ## How to use 31 | 32 | Add dependency in `build.sbt`. 33 | 34 | ```sbt 35 | libraryDependencies += "net.exoego" %%% "aws-lambda-scalajs-facade" % "0.12.1" 36 | ``` 37 | 38 | Import and code. 39 | 40 | ```scala 41 | import scala.concurrent.{ExecutionContext, Future} 42 | import scala.scalajs.js 43 | import scala.scalajs.js.JSConverters._ 44 | import scala.scalajs.js.annotation._ 45 | import net.exoego.facade.aws_lambda._ 46 | 47 | object Main { 48 | @JSExportTopLevel("handler") 49 | val handler: AsyncAPIGatewayProxyHandler = (event, context) => { 50 | val json = js.JSON.stringify(event) 51 | js.Dynamic.global.console.log(json) 52 | 53 | implicit val ec = ExecutionContext.global 54 | handle(event).toJSPromise 55 | } 56 | 57 | private def handle(event: APIGatewayProxyEvent)(implicit ec: ExecutionContext): Future[APIGatewayProxyResult] = Future { 58 | APIGatewayProxyResult( 59 | statusCode = 200, 60 | body = "hello " + event.body, 61 | headers = js.defined(js.Dictionary("Content-Type" -> "text/plain")) 62 | ) 63 | } 64 | } 65 | ``` 66 | 67 | Some of pre-defined handler traits: 68 | 69 | * APIGatewayProxyHandlerV2 70 | * AppSyncResolverHandler 71 | * DynamoDBStreamHandler 72 | * S3Handler 73 | * SNSHandler 74 | 75 | Each has `Async~` variant that returns `js.Promise` instead of accepting callback. 76 | 77 | ## License 78 | 79 | * Apache License version 2.0 80 | * Basically generated from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/aws-lambda/index.d.ts which is under MIT License 81 | -------------------------------------------------------------------------------- /build.sbt: -------------------------------------------------------------------------------- 1 | enablePlugins(ScalaJSPlugin) 2 | 3 | lazy val scala213 = "2.13.14" 4 | lazy val scala3 = "3.4.2" 5 | crossScalaVersions := Seq(scala213, scala3) 6 | scalaVersion := scala213 7 | name := "aws-lambda-scalajs-facade" 8 | organization := "net.exoego" 9 | scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.CommonJSModule)) 10 | scalacOptions --= Seq( 11 | // false positive on js.native 12 | "-Wdead-code", 13 | "-Wunused:params", 14 | "-Wunused:explicits", 15 | "-Ywarn-dead-code", 16 | "-Ywarn-unused:params" 17 | ) 18 | 19 | libraryDependencies ++= Seq( 20 | "net.exoego" %%% "scalajs-dynamodb-shared" % "0.0.1" 21 | ) 22 | -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.6.2 2 | -------------------------------------------------------------------------------- /project/plugins.sbt: -------------------------------------------------------------------------------- 1 | addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") 2 | addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") 3 | addSbtPlugin("org.typelevel" % "sbt-tpolecat" % "0.5.1") 4 | addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.12") 5 | -------------------------------------------------------------------------------- /publishing.sbt: -------------------------------------------------------------------------------- 1 | import sbt._ 2 | import Keys._ 3 | import org.scalajs.sbtplugin.ScalaJSPlugin._ 4 | import autoImport._ 5 | 6 | licenses := Seq("APL2" -> url("http://www.apache.org/licenses/LICENSE-2.0.txt")) 7 | scmInfo := Some( 8 | ScmInfo( 9 | url("https://github.com/exoego/aws-lambda-scalajs-facade"), 10 | "scm:git:git@github.com:exoego/aws-lambda-scalajs-facade.git" 11 | ) 12 | ) 13 | homepage := scmInfo.value.map(_.browseUrl) 14 | developers := List( 15 | Developer( 16 | id = "exoego", 17 | name = "TATSUNO Yasuhiro", 18 | email = "ytatsuno.jp@gmail.com", 19 | url = url("https://www.exoego.net") 20 | ) 21 | ) 22 | Test / publishArtifact := false 23 | Compile / packageDoc / publishArtifact := true 24 | Compile / packageSrc / publishArtifact := true 25 | pomIncludeRepository := { _ => 26 | false 27 | } 28 | -------------------------------------------------------------------------------- /scripts/release.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | cat ./version.sbt 4 | sbt clean +publishSigned sonatypeBundleRelease 5 | -------------------------------------------------------------------------------- /src/main/scala-2.13/net/exoego/facade/aws_lambda/literal/literal.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | package object literal { 4 | type SESReceiptStatus = String 5 | type SESDmarcPolicy = String 6 | 7 | type S3BatchResultResultCode = String 8 | 9 | type MSKRecordTimestampType = String 10 | type MSKEventEventType = "aws:kafka" 11 | 12 | type LexEventCurrentIntentConfirmationStatus = String 13 | type LexEventInvocationSource = String 14 | type LexEventOutputDialogMode = String 15 | type LexDialogActionType = String 16 | type LexDialogActionMessageContentType = String 17 | type LexDialogActionCloseFulfillmentState = String 18 | 19 | type FirehoseRecordTransformationStatus = String 20 | 21 | type ConnectContactFlowChannel = String 22 | type ConnectContactFlowInitiationMethod = String 23 | type ConnectContactFlowEndpointType = "TELEPHONE_NUMBER" 24 | 25 | type CognitoUserPoolChallengeName = String 26 | type CognitoUserPoolUserStatus = String 27 | 28 | type CloudFrontCustomOriginProtocol = String 29 | type CloudFrontS3OriginAuthMethod = String 30 | type CloudFrontRequestBodyAction = String 31 | type CloudFrontRequestEncoding = String 32 | type CloudFrontEventType = String 33 | 34 | type CodeBuildStateType = String 35 | type CodeBuildPhaseType = String 36 | type CodeBuildPhaseStatusType = String 37 | type CodeBuildCacheType = String 38 | type CodeBuildSourceLocationType = String 39 | type CodeBuildEnvironmentType = String 40 | type CodeBuildEnvironmentPullCredentialsType = String 41 | type CodeBuildEnvironmentComputeType = String 42 | type CodeBuildEnvironmentVariableType = String 43 | 44 | type CodePipelineActionCategory = String 45 | type CodePipelineActionState = String 46 | type CodePipelineCloudWatchActionDetailType = "CodePipeline Action Execution State Change" 47 | type CodePipelineCloudWatchActionSource = "aws.codepipeline" 48 | type CodePipelineCloudWatchActionDetailTypeOwner = String 49 | 50 | type CodePipelineState = String 51 | type CodePipelineCloudWatchPipelineDetailType = "CodePipeline Pipeline Execution State Change" 52 | type CodePipelineCloudWatchPipelineSource = "aws.codepipeline" 53 | 54 | type CodePipelineStageState = String 55 | type CodePipelineCloudWatchStageDetailType = "CodePipeline Stage Execution State Change" 56 | type CodePipelineCloudWatchStageSource = "aws.codepipeline" 57 | 58 | type AccountTakeOverActionType = String 59 | 60 | type CloudFrontFunctionsContextEventType = String 61 | } 62 | -------------------------------------------------------------------------------- /src/main/scala-3/net/exoego/facade/aws_lambda/literal/literal.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | package object literal { 4 | type SESReceiptStatus = "PASS" | "FAIL" | "GRAY" | "PROCESSING_FAILED" | "DISABLED" 5 | type SESDmarcPolicy = "none" | "quarantine" | "reject" 6 | 7 | type S3BatchResultResultCode = "Succeeded" | "TemporaryFailure" | "PermanentFailure" 8 | 9 | type MSKRecordTimestampType = "CREATE_TIME" | "LOG_APPEND_TIME" 10 | type MSKEventEventType = "aws:kafka" 11 | 12 | type LexEventCurrentIntentConfirmationStatus = "None" | "Confirmed" | "Denied" 13 | type LexEventInvocationSource = "DialogCodeHook" | "FulfillmentCodeHook" 14 | type LexEventOutputDialogMode = "Text" | "Voice" 15 | type LexDialogActionType = "Close" | "ElicitIntent" | "ElicitSlot" | "ConfirmIntent" 16 | type LexDialogActionMessageContentType = "PlainText" | "SSML" | "CustomPayload" 17 | type LexDialogActionCloseFulfillmentState = "Fulfilled" | "Failed" 18 | 19 | type FirehoseRecordTransformationStatus = "Ok" | "Dropped" | "ProcessingFailed" 20 | 21 | type ConnectContactFlowChannel = "VOICE" | "CHAT" 22 | type ConnectContactFlowInitiationMethod = "INBOUND" | "OUTBOUND" | "TRANSFER" | "CALLBACK" | "API" 23 | type ConnectContactFlowEndpointType = "TELEPHONE_NUMBER" 24 | 25 | type CognitoUserPoolChallengeName = 26 | "PASSWORD_VERIFIER" | "SMS_MFA" | "DEVICE_SRP_AUTH" | "DEVICE_PASSWORD_VERIFIER" | "ADMIN_NO_SRP_AUTH" | "SRP_A" 27 | type CognitoUserPoolUserStatus = 28 | "UNCONFIRMED" | "CONFIRMED" | "ARCHIVED" | "COMPROMISED" | "UNKNOWN" | "RESET_REQUIRED" | "FORCE_CHANGE_PASSWORD" 29 | 30 | type CloudFrontCustomOriginProtocol = "http" | "https" 31 | type CloudFrontS3OriginAuthMethod = "origin-access-identity" | "none" 32 | type CloudFrontRequestBodyAction = "read-only" | "replace" 33 | type CloudFrontRequestEncoding = "base64" | "text" 34 | type CloudFrontEventType = "origin-request" | "origin-response" | "viewer-request" | "viewer-response" 35 | 36 | type CodeBuildStateType = "IN_PROGRESS" | "SUCCEEDED" | "FAILED" | "STOPPED" 37 | type CodeBuildPhaseType = 38 | "COMPLETED" | "FINALIZING" | "UPLOAD_ARTIFACTS" | "POST_BUILD" | "BUILD" | "PRE_BUILD" | "INSTALL" | "QUEUED" | "DOWNLOAD_SOURCE" | "PROVISIONING" | "SUBMITTED" 39 | type CodeBuildPhaseStatusType = "TIMED_OUT" | "STOPPED" | "FAILED" | "SUCCEEDED" | "FAULT" | "CLIENT_ERROR" 40 | type CodeBuildCacheType = "NO_CACHE" | "LOCAL" | "S3" 41 | type CodeBuildSourceLocationType = 42 | "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "BITBUCKET" | "S3" | "NO_SOURCE" 43 | type CodeBuildEnvironmentType = "LINUX_CONTAINER" | "LINUX_GPU_CONTAINER" | "WINDOWS_CONTAINER" | "ARM_CONTAINER" 44 | type CodeBuildEnvironmentPullCredentialsType = "CODEBUILD" | "SERVICE_ROLE" 45 | type CodeBuildEnvironmentComputeType = 46 | "BUILD_GENERAL1_SMALL" | "BUILD_GENERAL1_MEDIUM" | "BUILD_GENERAL1_LARGE" | "BUILD_GENERAL1_2XLARGE" 47 | type CodeBuildEnvironmentVariableType = "PARAMETER_STORE" | "PLAINTEXT" | "SECRETS_MANAGER" 48 | 49 | type CodePipelineActionCategory = "Approval" | "Build" | "Deploy" | "Invoke" | "Source" | "Test" 50 | type CodePipelineActionState = "STARTED" | "SUCCEEDED" | "FAILED" | "CANCELED" 51 | type CodePipelineCloudWatchActionDetailType = "CodePipeline Action Execution State Change" 52 | type CodePipelineCloudWatchActionSource = "aws.codepipeline" 53 | type CodePipelineCloudWatchActionDetailTypeOwner = "AWS" | "Custom" | "ThirdParty" 54 | 55 | type CodePipelineState = "STARTED" | "SUCCEEDED" | "RESUMED" | "FAILED" | "CANCELED" | "SUPERSEDED" 56 | type CodePipelineCloudWatchPipelineDetailType = "CodePipeline Pipeline Execution State Change" 57 | type CodePipelineCloudWatchPipelineSource = "aws.codepipeline" 58 | 59 | type CodePipelineStageState = "STARTED" | "SUCCEEDED" | "RESUMED" | "FAILED" | "CANCELED" 60 | type CodePipelineCloudWatchStageDetailType = "CodePipeline Stage Execution State Change" 61 | type CodePipelineCloudWatchStageSource = "aws.codepipeline" 62 | 63 | type AccountTakeOverActionType = "BLOCK" | "NO_ACTION" | "MFA" | "MFA_IF_CONFIGURED" | "MFA_REQUIRED" 64 | 65 | type CloudFrontFunctionsContextEventType = "viewer-request" | "viewer-response" 66 | } 67 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/Handler.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.| 5 | 6 | /** Callback-style handler 7 | * 8 | * @tparam TEvent 9 | * @tparam TResult 10 | */ 11 | trait Handler[TEvent, TResult] extends js.Function3[TEvent, Context, Callback[TResult], Unit] {} 12 | 13 | /** Asynchronous-style handler that returns js.Promise. This can be used Node.js 8 runtime or more 14 | * 15 | * @tparam TEvent 16 | * @tparam TResult 17 | */ 18 | trait AsyncHandler[TEvent, TResult] extends js.Function2[TEvent, Context, js.Promise[TResult]] {} 19 | 20 | @js.native 21 | trait Context extends js.Object { 22 | var callbackWaitsForEmptyEventLoop: Boolean = js.native 23 | var functionName: String = js.native 24 | var functionVersion: String = js.native 25 | var invokedFunctionArn: String = js.native 26 | var memoryLimitInMB: String = js.native 27 | var awsRequestId: String = js.native 28 | var logGroupName: String = js.native 29 | var logStreamName: String = js.native 30 | var identity: js.UndefOr[CognitoIdentity] = js.native 31 | var clientContext: js.UndefOr[ClientContext] = js.native 32 | def getRemainingTimeInMillis(): Double = js.native 33 | def done(error: js.Error = ???, result: js.Any = ???): Unit = js.native 34 | def fail(error: js.Error | String): Unit = js.native 35 | def succeed(messageOrObject: js.Any): Unit = js.native 36 | def succeed(message: String, `object`: js.Any): Unit = js.native 37 | } 38 | 39 | @js.native 40 | trait CognitoIdentity extends js.Object { 41 | var cognitoIdentityId: String = js.native 42 | var cognitoIdentityPoolId: String = js.native 43 | } 44 | object CognitoIdentity { 45 | def apply(cognitoIdentityId: String, cognitoIdentityPoolId: String): CognitoIdentity = { 46 | val _obj$ = js.Dynamic.literal( 47 | "cognitoIdentityId" -> cognitoIdentityId.asInstanceOf[js.Any], 48 | "cognitoIdentityPoolId" -> cognitoIdentityPoolId.asInstanceOf[js.Any] 49 | ) 50 | _obj$.asInstanceOf[CognitoIdentity] 51 | } 52 | } 53 | 54 | @js.native 55 | trait ClientContext extends js.Object { 56 | var client: ClientContextClient = js.native 57 | var Custom: js.UndefOr[js.Any] = js.native 58 | var env: ClientContextEnv = js.native 59 | } 60 | object ClientContext { 61 | def apply( 62 | client: ClientContextClient, 63 | env: ClientContextEnv, 64 | Custom: js.UndefOr[js.Any] = js.undefined 65 | ): ClientContext = { 66 | val _obj$ = js.Dynamic.literal( 67 | "client" -> client.asInstanceOf[js.Any], 68 | "env" -> env.asInstanceOf[js.Any] 69 | ) 70 | Custom.foreach(_v => _obj$.updateDynamic("Custom")(_v)) 71 | _obj$.asInstanceOf[ClientContext] 72 | } 73 | } 74 | 75 | @js.native 76 | trait ClientContextClient extends js.Object { 77 | var installationId: String = js.native 78 | var appTitle: String = js.native 79 | var appVersionName: String = js.native 80 | var appVersionCode: String = js.native 81 | var appPackageName: String = js.native 82 | } 83 | object ClientContextClient { 84 | def apply( 85 | installationId: String, 86 | appTitle: String, 87 | appVersionName: String, 88 | appVersionCode: String, 89 | appPackageName: String 90 | ): ClientContextClient = { 91 | val _obj$ = js.Dynamic.literal( 92 | "installationId" -> installationId.asInstanceOf[js.Any], 93 | "appTitle" -> appTitle.asInstanceOf[js.Any], 94 | "appVersionName" -> appVersionName.asInstanceOf[js.Any], 95 | "appVersionCode" -> appVersionCode.asInstanceOf[js.Any], 96 | "appPackageName" -> appPackageName.asInstanceOf[js.Any] 97 | ) 98 | _obj$.asInstanceOf[ClientContextClient] 99 | } 100 | } 101 | 102 | @js.native 103 | trait ClientContextEnv extends js.Object { 104 | var platformVersion: String = js.native 105 | var platform: String = js.native 106 | var make: String = js.native 107 | var model: String = js.native 108 | var locale: String = js.native 109 | } 110 | object ClientContextEnv { 111 | def apply( 112 | platformVersion: String, 113 | platform: String, 114 | make: String, 115 | model: String, 116 | locale: String 117 | ): ClientContextEnv = { 118 | val _obj$ = js.Dynamic.literal( 119 | "platformVersion" -> platformVersion.asInstanceOf[js.Any], 120 | "platform" -> platform.asInstanceOf[js.Any], 121 | "make" -> make.asInstanceOf[js.Any], 122 | "model" -> model.asInstanceOf[js.Any], 123 | "locale" -> locale.asInstanceOf[js.Any] 124 | ) 125 | _obj$.asInstanceOf[ClientContextEnv] 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/alb.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.| 5 | 6 | @js.native 7 | trait ALBEventRequestContext extends js.Object { 8 | var elb: ALBEventRequestContext.Elb = js.native 9 | } 10 | 11 | object ALBEventRequestContext { 12 | def apply(elb: ALBEventRequestContext.Elb): ALBEventRequestContext = { 13 | val _obj$ = js.Dynamic.literal( 14 | "elb" -> elb.asInstanceOf[js.Any] 15 | ) 16 | _obj$.asInstanceOf[ALBEventRequestContext] 17 | } 18 | 19 | @js.native 20 | trait Elb extends js.Object { 21 | var targetGroupArn: String = js.native 22 | } 23 | 24 | object Elb { 25 | def apply(targetGroupArn: String): Elb = { 26 | val _obj$ = js.Dynamic.literal( 27 | "targetGroupArn" -> targetGroupArn.asInstanceOf[js.Any] 28 | ) 29 | _obj$.asInstanceOf[Elb] 30 | } 31 | } 32 | } 33 | 34 | @js.native 35 | trait ALBEvent extends js.Object { 36 | var requestContext: ALBEventRequestContext = js.native 37 | var httpMethod: String = js.native 38 | var path: String = js.native 39 | var queryStringParameters: js.UndefOr[ALBEvent.QueryStringParameters] = js.native 40 | var headers: js.UndefOr[ALBEvent.Headers] = js.native 41 | var multiValueQueryStringParameters: js.UndefOr[ALBEvent.MultiValueQueryStringParameters] = js.native 42 | var multiValueHeaders: js.UndefOr[ALBEvent.MultiValueHeaders] = js.native 43 | var body: String | Null = js.native 44 | var isBase64Encoded: Boolean = js.native 45 | } 46 | 47 | object ALBEvent { 48 | type QueryStringParameters = js.Dictionary[String] 49 | type Headers = js.Dictionary[String] 50 | type MultiValueQueryStringParameters = js.Dictionary[js.Array[String]] 51 | type MultiValueHeaders = js.Dictionary[js.Array[String]] 52 | 53 | def apply( 54 | requestContext: ALBEventRequestContext, 55 | httpMethod: String, 56 | path: String, 57 | isBase64Encoded: Boolean, 58 | body: String | Null = null, 59 | queryStringParameters: js.UndefOr[QueryStringParameters] = js.undefined, 60 | headers: js.UndefOr[Headers] = js.undefined, 61 | multiValueQueryStringParameters: js.UndefOr[MultiValueQueryStringParameters] = js.undefined, 62 | multiValueHeaders: js.UndefOr[MultiValueHeaders] = js.undefined 63 | ): ALBEvent = { 64 | val _obj$ = js.Dynamic.literal( 65 | "requestContext" -> requestContext.asInstanceOf[js.Any], 66 | "httpMethod" -> httpMethod.asInstanceOf[js.Any], 67 | "path" -> path.asInstanceOf[js.Any], 68 | "body" -> body.asInstanceOf[js.Any], 69 | "isBase64Encoded" -> isBase64Encoded.asInstanceOf[js.Any] 70 | ) 71 | queryStringParameters.foreach(_v => _obj$.updateDynamic("queryStringParameters")(_v.asInstanceOf[js.Any])) 72 | headers.foreach(_v => _obj$.updateDynamic("headers")(_v.asInstanceOf[js.Any])) 73 | multiValueQueryStringParameters.foreach(_v => 74 | _obj$.updateDynamic("multiValueQueryStringParameters")(_v.asInstanceOf[js.Any]) 75 | ) 76 | multiValueHeaders.foreach(_v => _obj$.updateDynamic("multiValueHeaders")(_v.asInstanceOf[js.Any])) 77 | _obj$.asInstanceOf[ALBEvent] 78 | } 79 | } 80 | 81 | @js.native 82 | trait ALBResult extends js.Object { 83 | var statusCode: Double = js.native 84 | var statusDescription: js.UndefOr[String] = js.native 85 | var headers: js.UndefOr[ALBResult.Headers] = js.native 86 | var multiValueHeaders: js.UndefOr[ALBResult.MultiValueHeaders] = js.native 87 | var body: js.UndefOr[String] = js.native 88 | var isBase64Encoded: js.UndefOr[Boolean] = js.native 89 | } 90 | 91 | object ALBResult { 92 | type Headers = HeadersBDS 93 | type MultiValueHeaders = MultiValueHeadersBDS 94 | 95 | def apply( 96 | statusCode: Double, 97 | statusDescription: js.UndefOr[String | Unit] = js.undefined, 98 | headers: js.UndefOr[Headers] = js.undefined, 99 | multiValueHeaders: js.UndefOr[MultiValueHeaders] = js.undefined, 100 | body: js.UndefOr[String] = js.undefined, 101 | isBase64Encoded: js.UndefOr[Boolean] = js.undefined 102 | ): ALBResult = { 103 | val _obj$ = js.Dynamic.literal( 104 | "statusCode" -> statusCode.asInstanceOf[js.Any] 105 | ) 106 | statusDescription.foreach(_v => _obj$.updateDynamic("statusDescription")(_v.asInstanceOf[js.Any])) 107 | headers.foreach(_v => _obj$.updateDynamic("headers")(_v.asInstanceOf[js.Any])) 108 | multiValueHeaders.foreach(_v => _obj$.updateDynamic("multiValueHeaders")(_v.asInstanceOf[js.Any])) 109 | body.foreach(_v => _obj$.updateDynamic("body")(_v.asInstanceOf[js.Any])) 110 | isBase64Encoded.foreach(_v => _obj$.updateDynamic("isBase64Encoded")(_v.asInstanceOf[js.Any])) 111 | _obj$.asInstanceOf[ALBResult] 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/apigateway_authorizer.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.| 5 | 6 | @js.native 7 | trait BaseAPIGatewayAuthorizerEvent[T <: String] extends js.Object { 8 | var `type`: T = js.native 9 | var methodArn: String = js.native 10 | } 11 | 12 | @js.native 13 | trait APIGatewayTokenAuthorizerEvent extends BaseAPIGatewayAuthorizerEvent["TOKEN"] { 14 | var authorizationToken: String = js.native 15 | } 16 | 17 | object APIGatewayTokenAuthorizerEvent { 18 | def apply( 19 | methodArn: String, 20 | authorizationToken: String 21 | ): APIGatewayTokenAuthorizerEvent = { 22 | val _obj$ = js.Dynamic.literal( 23 | "type" -> "TOKEN", 24 | "methodArn" -> methodArn.asInstanceOf[js.Any], 25 | "authorizationToken" -> authorizationToken.asInstanceOf[js.Any] 26 | ) 27 | _obj$.asInstanceOf[APIGatewayTokenAuthorizerEvent] 28 | } 29 | } 30 | 31 | @js.native 32 | trait APIGatewayRequestAuthorizerEvent extends BaseAPIGatewayAuthorizerEvent["REQUEST"] { 33 | var resource: String = js.native 34 | var path: String = js.native 35 | var httpMethod: String = js.native 36 | var headers: js.Dictionary[String] | Null = js.native 37 | var multiValueHeaders: js.Dictionary[js.Array[String]] | Null = js.native 38 | var pathParameters: js.Dictionary[String] | Null = js.native 39 | var queryStringParameters: js.Dictionary[String] | Null = js.native 40 | var multiValueQueryStringParameters: js.Dictionary[js.Array[String]] | Null = js.native 41 | var stageVariables: js.Dictionary[String] | Null = js.native 42 | var requestContext: APIGatewayEventRequestContextWithAuthorizer[Unit] = js.native 43 | } 44 | 45 | object APIGatewayRequestAuthorizerEvent { 46 | def apply( 47 | methodArn: String, 48 | resource: String, 49 | path: String, 50 | httpMethod: String, 51 | requestContext: APIGatewayEventRequestContextWithAuthorizer[Unit], 52 | headers: js.Dictionary[String] | Null = null, 53 | multiValueHeaders: js.Dictionary[js.Array[String]] | Null = null, 54 | pathParameters: js.Dictionary[String] | Null = null, 55 | queryStringParameters: js.Dictionary[String] | Null = null, 56 | multiValueQueryStringParameters: js.Dictionary[js.Array[String]] | Null = null, 57 | stageVariables: js.Dictionary[String] | Null = null 58 | ): APIGatewayRequestAuthorizerEvent = { 59 | val _obj$ = js.Dynamic.literal( 60 | "type" -> "REQUEST", 61 | "methodArn" -> methodArn.asInstanceOf[js.Any], 62 | "resource" -> resource.asInstanceOf[js.Any], 63 | "path" -> path.asInstanceOf[js.Any], 64 | "httpMethod" -> httpMethod.asInstanceOf[js.Any], 65 | "headers" -> headers.asInstanceOf[js.Any], 66 | "multiValueHeaders" -> multiValueHeaders.asInstanceOf[js.Any], 67 | "pathParameters" -> pathParameters.asInstanceOf[js.Any], 68 | "queryStringParameters" -> queryStringParameters.asInstanceOf[js.Any], 69 | "multiValueQueryStringParameters" -> multiValueQueryStringParameters.asInstanceOf[js.Any], 70 | "stageVariables" -> stageVariables.asInstanceOf[js.Any], 71 | "requestContext" -> requestContext.asInstanceOf[js.Any] 72 | ) 73 | _obj$.asInstanceOf[APIGatewayRequestAuthorizerEvent] 74 | } 75 | } 76 | 77 | @js.native 78 | trait APIGatewayAuthorizerResult extends js.Object { 79 | var principalId: String = js.native 80 | var policyDocument: PolicyDocument = js.native 81 | var context: js.UndefOr[APIGatewayAuthorizerResultContext | Null] = js.native 82 | var usageIdentifierKey: js.UndefOr[String | Null] = js.native 83 | } 84 | 85 | object APIGatewayAuthorizerResult { 86 | def apply( 87 | principalId: String, 88 | policyDocument: PolicyDocument, 89 | context: js.UndefOr[APIGatewayAuthorizerResultContext | Null] = js.undefined, 90 | usageIdentifierKey: js.UndefOr[String | Null] = js.undefined 91 | ): APIGatewayAuthorizerResult = { 92 | val _obj$ = js.Dynamic.literal( 93 | "principalId" -> principalId.asInstanceOf[js.Any], 94 | "policyDocument" -> policyDocument.asInstanceOf[js.Any] 95 | ) 96 | context.foreach(_v => _obj$.updateDynamic("context")(_v.asInstanceOf[js.Any])) 97 | usageIdentifierKey.foreach(_v => _obj$.updateDynamic("usageIdentifierKey")(_v.asInstanceOf[js.Any])) 98 | _obj$.asInstanceOf[APIGatewayAuthorizerResult] 99 | } 100 | } 101 | 102 | @js.native 103 | trait APIGatewayAuthorizerWithContextResult[TAuthorizerContext <: APIGatewayAuthorizerResultContext] extends js.Object { 104 | var principalId: String = js.native 105 | var policyDocument: PolicyDocument = js.native 106 | var context: TAuthorizerContext = js.native 107 | var usageIdentifierKey: js.UndefOr[String | Null] = js.native 108 | } 109 | 110 | object APIGatewayAuthorizerWithContextResult { 111 | def apply[TAuthorizerContext <: APIGatewayAuthorizerResultContext]( 112 | principalId: String, 113 | policyDocument: PolicyDocument, 114 | context: TAuthorizerContext, 115 | usageIdentifierKey: js.UndefOr[String | Null] = js.undefined 116 | ): APIGatewayAuthorizerWithContextResult[TAuthorizerContext] = { 117 | val _obj$ = js.Dynamic.literal( 118 | "principalId" -> principalId.asInstanceOf[js.Any], 119 | "policyDocument" -> policyDocument.asInstanceOf[js.Any], 120 | "context" -> context.asInstanceOf[js.Any] 121 | ) 122 | usageIdentifierKey.foreach(_v => _obj$.updateDynamic("usageIdentifierKey")(_v.asInstanceOf[js.Any])) 123 | _obj$.asInstanceOf[APIGatewayAuthorizerWithContextResult[TAuthorizerContext]] 124 | } 125 | } 126 | 127 | @js.native 128 | trait PolicyDocument extends js.Object { 129 | var Version: String = js.native 130 | var Id: js.UndefOr[String] = js.native 131 | var Statement: js.Array[Statement] = js.native 132 | } 133 | 134 | object PolicyDocument { 135 | def apply( 136 | Version: String, 137 | Statement: js.Array[Statement], 138 | Id: js.UndefOr[String] = js.undefined 139 | ): PolicyDocument = { 140 | val _obj$ = js.Dynamic.literal( 141 | "Version" -> Version.asInstanceOf[js.Any], 142 | "Statement" -> Statement.asInstanceOf[js.Any] 143 | ) 144 | Id.foreach(_v => _obj$.updateDynamic("Id")(_v.asInstanceOf[js.Any])) 145 | _obj$.asInstanceOf[PolicyDocument] 146 | } 147 | } 148 | 149 | @js.native 150 | trait BaseStatement extends js.Object { 151 | var Effect: String = js.native 152 | var Sid: js.UndefOr[String] = js.native 153 | var Condition: js.UndefOr[ConditionBlock] = js.native 154 | } 155 | 156 | object BaseStatement { 157 | def apply( 158 | Effect: String, 159 | Sid: js.UndefOr[String] = js.undefined, 160 | Condition: js.UndefOr[ConditionBlock] = js.undefined 161 | ): BaseStatement = { 162 | val _obj$ = js.Dynamic.literal( 163 | "Effect" -> Effect.asInstanceOf[js.Any] 164 | ) 165 | Sid.foreach(_v => _obj$.updateDynamic("Sid")(_v.asInstanceOf[js.Any])) 166 | Condition.foreach(_v => _obj$.updateDynamic("Condition")(_v.asInstanceOf[js.Any])) 167 | _obj$.asInstanceOf[BaseStatement] 168 | } 169 | } 170 | 171 | @js.native 172 | trait MaybeStatementPrincipal extends js.Object { 173 | var Principal: js.UndefOr[PrincipalValue] = js.native 174 | var NotPrincipal: js.UndefOr[PrincipalValue] = js.native 175 | } 176 | 177 | object MaybeStatementPrincipal { 178 | def apply( 179 | Principal: js.UndefOr[PrincipalValue] = js.undefined, 180 | NotPrincipal: js.UndefOr[PrincipalValue] = js.undefined 181 | ): MaybeStatementPrincipal = { 182 | val _obj$ = js.Dynamic.literal( 183 | ) 184 | Principal.foreach(_v => _obj$.updateDynamic("Principal")(_v.asInstanceOf[js.Any])) 185 | NotPrincipal.foreach(_v => _obj$.updateDynamic("NotPrincipal")(_v.asInstanceOf[js.Any])) 186 | _obj$.asInstanceOf[MaybeStatementPrincipal] 187 | } 188 | } 189 | 190 | @js.native 191 | trait MaybeStatementResource extends js.Object { 192 | var Resource: js.UndefOr[String | js.Array[String]] = js.native 193 | var NotResource: js.UndefOr[String | js.Array[String]] = js.native 194 | } 195 | 196 | object MaybeStatementResource { 197 | def apply( 198 | Resource: js.UndefOr[String | js.Array[String]] = js.undefined, 199 | NotResource: js.UndefOr[String | js.Array[String]] = js.undefined 200 | ): MaybeStatementResource = { 201 | val _obj$ = js.Dynamic.literal( 202 | ) 203 | Resource.foreach(_v => _obj$.updateDynamic("Resource")(_v.asInstanceOf[js.Any])) 204 | NotResource.foreach(_v => _obj$.updateDynamic("NotResource")(_v.asInstanceOf[js.Any])) 205 | _obj$.asInstanceOf[MaybeStatementResource] 206 | } 207 | } 208 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/apigateway_common.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.annotation.JSBracketAccess 5 | import scala.scalajs.js.| 6 | 7 | @js.native 8 | trait APIGatewayAuthorizerResultContext extends js.Object { 9 | @JSBracketAccess 10 | def apply(key: String): js.UndefOr[String | Double | Boolean] = js.native 11 | } 12 | 13 | trait APIGatewayEventRequestContextWithAuthorizer[TAuthorizerContext] extends js.Object { 14 | var accountId: String 15 | var apiId: String 16 | var authorizer: TAuthorizerContext 17 | var connectedAt: js.UndefOr[Double] 18 | var connectionId: js.UndefOr[String] 19 | var domainName: js.UndefOr[String] 20 | var domainPrefix: js.UndefOr[String] 21 | var eventType: js.UndefOr[String] 22 | var extendedRequestId: js.UndefOr[String] 23 | var protocol: String 24 | var httpMethod: String 25 | var identity: APIGatewayEventIdentity 26 | var messageDirection: js.UndefOr[String] 27 | var messageId: js.UndefOr[String | Null] 28 | var path: String 29 | var stage: String 30 | var requestId: String 31 | var requestTime: js.UndefOr[String] 32 | var requestTimeEpoch: Double 33 | var resourceId: String 34 | var resourcePath: String 35 | var routeKey: js.UndefOr[String] 36 | } 37 | 38 | @js.native 39 | trait APIGatewayEventClientCertificate extends js.Object { 40 | var clientCertPem: String = js.native 41 | var serialNumber: String = js.native 42 | var subjectDN: String = js.native 43 | var issuerDN: String = js.native 44 | var validity: APIGatewayEventClientCertificate.Validity = js.native 45 | } 46 | 47 | object APIGatewayEventClientCertificate { 48 | @js.native 49 | trait Validity extends js.Object { 50 | var notAfter: String = js.native 51 | var notBefore: String = js.native 52 | } 53 | } 54 | 55 | trait APIGatewayEventIdentity extends js.Object { 56 | var accessKey: String | Null 57 | var accountId: String | Null 58 | var apiKey: String | Null 59 | var apiKeyId: String | Null 60 | var caller: String | Null 61 | var clientCert: APIGatewayEventClientCertificate | Null 62 | var cognitoAuthenticationProvider: String | Null 63 | var cognitoAuthenticationType: String | Null 64 | var cognitoIdentityId: String | Null 65 | var cognitoIdentityPoolId: String | Null 66 | var principalOrgId: String | Null 67 | var sourceIp: String 68 | var user: String | Null 69 | var userAgent: String | Null 70 | var userArn: String | Null 71 | } 72 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/appsync-resolver.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.| 5 | 6 | @js.native 7 | trait AppSyncResolverEvent[T <: js.Any] extends js.Object { 8 | var arguments: T = js.native 9 | var identity: js.UndefOr[AppSyncIdentity] = js.native 10 | var source: AppSyncResolverEvent.Source | Null = js.native 11 | var request: AppSyncResolverEventRequest = js.native 12 | var info: AppSyncResolverEventInfo = js.native 13 | var prev: AppSyncResolverEvent.Prev | Null = js.native 14 | var stash: AppSyncResolverEvent.Stash = js.native 15 | } 16 | object AppSyncResolverEvent { 17 | type Source = js.Dictionary[js.Any] 18 | type Prev = js.Dictionary[js.Any] 19 | type Stash = js.Dictionary[js.Any] 20 | } 21 | 22 | @js.native 23 | trait AppSyncResolverEventRequest extends js.Object { 24 | var headers: AppSyncResolverEventRequest.Headers = js.native 25 | } 26 | object AppSyncResolverEventRequest { 27 | type Headers = js.Dictionary[String] 28 | 29 | def apply( 30 | headers: AppSyncResolverEventRequest.Headers 31 | ): AppSyncResolverEventRequest = { 32 | val _obj$ = js.Dynamic.literal( 33 | "headers" -> headers.asInstanceOf[js.Any] 34 | ) 35 | _obj$.asInstanceOf[AppSyncResolverEventRequest] 36 | } 37 | } 38 | 39 | @js.native 40 | trait AppSyncResolverEventInfo extends js.Object { 41 | var selectionSetList: js.Array[String] = js.native 42 | var selectionSetGraphQL: String = js.native 43 | var parentTypeName: String = js.native 44 | var fieldName: String = js.native 45 | var variables: AppSyncResolverEventInfo.Variables = js.native 46 | } 47 | 48 | object AppSyncResolverEventInfo { 49 | type Variables = js.Dictionary[js.Any] 50 | 51 | def apply( 52 | selectionSetList: js.Array[String], 53 | selectionSetGraphQL: String, 54 | parentTypeName: String, 55 | fieldName: String, 56 | variables: Variables 57 | ): AppSyncResolverEventInfo = { 58 | val _obj$ = js.Dynamic.literal( 59 | "selectionSetList" -> selectionSetList.asInstanceOf[js.Any], 60 | "selectionSetGraphQL" -> selectionSetGraphQL.asInstanceOf[js.Any], 61 | "parentTypeName" -> parentTypeName.asInstanceOf[js.Any], 62 | "fieldName" -> fieldName.asInstanceOf[js.Any], 63 | "variables" -> variables.asInstanceOf[js.Any] 64 | ) 65 | _obj$.asInstanceOf[AppSyncResolverEventInfo] 66 | } 67 | } 68 | 69 | @js.native 70 | trait AppSyncIdentityIAM extends js.Object { 71 | var accountId: String = js.native 72 | var cognitoIdentityPoolId: String = js.native 73 | var cognitoIdentityId: String = js.native 74 | var sourceIp: js.Array[String] = js.native 75 | var username: String = js.native 76 | var userArn: String = js.native 77 | var cognitoIdentityAuthType: String = js.native 78 | var cognitoIdentityAuthProvider: String = js.native 79 | } 80 | 81 | object AppSyncIdentityIAM { 82 | def apply( 83 | accountId: String, 84 | cognitoIdentityPoolId: String, 85 | cognitoIdentityId: String, 86 | sourceIp: js.Array[String], 87 | username: String, 88 | userArn: String, 89 | cognitoIdentityAuthType: String, 90 | cognitoIdentityAuthProvider: String 91 | ): AppSyncIdentityIAM = { 92 | val _obj$ = js.Dynamic.literal( 93 | "accountId" -> accountId.asInstanceOf[js.Any], 94 | "cognitoIdentityPoolId" -> cognitoIdentityPoolId.asInstanceOf[js.Any], 95 | "cognitoIdentityId" -> cognitoIdentityId.asInstanceOf[js.Any], 96 | "sourceIp" -> sourceIp.asInstanceOf[js.Any], 97 | "username" -> username.asInstanceOf[js.Any], 98 | "userArn" -> userArn.asInstanceOf[js.Any], 99 | "cognitoIdentityAuthType" -> cognitoIdentityAuthType.asInstanceOf[js.Any], 100 | "cognitoIdentityAuthProvider" -> cognitoIdentityAuthProvider.asInstanceOf[js.Any] 101 | ) 102 | _obj$.asInstanceOf[AppSyncIdentityIAM] 103 | } 104 | } 105 | 106 | @js.native 107 | trait AppSyncAuthorizerEvent extends js.Object { 108 | var authorizationToken: String = js.native 109 | var requestContext: AppSyncAuthorizerEvent.RequestContext = js.native 110 | } 111 | 112 | object AppSyncAuthorizerEvent { 113 | def apply( 114 | authorizationToken: String, 115 | requestContext: AppSyncAuthorizerEvent.RequestContext 116 | ): AppSyncAuthorizerEvent = { 117 | val _obj$ = js.Dynamic.literal( 118 | "authorizationToken" -> authorizationToken.asInstanceOf[js.Any], 119 | "requestContext" -> requestContext.asInstanceOf[js.Any] 120 | ) 121 | _obj$.asInstanceOf[AppSyncAuthorizerEvent] 122 | } 123 | 124 | @js.native 125 | trait RequestContext extends js.Object { 126 | var apiId: String = js.native 127 | var accountId: String = js.native 128 | var requestId: String = js.native 129 | var queryString: String = js.native 130 | var variables: RequestContext.Variables = js.native 131 | } 132 | 133 | object RequestContext { 134 | def apply( 135 | apiId: String, 136 | accountId: String, 137 | requestId: String, 138 | queryString: String, 139 | variables: RequestContext.Variables 140 | ): RequestContext = { 141 | val _obj$ = js.Dynamic.literal( 142 | "apiId" -> apiId.asInstanceOf[js.Any], 143 | "accountId" -> accountId.asInstanceOf[js.Any], 144 | "requestId" -> requestId.asInstanceOf[js.Any], 145 | "queryString" -> queryString.asInstanceOf[js.Any], 146 | "variables" -> variables.asInstanceOf[js.Any] 147 | ) 148 | _obj$.asInstanceOf[RequestContext] 149 | } 150 | 151 | type Variables = js.Dictionary[js.Any] 152 | } 153 | } 154 | 155 | @js.native 156 | trait AppSyncAuthorizerResult[TResolverContext <: js.Any] extends js.Object { 157 | var isAuthorized: Boolean = js.native 158 | var resolverContext: js.UndefOr[TResolverContext] = js.native 159 | var deniedFields: js.UndefOr[js.Array[String]] = js.native 160 | var ttlOverride: js.UndefOr[Double] = js.native 161 | } 162 | 163 | object AppSyncAuthorizerResult { 164 | def apply[TResolverContext <: js.Any]( 165 | isAuthorized: Boolean, 166 | resolverContext: js.UndefOr[TResolverContext] = js.undefined, 167 | deniedFields: js.UndefOr[js.Array[String]] = js.undefined, 168 | ttlOverride: js.UndefOr[Double] = js.undefined 169 | ): AppSyncAuthorizerResult[TResolverContext] = { 170 | val _obj$ = js.Dynamic.literal( 171 | "isAuthorized" -> isAuthorized.asInstanceOf[js.Any] 172 | ) 173 | resolverContext.foreach(_v => _obj$.updateDynamic("resolverContext")(_v.asInstanceOf[js.Any])) 174 | deniedFields.foreach(_v => _obj$.updateDynamic("deniedFields")(_v.asInstanceOf[js.Any])) 175 | ttlOverride.foreach(_v => _obj$.updateDynamic("ttlOverride")(_v.asInstanceOf[js.Any])) 176 | _obj$.asInstanceOf[AppSyncAuthorizerResult[TResolverContext]] 177 | } 178 | } 179 | 180 | @js.native 181 | trait AppSyncIdentityCognito extends js.Object { 182 | var sub: String = js.native 183 | var issuer: String = js.native 184 | var username: String = js.native 185 | var claims: js.Any = js.native 186 | var sourceIp: js.Array[String] = js.native 187 | var defaultAuthStrategy: String = js.native 188 | var groups: js.Array[String] | Null = js.native 189 | } 190 | 191 | object AppSyncIdentityCognito { 192 | def apply( 193 | sub: String, 194 | issuer: String, 195 | username: String, 196 | claims: js.Any, 197 | sourceIp: js.Array[String], 198 | defaultAuthStrategy: String, 199 | groups: js.Array[String] | Null = null 200 | ): AppSyncIdentityCognito = { 201 | val _obj$ = js.Dynamic.literal( 202 | "sub" -> sub.asInstanceOf[js.Any], 203 | "issuer" -> issuer.asInstanceOf[js.Any], 204 | "username" -> username.asInstanceOf[js.Any], 205 | "claims" -> claims.asInstanceOf[js.Any], 206 | "sourceIp" -> sourceIp.asInstanceOf[js.Any], 207 | "defaultAuthStrategy" -> defaultAuthStrategy.asInstanceOf[js.Any], 208 | "groups" -> groups.asInstanceOf[js.Any] 209 | ) 210 | _obj$.asInstanceOf[AppSyncIdentityCognito] 211 | } 212 | } 213 | 214 | @js.native 215 | trait AppSyncIdentityOIDC extends js.Object { 216 | var claims: js.Any = js.native 217 | var issuer: String = js.native 218 | var sub: String = js.native 219 | } 220 | 221 | object AppSyncIdentityOIDC { 222 | def apply( 223 | claims: js.Any, 224 | issuer: String, 225 | sub: String 226 | ): AppSyncIdentityOIDC = { 227 | val _obj$ = js.Dynamic.literal( 228 | "claims" -> claims.asInstanceOf[js.Any], 229 | "issuer" -> issuer.asInstanceOf[js.Any], 230 | "sub" -> sub.asInstanceOf[js.Any] 231 | ) 232 | _obj$.asInstanceOf[AppSyncIdentityOIDC] 233 | } 234 | } 235 | 236 | @js.native 237 | trait AppSyncIdentityLambda extends js.Object { 238 | var resolverContext: js.Any = js.native 239 | } 240 | 241 | object AppSyncIdentityLambda { 242 | def apply( 243 | resolverContext: js.Any 244 | ): AppSyncIdentityLambda = { 245 | val _obj$ = js.Dynamic.literal( 246 | "resolverContext" -> resolverContext.asInstanceOf[js.Any] 247 | ) 248 | _obj$.asInstanceOf[AppSyncIdentityLambda] 249 | } 250 | } 251 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cloudformation_custom_resource.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait CloudFormationCustomResourceEventCommon[TRequestType <: String] extends js.Object { 7 | var ServiceToken: String = js.native 8 | var ResponseURL: String = js.native 9 | var StackId: String = js.native 10 | var RequestId: String = js.native 11 | var RequestType: TRequestType = js.native 12 | var LogicalResourceId: String = js.native 13 | var ResourceType: String = js.native 14 | var ResourceProperties: CloudFormationCustomResourceEventCommon.ResourceProperties = js.native 15 | } 16 | 17 | object CloudFormationCustomResourceEventCommon { 18 | type ResourceProperties = js.Dictionary[js.Any] 19 | } 20 | 21 | @js.native 22 | trait CloudFormationCustomResourceCreateEvent extends CloudFormationCustomResourceEventCommon["Create"] 23 | 24 | object CloudFormationCustomResourceCreateEvent { 25 | def apply( 26 | ServiceToken: String, 27 | ResponseURL: String, 28 | StackId: String, 29 | RequestId: String, 30 | LogicalResourceId: String, 31 | ResourceType: String, 32 | ResourceProperties: CloudFormationCustomResourceEventCommon.ResourceProperties 33 | ): CloudFormationCustomResourceCreateEvent = { 34 | val _obj$ = js.Dynamic.literal( 35 | "RequestType" -> "Create", 36 | "ServiceToken" -> ServiceToken.asInstanceOf[js.Any], 37 | "ResponseURL" -> ResponseURL.asInstanceOf[js.Any], 38 | "StackId" -> StackId.asInstanceOf[js.Any], 39 | "RequestId" -> RequestId.asInstanceOf[js.Any], 40 | "LogicalResourceId" -> LogicalResourceId.asInstanceOf[js.Any], 41 | "ResourceType" -> ResourceType.asInstanceOf[js.Any], 42 | "ResourceProperties" -> ResourceProperties.asInstanceOf[js.Any] 43 | ) 44 | _obj$.asInstanceOf[CloudFormationCustomResourceCreateEvent] 45 | } 46 | } 47 | 48 | @js.native 49 | trait CloudFormationCustomResourceUpdateEvent extends CloudFormationCustomResourceEventCommon["Update"] { 50 | var PhysicalResourceId: String = js.native 51 | var OldResourceProperties: CloudFormationCustomResourceUpdateEvent.OldResourceProperties = js.native 52 | } 53 | 54 | object CloudFormationCustomResourceUpdateEvent { 55 | type OldResourceProperties = js.Dictionary[js.Any] 56 | 57 | def apply( 58 | ServiceToken: String, 59 | ResponseURL: String, 60 | StackId: String, 61 | RequestId: String, 62 | LogicalResourceId: String, 63 | ResourceType: String, 64 | ResourceProperties: CloudFormationCustomResourceEventCommon.ResourceProperties, 65 | PhysicalResourceId: String, 66 | OldResourceProperties: CloudFormationCustomResourceUpdateEvent.OldResourceProperties 67 | ): CloudFormationCustomResourceUpdateEvent = { 68 | val _obj$ = js.Dynamic.literal( 69 | "RequestType" -> "Update", 70 | "ServiceToken" -> ServiceToken.asInstanceOf[js.Any], 71 | "ResponseURL" -> ResponseURL.asInstanceOf[js.Any], 72 | "StackId" -> StackId.asInstanceOf[js.Any], 73 | "RequestId" -> RequestId.asInstanceOf[js.Any], 74 | "LogicalResourceId" -> LogicalResourceId.asInstanceOf[js.Any], 75 | "ResourceType" -> ResourceType.asInstanceOf[js.Any], 76 | "ResourceProperties" -> ResourceProperties.asInstanceOf[js.Any], 77 | "PhysicalResourceId" -> PhysicalResourceId.asInstanceOf[js.Any], 78 | "OldResourceProperties" -> OldResourceProperties.asInstanceOf[js.Any] 79 | ) 80 | _obj$.asInstanceOf[CloudFormationCustomResourceUpdateEvent] 81 | } 82 | } 83 | 84 | @js.native 85 | trait CloudFormationCustomResourceDeleteEvent extends js.Object with CloudFormationCustomResourceEventCommon["Delete"] { 86 | var PhysicalResourceId: String = js.native 87 | } 88 | 89 | object CloudFormationCustomResourceDeleteEvent { 90 | def apply( 91 | ServiceToken: String, 92 | ResponseURL: String, 93 | StackId: String, 94 | RequestId: String, 95 | LogicalResourceId: String, 96 | ResourceType: String, 97 | ResourceProperties: CloudFormationCustomResourceEventCommon.ResourceProperties, 98 | PhysicalResourceId: String 99 | ): CloudFormationCustomResourceUpdateEvent = { 100 | val _obj$ = js.Dynamic.literal( 101 | "RequestType" -> "Delete", 102 | "ServiceToken" -> ServiceToken.asInstanceOf[js.Any], 103 | "ResponseURL" -> ResponseURL.asInstanceOf[js.Any], 104 | "StackId" -> StackId.asInstanceOf[js.Any], 105 | "RequestId" -> RequestId.asInstanceOf[js.Any], 106 | "LogicalResourceId" -> LogicalResourceId.asInstanceOf[js.Any], 107 | "ResourceType" -> ResourceType.asInstanceOf[js.Any], 108 | "ResourceProperties" -> ResourceProperties.asInstanceOf[js.Any], 109 | "PhysicalResourceId" -> PhysicalResourceId.asInstanceOf[js.Any] 110 | ) 111 | _obj$.asInstanceOf[CloudFormationCustomResourceUpdateEvent] 112 | } 113 | } 114 | 115 | @js.native 116 | trait CloudFormationCustomResourceResponseCommon[TStatus <: String] extends js.Object { 117 | var PhysicalResourceId: String = js.native 118 | var StackId: String = js.native 119 | var RequestId: String = js.native 120 | var LogicalResourceId: String = js.native 121 | var Data: js.UndefOr[CloudFormationCustomResourceResponseCommon.Data] = js.native 122 | var Status: TStatus = js.native 123 | } 124 | 125 | object CloudFormationCustomResourceResponseCommon { 126 | type Data = js.Dictionary[js.Any] 127 | } 128 | 129 | @js.native 130 | trait CloudFormationCustomResourceSuccessResponse extends CloudFormationCustomResourceResponseCommon["SUCCESS"] { 131 | var Reason: js.UndefOr[String] = js.native 132 | } 133 | 134 | object CloudFormationCustomResourceSuccessResponse { 135 | def apply( 136 | PhysicalResourceId: String, 137 | StackId: String, 138 | RequestId: String, 139 | LogicalResourceId: String, 140 | Reason: js.UndefOr[String] = js.undefined, 141 | Data: js.UndefOr[CloudFormationCustomResourceResponseCommon.Data] = js.undefined, 142 | NoEcho: js.UndefOr[Boolean] = js.undefined 143 | ): CloudFormationCustomResourceSuccessResponse = { 144 | val _obj$ = js.Dynamic.literal( 145 | "Status" -> "SUCCESS", 146 | "PhysicalResourceId" -> PhysicalResourceId.asInstanceOf[js.Any], 147 | "StackId" -> StackId.asInstanceOf[js.Any], 148 | "RequestId" -> RequestId.asInstanceOf[js.Any], 149 | "Reason" -> Reason.asInstanceOf[js.Any], 150 | "LogicalResourceId" -> LogicalResourceId.asInstanceOf[js.Any] 151 | ) 152 | Data.foreach(_v => _obj$.updateDynamic("Data")(_v.asInstanceOf[js.Any])) 153 | NoEcho.foreach(_v => _obj$.updateDynamic("NoEcho")(_v.asInstanceOf[js.Any])) 154 | _obj$.asInstanceOf[CloudFormationCustomResourceSuccessResponse] 155 | } 156 | } 157 | 158 | @js.native 159 | trait CloudFormationCustomResourceFailedResponse extends CloudFormationCustomResourceResponseCommon["FAILED"] { 160 | var Reason: String = js.native 161 | } 162 | 163 | object CloudFormationCustomResourceFailedResponse { 164 | def apply( 165 | PhysicalResourceId: String, 166 | StackId: String, 167 | RequestId: String, 168 | LogicalResourceId: String, 169 | Reason: String, 170 | Data: js.UndefOr[CloudFormationCustomResourceResponseCommon.Data] = js.undefined, 171 | NoEcho: js.UndefOr[Boolean] = js.undefined 172 | ): CloudFormationCustomResourceFailedResponse = { 173 | val _obj$ = js.Dynamic.literal( 174 | "Status" -> "FAILED", 175 | "PhysicalResourceId" -> PhysicalResourceId.asInstanceOf[js.Any], 176 | "StackId" -> StackId.asInstanceOf[js.Any], 177 | "RequestId" -> RequestId.asInstanceOf[js.Any], 178 | "Reason" -> Reason.asInstanceOf[js.Any], 179 | "LogicalResourceId" -> LogicalResourceId.asInstanceOf[js.Any] 180 | ) 181 | Data.foreach(_v => _obj$.updateDynamic("Data")(_v.asInstanceOf[js.Any])) 182 | NoEcho.foreach(_v => _obj$.updateDynamic("NoEcho")(_v.asInstanceOf[js.Any])) 183 | _obj$.asInstanceOf[CloudFormationCustomResourceFailedResponse] 184 | } 185 | } 186 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cloudfront_request.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait CloudFrontRequestEventCf extends CloudFrontEvent { 7 | var request: CloudFrontRequest = js.native 8 | } 9 | 10 | object CloudFrontRequestEventCf { 11 | def apply( 12 | config: CloudFrontEvent.Config, 13 | request: CloudFrontRequest 14 | ): CloudFrontRequestEventCf = { 15 | val _obj$ = js.Dynamic.literal( 16 | "config" -> config.asInstanceOf[js.Any], 17 | "request" -> request.asInstanceOf[js.Any] 18 | ) 19 | _obj$.asInstanceOf[CloudFrontRequestEventCf] 20 | } 21 | } 22 | 23 | @js.native 24 | trait CloudFrontRequestEventRecordItem extends js.Object { 25 | var cf: CloudFrontRequestEventCf = js.native 26 | } 27 | 28 | object CloudFrontRequestEventRecordItem { 29 | def apply( 30 | cf: CloudFrontRequestEventCf 31 | ): CloudFrontRequestEventRecordItem = { 32 | val _obj$ = js.Dynamic.literal( 33 | "cf" -> cf.asInstanceOf[js.Any] 34 | ) 35 | _obj$.asInstanceOf[CloudFrontRequestEventRecordItem] 36 | } 37 | } 38 | 39 | @js.native 40 | trait CloudFrontRequestEvent extends js.Object { 41 | var Records: js.Array[CloudFrontRequestEventRecordItem] = js.native 42 | } 43 | 44 | object CloudFrontRequestEvent { 45 | def apply( 46 | Records: js.Array[CloudFrontRequestEventRecordItem] 47 | ): CloudFrontRequestEvent = { 48 | val _obj$ = js.Dynamic.literal( 49 | "Records" -> Records.asInstanceOf[js.Any] 50 | ) 51 | _obj$.asInstanceOf[CloudFrontRequestEvent] 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cloudfront_response.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait CloudFrontResponseEventCf extends CloudFrontEvent { 7 | def request: CloudFrontRequest = js.native 8 | var response: CloudFrontResponse = js.native 9 | } 10 | 11 | object CloudFrontResponseEventCf { 12 | def apply( 13 | config: CloudFrontEvent.Config, 14 | request: CloudFrontRequest, 15 | response: CloudFrontResponse 16 | ): CloudFrontResponseEventCf = { 17 | val _obj$ = js.Dynamic.literal( 18 | "config" -> config.asInstanceOf[js.Any], 19 | "request" -> request.asInstanceOf[js.Any], 20 | "response" -> response.asInstanceOf[js.Any] 21 | ) 22 | _obj$.asInstanceOf[CloudFrontResponseEventCf] 23 | } 24 | } 25 | 26 | @js.native 27 | trait CloudFrontResponseEventRecordItem extends js.Object { 28 | var cf: CloudFrontResponseEventCf = js.native 29 | } 30 | 31 | object CloudFrontResponseEventRecordItem { 32 | def apply( 33 | cf: CloudFrontResponseEventCf 34 | ): CloudFrontResponseEventRecordItem = { 35 | val _obj$ = js.Dynamic.literal( 36 | "cf" -> cf.asInstanceOf[js.Any] 37 | ) 38 | _obj$.asInstanceOf[CloudFrontResponseEventRecordItem] 39 | } 40 | } 41 | 42 | @js.native 43 | trait CloudFrontResponseEvent extends js.Object { 44 | var Records: js.Array[CloudFrontResponseEventRecordItem] = js.native 45 | } 46 | 47 | object CloudFrontResponseEvent { 48 | def apply( 49 | Records: js.Array[CloudFrontResponseEventRecordItem] 50 | ): CloudFrontResponseEvent = { 51 | val _obj$ = js.Dynamic.literal( 52 | "Records" -> Records.asInstanceOf[js.Any] 53 | ) 54 | _obj$.asInstanceOf[CloudFrontResponseEvent] 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cloudwatch_events.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait ScheduledEvent[T] extends EventBridgeEvent["Scheduled Event", T] 7 | 8 | object ScheduledEvent { 9 | def apply[T]( 10 | account: String, 11 | region: String, 12 | detail: T, 13 | source: String, 14 | version: String, 15 | time: String, 16 | id: String, 17 | resources: js.Array[String] 18 | ): ScheduledEvent[T] = { 19 | val _obj$ = js.Dynamic.literal( 20 | "account" -> account.asInstanceOf[js.Any], 21 | "region" -> region.asInstanceOf[js.Any], 22 | "detail" -> detail.asInstanceOf[js.Any], 23 | "detail-type" -> "Scheduled Event", 24 | "version" -> version.asInstanceOf[js.Any], 25 | "source" -> source.asInstanceOf[js.Any], 26 | "time" -> time.asInstanceOf[js.Any], 27 | "id" -> id.asInstanceOf[js.Any], 28 | "resources" -> resources.asInstanceOf[js.Any] 29 | ) 30 | _obj$.asInstanceOf[ScheduledEvent[T]] 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cloudwatch_logs.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait CloudWatchLogsEvent extends js.Object { 7 | var awslogs: CloudWatchLogsEventData = js.native 8 | } 9 | 10 | object CloudWatchLogsEvent { 11 | def apply( 12 | awslogs: CloudWatchLogsEventData 13 | ): CloudWatchLogsEvent = { 14 | val _obj$ = js.Dynamic.literal( 15 | "awslogs" -> awslogs.asInstanceOf[js.Any] 16 | ) 17 | _obj$.asInstanceOf[CloudWatchLogsEvent] 18 | } 19 | } 20 | 21 | @js.native 22 | trait CloudWatchLogsEventData extends js.Object { 23 | var data: String = js.native 24 | } 25 | 26 | object CloudWatchLogsEventData { 27 | def apply( 28 | data: String 29 | ): CloudWatchLogsEventData = { 30 | val _obj$ = js.Dynamic.literal( 31 | "data" -> data.asInstanceOf[js.Any] 32 | ) 33 | _obj$.asInstanceOf[CloudWatchLogsEventData] 34 | } 35 | } 36 | 37 | @js.native 38 | trait CloudWatchLogsDecodedData extends js.Object { 39 | var owner: String = js.native 40 | var logGroup: String = js.native 41 | var logStream: String = js.native 42 | var subscriptionFilters: js.Array[String] = js.native 43 | var messageType: String = js.native 44 | var logEvents: js.Array[CloudWatchLogsLogEvent] = js.native 45 | } 46 | 47 | object CloudWatchLogsDecodedData { 48 | def apply( 49 | owner: String, 50 | logGroup: String, 51 | logStream: String, 52 | subscriptionFilters: js.Array[String], 53 | messageType: String, 54 | logEvents: js.Array[CloudWatchLogsLogEvent] 55 | ): CloudWatchLogsDecodedData = { 56 | val _obj$ = js.Dynamic.literal( 57 | "owner" -> owner.asInstanceOf[js.Any], 58 | "logGroup" -> logGroup.asInstanceOf[js.Any], 59 | "logStream" -> logStream.asInstanceOf[js.Any], 60 | "subscriptionFilters" -> subscriptionFilters.asInstanceOf[js.Any], 61 | "messageType" -> messageType.asInstanceOf[js.Any], 62 | "logEvents" -> logEvents.asInstanceOf[js.Any] 63 | ) 64 | _obj$.asInstanceOf[CloudWatchLogsDecodedData] 65 | } 66 | } 67 | 68 | @js.native 69 | trait CloudWatchLogsLogEvent extends js.Object { 70 | var id: String = js.native 71 | var timestamp: Double = js.native 72 | var message: String = js.native 73 | var extractedFields: js.UndefOr[CloudWatchLogsLogEvent.ExtractedFields] = js.native 74 | } 75 | 76 | object CloudWatchLogsLogEvent { 77 | type ExtractedFields = js.Dictionary[String] 78 | 79 | def apply( 80 | id: String, 81 | timestamp: Double, 82 | message: String, 83 | extractedFields: js.UndefOr[CloudWatchLogsLogEvent.ExtractedFields] = js.undefined 84 | ): CloudWatchLogsLogEvent = { 85 | val _obj$ = js.Dynamic.literal( 86 | "id" -> id.asInstanceOf[js.Any], 87 | "timestamp" -> timestamp.asInstanceOf[js.Any], 88 | "message" -> message.asInstanceOf[js.Any] 89 | ) 90 | extractedFields.foreach(_v => _obj$.updateDynamic("extractedFields")(_v.asInstanceOf[js.Any])) 91 | _obj$.asInstanceOf[CloudWatchLogsLogEvent] 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/codebuild_cloudwatch_state.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait CodeBuildStateEventDetail extends js.Object { 7 | var `build-status`: literal.CodeBuildStateType 8 | var `project-name`: String 9 | var `build-id`: String 10 | var `current-phase`: literal.CodeBuildPhaseType 11 | var `current-phase-context`: String 12 | var version: String 13 | var `additional-information`: CodeBuildStateEventDetail.`Additional-information` 14 | } 15 | 16 | object CodeBuildStateEventDetail { 17 | def apply( 18 | `build-status`: literal.CodeBuildStateType, 19 | `project-name`: String, 20 | `build-id`: String, 21 | `current-phase`: literal.CodeBuildPhaseType, 22 | `current-phase-context`: String, 23 | version: String, 24 | `additional-information`: CodeBuildStateEventDetail.`Additional-information` 25 | ): CodeBuildStateEventDetail = { 26 | val _obj$ = js.Dynamic.literal( 27 | "build-status" -> `build-status`.asInstanceOf[js.Any], 28 | "project-name" -> `project-name`.asInstanceOf[js.Any], 29 | "build-id" -> `build-id`.asInstanceOf[js.Any], 30 | "current-phase" -> `current-phase`.asInstanceOf[js.Any], 31 | "current-phase-context" -> `current-phase-context`.asInstanceOf[js.Any], 32 | "version" -> version.asInstanceOf[js.Any], 33 | "additional-information" -> `additional-information`.asInstanceOf[js.Any] 34 | ) 35 | _obj$.asInstanceOf[CodeBuildStateEventDetail] 36 | } 37 | 38 | @js.native 39 | trait `Additional-information` extends js.Object { 40 | var cache: `Additional-information`.Cache = js.native 41 | var `build-number`: Double = js.native 42 | var `timeout-in-minutes`: Double = js.native 43 | var `build-complete`: Boolean = js.native 44 | var initiator: String = js.native 45 | var `build-start-time`: String = js.native 46 | var source: `Additional-information`.Source = js.native 47 | var `source-version`: String = js.native 48 | var artifact: `Additional-information`.Artifact = js.native 49 | var environment: `Additional-information`.Environment = js.native 50 | var `project-file-system-locations`: js.Array[Nothing] = js.native 51 | var logs: `Additional-information`.Logs = js.native 52 | var phases: js.Array[js.Any] = js.native 53 | var `queued-timeout-in-minutes`: Double = js.native 54 | } 55 | 56 | object `Additional-information` { 57 | def apply( 58 | cache: `Additional-information`.Cache, 59 | `build-number`: Double, 60 | `timeout-in-minutes`: Double, 61 | `build-complete`: Boolean, 62 | initiator: String, 63 | `build-start-time`: String, 64 | source: `Additional-information`.Source, 65 | `source-version`: String, 66 | artifact: `Additional-information`.Artifact, 67 | environment: `Additional-information`.Environment, 68 | `project-file-system-locations`: js.Array[Nothing], 69 | logs: `Additional-information`.Logs, 70 | phases: js.Array[js.Any], 71 | `queued-timeout-in-minutes`: Double 72 | ): `Additional-information` = { 73 | val _obj$ = js.Dynamic.literal( 74 | "cache" -> cache.asInstanceOf[js.Any], 75 | "build-number" -> `build-number`.asInstanceOf[js.Any], 76 | "timeout-in-minutes" -> `timeout-in-minutes`.asInstanceOf[js.Any], 77 | "build-complete" -> `build-complete`.asInstanceOf[js.Any], 78 | "initiator" -> initiator.asInstanceOf[js.Any], 79 | "build-start-time" -> `build-start-time`.asInstanceOf[js.Any], 80 | "source" -> source.asInstanceOf[js.Any], 81 | "source-version" -> `source-version`.asInstanceOf[js.Any], 82 | "artifact" -> artifact.asInstanceOf[js.Any], 83 | "environment" -> environment.asInstanceOf[js.Any], 84 | "project-file-system-locations" -> `project-file-system-locations`.asInstanceOf[js.Any], 85 | "logs" -> logs.asInstanceOf[js.Any], 86 | "phases" -> phases.asInstanceOf[js.Any], 87 | "queued-timeout-in-minutes" -> `queued-timeout-in-minutes`.asInstanceOf[js.Any] 88 | ) 89 | _obj$.asInstanceOf[`Additional-information`] 90 | } 91 | 92 | @js.native 93 | trait Cache extends js.Object { 94 | var `type`: literal.CodeBuildCacheType 95 | } 96 | object Cache { 97 | def apply( 98 | `type`: literal.CodeBuildCacheType 99 | ): Cache = { 100 | val _obj$ = js.Dynamic.literal( 101 | "type" -> `type`.asInstanceOf[js.Any] 102 | ) 103 | _obj$.asInstanceOf[Cache] 104 | } 105 | } 106 | 107 | @js.native 108 | trait Source extends js.Object { 109 | var buildspec: String 110 | var location: String 111 | var `type`: literal.CodeBuildSourceLocationType 112 | } 113 | 114 | object Source { 115 | def apply( 116 | buildspec: String, 117 | location: String, 118 | `type`: literal.CodeBuildSourceLocationType 119 | ): Source = { 120 | val _obj$ = js.Dynamic.literal( 121 | "buildspec" -> buildspec.asInstanceOf[js.Any], 122 | "location" -> location.asInstanceOf[js.Any], 123 | "type" -> `type`.asInstanceOf[js.Any] 124 | ) 125 | _obj$.asInstanceOf[Source] 126 | } 127 | } 128 | 129 | @js.native 130 | trait Artifact extends js.Object { 131 | var location: String 132 | } 133 | object Artifact { 134 | def apply( 135 | location: String 136 | ): Artifact = { 137 | val _obj$ = js.Dynamic.literal( 138 | "location" -> location.asInstanceOf[js.Any] 139 | ) 140 | _obj$.asInstanceOf[Artifact] 141 | } 142 | } 143 | 144 | @js.native 145 | trait Environment extends js.Object { 146 | var image: String = js.native 147 | var `privileged-mode`: Boolean = js.native 148 | var `image-pull-credentials-type`: js.UndefOr[literal.CodeBuildEnvironmentPullCredentialsType] = js.native 149 | var `compute-type`: literal.CodeBuildEnvironmentComputeType = js.native 150 | var `type`: literal.CodeBuildEnvironmentType = js.native 151 | var `environment-variables`: js.Array[js.Any] = js.native 152 | } 153 | 154 | object Environment { 155 | def apply( 156 | image: String, 157 | `privileged-mode`: Boolean, 158 | `compute-type`: literal.CodeBuildEnvironmentComputeType, 159 | `type`: literal.CodeBuildEnvironmentType, 160 | `environment-variables`: js.Array[js.Any], 161 | `image-pull-credentials-type`: js.UndefOr[literal.CodeBuildEnvironmentPullCredentialsType] = js.undefined 162 | ): Environment = { 163 | val _obj$ = js.Dynamic.literal( 164 | "image" -> image.asInstanceOf[js.Any], 165 | "privileged-mode" -> `privileged-mode`.asInstanceOf[js.Any], 166 | "compute-type" -> `compute-type`.asInstanceOf[js.Any], 167 | "type" -> `type`.asInstanceOf[js.Any], 168 | "environment-variables" -> `environment-variables`.asInstanceOf[js.Any] 169 | ) 170 | `image-pull-credentials-type`.foreach(_v => 171 | _obj$.updateDynamic("image-pull-credentials-type")(_v.asInstanceOf[js.Any]) 172 | ) 173 | _obj$.asInstanceOf[Environment] 174 | } 175 | } 176 | 177 | @js.native 178 | trait Logs extends js.Object { 179 | var `group-name`: String 180 | var `stream-name`: String 181 | var `deep-link`: String 182 | } 183 | 184 | object Logs { 185 | def apply( 186 | `group-name`: String, 187 | `stream-name`: String, 188 | `deep-link`: String 189 | ): Logs = { 190 | val _obj$ = js.Dynamic.literal( 191 | "group-name" -> `group-name`.asInstanceOf[js.Any], 192 | "stream-name" -> `stream-name`.asInstanceOf[js.Any], 193 | "deep-link" -> `deep-link`.asInstanceOf[js.Any] 194 | ) 195 | _obj$.asInstanceOf[Logs] 196 | } 197 | } 198 | } 199 | } 200 | 201 | @js.native 202 | trait CodeBuildCloudWatchStateEvent extends EventBridgeEvent["CodeBuild Build State Change", CodeBuildStateEventDetail] 203 | 204 | object CodeBuildCloudWatchStateEvent { 205 | def apply( 206 | account: String, 207 | region: String, 208 | detail: CodeBuildStateEventDetail, 209 | time: String, 210 | id: String, 211 | version: String, 212 | resources: js.Array[String] 213 | ): CodeBuildCloudWatchStateEvent = { 214 | val _obj$ = js.Dynamic.literal( 215 | "account" -> account.asInstanceOf[js.Any], 216 | "region" -> region.asInstanceOf[js.Any], 217 | "version" -> version.asInstanceOf[js.Any], 218 | "detail" -> detail.asInstanceOf[js.Any], 219 | "detail-type" -> "CodeBuild Build State Change", 220 | "source" -> "ws.codebuild", 221 | "time" -> time.asInstanceOf[js.Any], 222 | "id" -> id.asInstanceOf[js.Any], 223 | "resources" -> resources.asInstanceOf[js.Any] 224 | ) 225 | _obj$.asInstanceOf[CodeBuildCloudWatchStateEvent] 226 | } 227 | } 228 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/codepipeline.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.| 5 | 6 | @js.native 7 | trait S3ArtifactLocation extends js.Object { 8 | var bucketName: String = js.native 9 | var objectKey: String = js.native 10 | } 11 | 12 | object S3ArtifactLocation { 13 | def apply( 14 | bucketName: String, 15 | objectKey: String 16 | ): S3ArtifactLocation = { 17 | val _obj$ = js.Dynamic.literal( 18 | "bucketName" -> bucketName.asInstanceOf[js.Any], 19 | "objectKey" -> objectKey.asInstanceOf[js.Any] 20 | ) 21 | _obj$.asInstanceOf[S3ArtifactLocation] 22 | } 23 | } 24 | 25 | @js.native 26 | trait S3ArtifactStore extends js.Object { 27 | var `type`: String = js.native 28 | var s3Location: S3ArtifactLocation = js.native 29 | } 30 | 31 | object S3ArtifactStore { 32 | def apply( 33 | s3Location: S3ArtifactLocation 34 | ): S3ArtifactStore = { 35 | val _obj$ = js.Dynamic.literal( 36 | "type" -> "s3", 37 | "s3Location" -> s3Location.asInstanceOf[js.Any] 38 | ) 39 | _obj$.asInstanceOf[S3ArtifactStore] 40 | } 41 | } 42 | 43 | @js.native 44 | trait Artifact extends js.Object { 45 | var name: String = js.native 46 | var revision: String | Null = js.native 47 | var location: ArtifactLocation = js.native 48 | } 49 | 50 | object Artifact { 51 | def apply( 52 | name: String, 53 | location: ArtifactLocation, 54 | revision: String | Null = null 55 | ): Artifact = { 56 | val _obj$ = js.Dynamic.literal( 57 | "name" -> name.asInstanceOf[js.Any], 58 | "revision" -> revision.asInstanceOf[js.Any], 59 | "location" -> location.asInstanceOf[js.Any] 60 | ) 61 | _obj$.asInstanceOf[Artifact] 62 | } 63 | } 64 | 65 | @js.native 66 | trait Credentials extends js.Object { 67 | var accessKeyId: String = js.native 68 | var secretAccessKey: String = js.native 69 | var sessionToken: js.UndefOr[String] = js.native 70 | } 71 | 72 | object Credentials { 73 | def apply( 74 | accessKeyId: String, 75 | secretAccessKey: String, 76 | sessionToken: js.UndefOr[String] = js.undefined 77 | ): Credentials = { 78 | val _obj$ = js.Dynamic.literal( 79 | "accessKeyId" -> accessKeyId.asInstanceOf[js.Any], 80 | "secretAccessKey" -> secretAccessKey.asInstanceOf[js.Any] 81 | ) 82 | sessionToken.foreach(_v => _obj$.updateDynamic("sessionToken")(_v.asInstanceOf[js.Any])) 83 | _obj$.asInstanceOf[Credentials] 84 | } 85 | } 86 | 87 | @js.native 88 | trait EncryptionKey extends js.Object { 89 | var `type`: String = js.native 90 | var id: String = js.native 91 | } 92 | 93 | object EncryptionKey { 94 | def apply( 95 | `type`: String, 96 | id: String 97 | ): EncryptionKey = { 98 | val _obj$ = js.Dynamic.literal( 99 | "type" -> `type`.asInstanceOf[js.Any], 100 | "id" -> id.asInstanceOf[js.Any] 101 | ) 102 | _obj$.asInstanceOf[EncryptionKey] 103 | } 104 | } 105 | 106 | @js.native 107 | trait CodePipelineEvent extends js.Object { 108 | var `CodePipeline.job`: CodePipelineEvent.`CodePipeline.job` = js.native 109 | } 110 | 111 | object CodePipelineEvent { 112 | def apply( 113 | `CodePipeline.job`: CodePipelineEvent.`CodePipeline.job` 114 | ): CodePipelineEvent = { 115 | val _obj$ = js.Dynamic.literal( 116 | "CodePipeline.job" -> `CodePipeline.job`.asInstanceOf[js.Any] 117 | ) 118 | _obj$.asInstanceOf[CodePipelineEvent] 119 | } 120 | 121 | @js.native 122 | trait `CodePipeline.job` extends js.Object { 123 | var id: String = js.native 124 | var accountId: String = js.native 125 | var data: `CodePipeline.job`.Data = js.native 126 | } 127 | 128 | object `CodePipeline.job` { 129 | @js.native 130 | trait Data extends js.Object { 131 | var actionConfiguration: Data.ActionConfiguration = js.native 132 | var inputArtifacts: js.Array[Artifact] = js.native 133 | var outputArtifacts: js.Array[Artifact] = js.native 134 | var artifactCredentials: Credentials = js.native 135 | var encryptionKey: js.UndefOr[EncryptionKey] = js.native 136 | var continuationToken: js.UndefOr[String] = js.native 137 | } 138 | 139 | object Data { 140 | def apply( 141 | actionConfiguration: Data.ActionConfiguration, 142 | inputArtifacts: js.Array[Artifact], 143 | outputArtifacts: js.Array[Artifact], 144 | artifactCredentials: Credentials, 145 | encryptionKey: js.UndefOr[EncryptionKey] = js.undefined, 146 | continuationToken: js.UndefOr[String] = js.undefined 147 | ): Data = { 148 | val _obj$ = js.Dynamic.literal( 149 | "actionConfiguration" -> actionConfiguration.asInstanceOf[js.Any], 150 | "inputArtifacts" -> inputArtifacts.asInstanceOf[js.Any], 151 | "outputArtifacts" -> outputArtifacts.asInstanceOf[js.Any], 152 | "artifactCredentials" -> artifactCredentials.asInstanceOf[js.Any] 153 | ) 154 | encryptionKey.foreach(_v => _obj$.updateDynamic("encryptionKey")(_v.asInstanceOf[js.Any])) 155 | continuationToken.foreach(_v => _obj$.updateDynamic("continuationToken")(_v.asInstanceOf[js.Any])) 156 | _obj$.asInstanceOf[Data] 157 | } 158 | 159 | @js.native 160 | trait ActionConfiguration extends js.Object { 161 | var configuration: ActionConfiguration.Configuration = js.native 162 | } 163 | 164 | object ActionConfiguration { 165 | def apply( 166 | configuration: ActionConfiguration.Configuration 167 | ): ActionConfiguration = { 168 | val _obj$ = js.Dynamic.literal( 169 | "configuration" -> configuration.asInstanceOf[js.Any] 170 | ) 171 | _obj$.asInstanceOf[ActionConfiguration] 172 | } 173 | 174 | @js.native 175 | trait Configuration extends js.Object { 176 | var FunctionName: String = js.native 177 | var UserParameters: String = js.native 178 | } 179 | 180 | object Configuration { 181 | def apply( 182 | FunctionName: String, 183 | UserParameters: String 184 | ): Configuration = { 185 | val _obj$ = js.Dynamic.literal( 186 | "FunctionName" -> FunctionName.asInstanceOf[js.Any], 187 | "UserParameters" -> UserParameters.asInstanceOf[js.Any] 188 | ) 189 | _obj$.asInstanceOf[Configuration] 190 | } 191 | } 192 | } 193 | } 194 | } 195 | } 196 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/codepipeline_cloudwatch_action.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait CodePipelineCloudWatchActionEvent extends js.Object { 7 | var version: String = js.native 8 | var id: String = js.native 9 | var `detail-type`: literal.CodePipelineCloudWatchActionDetailType = js.native 10 | var source: literal.CodePipelineCloudWatchActionSource = js.native 11 | var account: String = js.native 12 | var time: String = js.native 13 | var region: String = js.native 14 | var resources: js.Array[String] = js.native 15 | var detail: CodePipelineCloudWatchActionEvent.Detail = js.native 16 | } 17 | 18 | object CodePipelineCloudWatchActionEvent { 19 | def apply( 20 | version: String, 21 | id: String, 22 | `detail-type`: literal.CodePipelineCloudWatchActionDetailType, 23 | account: String, 24 | time: String, 25 | region: String, 26 | resources: js.Array[String], 27 | detail: CodePipelineCloudWatchActionEvent.Detail 28 | ): CodePipelineCloudWatchActionEvent = { 29 | val _obj$ = js.Dynamic.literal( 30 | "version" -> version.asInstanceOf[js.Any], 31 | "id" -> id.asInstanceOf[js.Any], 32 | "detail-type" -> `detail-type`.asInstanceOf[js.Any], 33 | "source" -> "aws.codepipeline", 34 | "account" -> account.asInstanceOf[js.Any], 35 | "time" -> time.asInstanceOf[js.Any], 36 | "region" -> region.asInstanceOf[js.Any], 37 | "resources" -> resources.asInstanceOf[js.Any], 38 | "detail" -> detail.asInstanceOf[js.Any] 39 | ) 40 | _obj$.asInstanceOf[CodePipelineCloudWatchActionEvent] 41 | } 42 | 43 | @js.native 44 | trait Detail extends js.Object { 45 | var pipeline: String = js.native 46 | var version: Double = js.native 47 | var `execution-id`: String = js.native 48 | var stage: String = js.native 49 | var action: String = js.native 50 | var state: literal.CodePipelineActionState = js.native 51 | var `type`: Detail.Type = js.native 52 | } 53 | 54 | object Detail { 55 | def apply( 56 | pipeline: String, 57 | version: Double, 58 | `execution-id`: String, 59 | stage: String, 60 | action: String, 61 | state: literal.CodePipelineActionState, 62 | `type`: Detail.Type 63 | ): Detail = { 64 | val _obj$ = js.Dynamic.literal( 65 | "pipeline" -> pipeline.asInstanceOf[js.Any], 66 | "version" -> version.asInstanceOf[js.Any], 67 | "execution-id" -> `execution-id`.asInstanceOf[js.Any], 68 | "stage" -> stage.asInstanceOf[js.Any], 69 | "action" -> action.asInstanceOf[js.Any], 70 | "state" -> state.asInstanceOf[js.Any], 71 | "type" -> `type`.asInstanceOf[js.Any] 72 | ) 73 | _obj$.asInstanceOf[Detail] 74 | } 75 | 76 | @js.native 77 | trait Type extends js.Object { 78 | var owner: literal.CodePipelineCloudWatchActionDetailTypeOwner = js.native 79 | var category: literal.CodePipelineActionCategory = js.native 80 | var provider: String = js.native 81 | var version: Double = js.native 82 | } 83 | 84 | object Type { 85 | def apply( 86 | owner: literal.CodePipelineCloudWatchActionDetailTypeOwner, 87 | category: literal.CodePipelineActionCategory, 88 | provider: String, 89 | version: Double 90 | ): Type = { 91 | val _obj$ = js.Dynamic.literal( 92 | "owner" -> owner.asInstanceOf[js.Any], 93 | "category" -> category.asInstanceOf[js.Any], 94 | "provider" -> provider.asInstanceOf[js.Any], 95 | "version" -> version.asInstanceOf[js.Any] 96 | ) 97 | _obj$.asInstanceOf[Type] 98 | } 99 | } 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/codepipeline_cloudwatch_pipeline.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait CodePipelineCloudWatchPipelineEvent extends js.Object { 7 | var version: String = js.native 8 | var id: String = js.native 9 | var `detail-type`: literal.CodePipelineCloudWatchPipelineDetailType = js.native 10 | var source: literal.CodePipelineCloudWatchPipelineSource = js.native 11 | var account: String = js.native 12 | var time: String = js.native 13 | var region: String = js.native 14 | var resources: js.Array[String] = js.native 15 | var detail: CodePipelineCloudWatchPipelineEvent.Detail = js.native 16 | } 17 | 18 | object CodePipelineCloudWatchPipelineEvent { 19 | def apply( 20 | version: String, 21 | id: String, 22 | `detail-type`: literal.CodePipelineCloudWatchPipelineDetailType, 23 | account: String, 24 | time: String, 25 | region: String, 26 | resources: js.Array[String], 27 | detail: CodePipelineCloudWatchPipelineEvent.Detail 28 | ): CodePipelineCloudWatchPipelineEvent = { 29 | val _obj$ = js.Dynamic.literal( 30 | "version" -> version.asInstanceOf[js.Any], 31 | "id" -> id.asInstanceOf[js.Any], 32 | "detail-type" -> `detail-type`.asInstanceOf[js.Any], 33 | "source" -> "aws.codepipeline", 34 | "account" -> account.asInstanceOf[js.Any], 35 | "time" -> time.asInstanceOf[js.Any], 36 | "region" -> region.asInstanceOf[js.Any], 37 | "resources" -> resources.asInstanceOf[js.Any], 38 | "detail" -> detail.asInstanceOf[js.Any] 39 | ) 40 | _obj$.asInstanceOf[CodePipelineCloudWatchPipelineEvent] 41 | } 42 | 43 | @js.native 44 | trait Detail extends js.Object { 45 | var pipeline: String = js.native 46 | var version: Double = js.native 47 | var state: CodePipelineState = js.native 48 | var `execution-id`: String = js.native 49 | } 50 | 51 | object Detail { 52 | def apply( 53 | pipeline: String, 54 | version: Double, 55 | state: CodePipelineState, 56 | `execution-id`: String 57 | ): Detail = { 58 | val _obj$ = js.Dynamic.literal( 59 | "pipeline" -> pipeline.asInstanceOf[js.Any], 60 | "version" -> version.asInstanceOf[js.Any], 61 | "state" -> state.asInstanceOf[js.Any], 62 | "execution-id" -> `execution-id`.asInstanceOf[js.Any] 63 | ) 64 | _obj$.asInstanceOf[Detail] 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/codepipeline_cloudwatch_stage.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait CodePipelineCloudWatchStageEvent extends js.Object { 7 | var version: String = js.native 8 | var id: String = js.native 9 | var `detail-type`: literal.CodePipelineCloudWatchStageDetailType = js.native 10 | var source: literal.CodePipelineCloudWatchStageSource = js.native 11 | var account: String = js.native 12 | var time: String = js.native 13 | var region: String = js.native 14 | var resources: js.Array[String] = js.native 15 | var detail: CodePipelineCloudWatchStageEvent.Detail = js.native 16 | } 17 | 18 | object CodePipelineCloudWatchStageEvent { 19 | def apply( 20 | version: String, 21 | id: String, 22 | `detail-type`: literal.CodePipelineCloudWatchStageDetailType, 23 | account: String, 24 | time: String, 25 | region: String, 26 | resources: js.Array[String], 27 | detail: CodePipelineCloudWatchStageEvent.Detail 28 | ): CodePipelineCloudWatchStageEvent = { 29 | val _obj$ = js.Dynamic.literal( 30 | "version" -> version.asInstanceOf[js.Any], 31 | "id" -> id.asInstanceOf[js.Any], 32 | "detail-type" -> `detail-type`.asInstanceOf[js.Any], 33 | "source" -> "aws.codepipeline", 34 | "account" -> account.asInstanceOf[js.Any], 35 | "time" -> time.asInstanceOf[js.Any], 36 | "region" -> region.asInstanceOf[js.Any], 37 | "resources" -> resources.asInstanceOf[js.Any], 38 | "detail" -> detail.asInstanceOf[js.Any] 39 | ) 40 | _obj$.asInstanceOf[CodePipelineCloudWatchStageEvent] 41 | } 42 | 43 | @js.native 44 | trait Detail extends js.Object { 45 | var pipeline: String = js.native 46 | var version: Double = js.native 47 | var `execution-id`: String = js.native 48 | var stage: String = js.native 49 | var state: CodePipelineStageState = js.native 50 | } 51 | 52 | object Detail { 53 | def apply( 54 | pipeline: String, 55 | version: Double, 56 | `execution-id`: String, 57 | stage: String, 58 | state: CodePipelineStageState 59 | ): Detail = { 60 | val _obj$ = js.Dynamic.literal( 61 | "pipeline" -> pipeline.asInstanceOf[js.Any], 62 | "version" -> version.asInstanceOf[js.Any], 63 | "execution-id" -> `execution-id`.asInstanceOf[js.Any], 64 | "stage" -> stage.asInstanceOf[js.Any], 65 | "state" -> state.asInstanceOf[js.Any] 66 | ) 67 | _obj$.asInstanceOf[Detail] 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cognito_userpool_common.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait ChallengeResultBase[T <: String, M] extends js.Object { 7 | var challengeName: T = js.native 8 | var challengeResult: Boolean = js.native 9 | var challengeMetadata: js.UndefOr[M] = js.native 10 | } 11 | 12 | @js.native 13 | trait ChallengeResult extends ChallengeResultBase[literal.CognitoUserPoolChallengeName, Unit] 14 | 15 | object ChallengeResult { 16 | def apply( 17 | challengeName: literal.CognitoUserPoolChallengeName, 18 | challengeResult: Boolean 19 | ): ChallengeResult = { 20 | val _obj$ = js.Dynamic.literal( 21 | "challengeName" -> challengeName.asInstanceOf[js.Any], 22 | "challengeResult" -> challengeResult.asInstanceOf[js.Any], 23 | "challengeMetadata" -> js.undefined 24 | ) 25 | _obj$.asInstanceOf[ChallengeResult] 26 | } 27 | } 28 | 29 | @js.native 30 | trait CustomChallengeResult extends ChallengeResultBase["CUSTOM_CHALLENGE", String] 31 | 32 | object CustomChallengeResult { 33 | def apply( 34 | challengeName: "CUSTOM_CHALLENGE", 35 | challengeResult: Boolean, 36 | challengeMetadata: js.UndefOr[String] = js.undefined 37 | ): CustomChallengeResult = { 38 | val _obj$ = js.Dynamic.literal( 39 | "challengeName" -> challengeName.asInstanceOf[js.Any], 40 | "challengeResult" -> challengeResult.asInstanceOf[js.Any] 41 | ) 42 | challengeMetadata.foreach(_v => _obj$.updateDynamic("challengeMetadata")(_v.asInstanceOf[js.Any])) 43 | _obj$.asInstanceOf[CustomChallengeResult] 44 | } 45 | } 46 | 47 | @js.native 48 | trait BaseTriggerEvent[T <: String] extends js.Object { 49 | var version: String = js.native 50 | var region: String = js.native 51 | var userPoolId: String = js.native 52 | var triggerSource: T = js.native 53 | var userName: String = js.native 54 | var callerContext: CognitoUserpoolCallerContext = js.native 55 | } 56 | 57 | @js.native 58 | trait CognitoUserpoolCallerContext extends js.Object { 59 | var awsSdkVersion: String 60 | var clientId: String 61 | } 62 | 63 | object CallerContext { 64 | def apply( 65 | awsSdkVersion: String, 66 | clientId: String 67 | ): CognitoUserpoolCallerContext = { 68 | val _obj$ = js.Dynamic.literal( 69 | "awsSdkVersion" -> awsSdkVersion.asInstanceOf[js.Any], 70 | "clientId" -> clientId.asInstanceOf[js.Any] 71 | ) 72 | _obj$.asInstanceOf[CognitoUserpoolCallerContext] 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cognito_userpool_create_auth_challenge.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.| 5 | 6 | /** @see 7 | * https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-create-auth-challenge.html 8 | */ 9 | @js.native 10 | trait CreateAuthChallengeTriggerEvent extends BaseTriggerEvent["CreateAuthChallenge_Authentication"] { 11 | var request: CreateAuthChallengeTriggerEventRequest = js.native 12 | var response: CreateAuthChallengeTriggerEventResponse = js.native 13 | } 14 | 15 | object CreateAuthChallengeTriggerEvent { 16 | def apply( 17 | version: String, 18 | region: String, 19 | userPoolId: String, 20 | userName: String, 21 | callerContext: CognitoUserpoolCallerContext, 22 | request: CreateAuthChallengeTriggerEventRequest, 23 | response: CreateAuthChallengeTriggerEventResponse 24 | ): CreateAuthChallengeTriggerEvent = { 25 | val _obj$ = js.Dynamic.literal( 26 | "triggerSource" -> "CreateAuthChallenge_Authentication", 27 | "version" -> version.asInstanceOf[js.Any], 28 | "region" -> region.asInstanceOf[js.Any], 29 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 30 | "userName" -> userName.asInstanceOf[js.Any], 31 | "callerContext" -> callerContext.asInstanceOf[js.Any], 32 | "request" -> request.asInstanceOf[js.Any], 33 | "response" -> response.asInstanceOf[js.Any] 34 | ) 35 | _obj$.asInstanceOf[CreateAuthChallengeTriggerEvent] 36 | } 37 | } 38 | 39 | @js.native 40 | trait CreateAuthChallengeTriggerEventRequest extends js.Object { 41 | var userAttributes: js.Dictionary[String] 42 | var challengeName: String 43 | var session: js.Array[ChallengeResult | CustomChallengeResult] 44 | var clientMetadata: js.UndefOr[js.Dictionary[String]] 45 | var userNotFound: js.UndefOr[Boolean] 46 | } 47 | 48 | object CreateAuthChallengeTriggerEventRequest { 49 | def apply( 50 | userAttributes: js.Dictionary[String], 51 | challengeName: String, 52 | session: js.Array[ChallengeResult | CustomChallengeResult], 53 | clientMetadata: js.UndefOr[js.Dictionary[String]] = js.undefined, 54 | userNotFound: js.UndefOr[Boolean] = js.undefined 55 | ): CreateAuthChallengeTriggerEventRequest = { 56 | val _obj$ = js.Dynamic.literal( 57 | "userAttributes" -> userAttributes.asInstanceOf[js.Any], 58 | "challengeName" -> challengeName.asInstanceOf[js.Any], 59 | "session" -> session.asInstanceOf[js.Any] 60 | ) 61 | clientMetadata.foreach(_v => _obj$.updateDynamic("clientMetadata")(_v.asInstanceOf[js.Any])) 62 | userNotFound.foreach(_v => _obj$.updateDynamic("userNotFound")(_v.asInstanceOf[js.Any])) 63 | _obj$.asInstanceOf[CreateAuthChallengeTriggerEventRequest] 64 | } 65 | } 66 | 67 | @js.native 68 | trait CreateAuthChallengeTriggerEventResponse extends js.Object { 69 | var publicChallengeParameters: js.Dictionary[String] 70 | var privateChallengeParameters: js.Dictionary[String] 71 | var challengeMetadata: String 72 | } 73 | 74 | object CreateAuthChallengeTriggerEventResponse { 75 | def apply( 76 | publicChallengeParameters: js.Dictionary[String], 77 | privateChallengeParameters: js.Dictionary[String], 78 | challengeMetadata: String 79 | ): CreateAuthChallengeTriggerEventResponse = { 80 | val _obj$ = js.Dynamic.literal( 81 | "publicChallengeParameters" -> publicChallengeParameters.asInstanceOf[js.Any], 82 | "privateChallengeParameters" -> privateChallengeParameters.asInstanceOf[js.Any], 83 | "challengeMetadata" -> challengeMetadata.asInstanceOf[js.Any] 84 | ) 85 | _obj$.asInstanceOf[CreateAuthChallengeTriggerEventResponse] 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cognito_userpool_custom_email_sender.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.| 5 | 6 | /** @see 7 | * https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-create-auth-challenge.html 8 | */ 9 | @js.native 10 | trait BaseCustomEmailSenderTriggerEvent[T <: String, TRequestType] extends BaseTriggerEvent[T] { 11 | var request: BaseCustomEmailSenderTriggerEvent.Request = js.native 12 | } 13 | 14 | object BaseCustomEmailSenderTriggerEvent { 15 | @js.native 16 | trait Request extends js.Object { 17 | var `type`: String = js.native 18 | var code: String | Null = js.native 19 | var userAttributes: js.Dictionary[String] = js.native 20 | var clientMetadata: js.UndefOr[js.Dictionary[String]] = js.native 21 | } 22 | } 23 | 24 | @js.native 25 | trait CustomEmailSender_AccountTakeOverNotification_UserAttributes extends js.Object { 26 | var EVENT_ID: String = js.native 27 | var USER_NAME: String = js.native 28 | var IP_ADDRESS: String = js.native 29 | var ACCOUNT_TAKE_OVER_ACTION: literal.AccountTakeOverActionType = js.native 30 | var ONE_CLICK_LINK_VALID: String = js.native 31 | var ONE_CLICK_LINK_INVALID: String = js.native 32 | var LOGIN_TIME: String = js.native 33 | var FEEDBACK_TOKEN: String = js.native 34 | var CITY: js.UndefOr[String] = js.native 35 | var COUNTRY: js.UndefOr[String] = js.native 36 | var DEVICE_NAME: js.UndefOr[String] = js.native 37 | } 38 | 39 | object CustomEmailSender_AccountTakeOverNotification_UserAttributes { 40 | def apply( 41 | EVENT_ID: String, 42 | USER_NAME: String, 43 | IP_ADDRESS: String, 44 | ACCOUNT_TAKE_OVER_ACTION: literal.AccountTakeOverActionType, 45 | ONE_CLICK_LINK_VALID: String, 46 | ONE_CLICK_LINK_INVALID: String, 47 | LOGIN_TIME: String, 48 | FEEDBACK_TOKEN: String, 49 | CITY: js.UndefOr[String] = js.undefined, 50 | COUNTRY: js.UndefOr[String] = js.undefined, 51 | DEVICE_NAME: js.UndefOr[String] = js.undefined 52 | ): CustomEmailSender_AccountTakeOverNotification_UserAttributes = { 53 | val _obj$ = js.Dynamic.literal( 54 | "EVENT_ID" -> EVENT_ID.asInstanceOf[js.Any], 55 | "USER_NAME" -> USER_NAME.asInstanceOf[js.Any], 56 | "IP_ADDRESS" -> IP_ADDRESS.asInstanceOf[js.Any], 57 | "ACCOUNT_TAKE_OVER_ACTION" -> ACCOUNT_TAKE_OVER_ACTION.asInstanceOf[js.Any], 58 | "ONE_CLICK_LINK_VALID" -> ONE_CLICK_LINK_VALID.asInstanceOf[js.Any], 59 | "ONE_CLICK_LINK_INVALID" -> ONE_CLICK_LINK_INVALID.asInstanceOf[js.Any], 60 | "LOGIN_TIME" -> LOGIN_TIME.asInstanceOf[js.Any], 61 | "FEEDBACK_TOKEN" -> FEEDBACK_TOKEN.asInstanceOf[js.Any] 62 | ) 63 | CITY.foreach(_v => _obj$.updateDynamic("CITY")(_v.asInstanceOf[js.Any])) 64 | COUNTRY.foreach(_v => _obj$.updateDynamic("COUNTRY")(_v.asInstanceOf[js.Any])) 65 | DEVICE_NAME.foreach(_v => _obj$.updateDynamic("DEVICE_NAME")(_v.asInstanceOf[js.Any])) 66 | _obj$.asInstanceOf[CustomEmailSender_AccountTakeOverNotification_UserAttributes] 67 | } 68 | } 69 | 70 | @js.native 71 | trait CustomEmailSenderSignUpTriggerEvent 72 | extends BaseCustomEmailSenderTriggerEvent["CustomEmailSender_SignUp", BaseCustomEmailSenderTriggerEvent.Request] 73 | 74 | object CustomEmailSenderSignUpTriggerEvent { 75 | def apply( 76 | version: String, 77 | region: String, 78 | userPoolId: String, 79 | userName: String, 80 | callerContext: CognitoUserpoolCallerContext, 81 | request: BaseCustomEmailSenderTriggerEvent.Request 82 | ): CustomEmailSenderSignUpTriggerEvent = { 83 | val _obj$ = js.Dynamic.literal( 84 | "triggerSource" -> "CustomEmailSender_SignUp", 85 | "version" -> version.asInstanceOf[js.Any], 86 | "region" -> region.asInstanceOf[js.Any], 87 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 88 | "userName" -> userName.asInstanceOf[js.Any], 89 | "callerContext" -> callerContext.asInstanceOf[js.Any], 90 | "request" -> request.asInstanceOf[js.Any] 91 | ) 92 | _obj$.asInstanceOf[CustomEmailSenderSignUpTriggerEvent] 93 | } 94 | } 95 | 96 | @js.native 97 | trait CustomEmailSenderResendCodeTriggerEvent 98 | extends BaseCustomEmailSenderTriggerEvent[ 99 | "CustomEmailSender_ResendCode", 100 | BaseCustomEmailSenderTriggerEvent.Request 101 | ] 102 | 103 | object CustomEmailSenderResendCodeTriggerEvent { 104 | def apply( 105 | version: String, 106 | region: String, 107 | userPoolId: String, 108 | userName: String, 109 | callerContext: CognitoUserpoolCallerContext, 110 | request: BaseCustomEmailSenderTriggerEvent.Request 111 | ): CustomEmailSenderResendCodeTriggerEvent = { 112 | val _obj$ = js.Dynamic.literal( 113 | "triggerSource" -> "CustomEmailSender_ResendCode", 114 | "version" -> version.asInstanceOf[js.Any], 115 | "region" -> region.asInstanceOf[js.Any], 116 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 117 | "userName" -> userName.asInstanceOf[js.Any], 118 | "callerContext" -> callerContext.asInstanceOf[js.Any], 119 | "request" -> request.asInstanceOf[js.Any] 120 | ) 121 | _obj$.asInstanceOf[CustomEmailSenderResendCodeTriggerEvent] 122 | } 123 | } 124 | 125 | @js.native 126 | trait CustomEmailSenderForgotPasswordTriggerEvent 127 | extends BaseCustomEmailSenderTriggerEvent[ 128 | "CustomEmailSender_ForgotPassword", 129 | BaseCustomEmailSenderTriggerEvent.Request 130 | ] 131 | 132 | object CustomEmailSenderForgotPasswordTriggerEvent { 133 | def apply( 134 | version: String, 135 | region: String, 136 | userPoolId: String, 137 | userName: String, 138 | callerContext: CognitoUserpoolCallerContext, 139 | request: BaseCustomEmailSenderTriggerEvent.Request 140 | ): CustomEmailSenderForgotPasswordTriggerEvent = { 141 | val _obj$ = js.Dynamic.literal( 142 | "triggerSource" -> "CustomEmailSender_ForgotPassword", 143 | "version" -> version.asInstanceOf[js.Any], 144 | "region" -> region.asInstanceOf[js.Any], 145 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 146 | "userName" -> userName.asInstanceOf[js.Any], 147 | "callerContext" -> callerContext.asInstanceOf[js.Any], 148 | "request" -> request.asInstanceOf[js.Any] 149 | ) 150 | _obj$.asInstanceOf[CustomEmailSenderForgotPasswordTriggerEvent] 151 | } 152 | } 153 | 154 | @js.native 155 | trait CustomEmailSenderUpdateUserAttributeTriggerEvent 156 | extends BaseCustomEmailSenderTriggerEvent[ 157 | "CustomEmailSender_UpdateUserAttribute", 158 | BaseCustomEmailSenderTriggerEvent.Request 159 | ] 160 | 161 | object CustomEmailSenderUpdateUserAttributeTriggerEvent { 162 | def apply( 163 | version: String, 164 | region: String, 165 | userPoolId: String, 166 | userName: String, 167 | callerContext: CognitoUserpoolCallerContext, 168 | request: BaseCustomEmailSenderTriggerEvent.Request 169 | ): CustomEmailSenderUpdateUserAttributeTriggerEvent = { 170 | val _obj$ = js.Dynamic.literal( 171 | "triggerSource" -> "CustomEmailSender_ForgotPassword", 172 | "version" -> version.asInstanceOf[js.Any], 173 | "region" -> region.asInstanceOf[js.Any], 174 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 175 | "userName" -> userName.asInstanceOf[js.Any], 176 | "callerContext" -> callerContext.asInstanceOf[js.Any], 177 | "request" -> request.asInstanceOf[js.Any] 178 | ) 179 | _obj$.asInstanceOf[CustomEmailSenderUpdateUserAttributeTriggerEvent] 180 | } 181 | } 182 | 183 | @js.native 184 | trait CustomEmailSenderVerifyUserAttributeTriggerEvent 185 | extends BaseCustomEmailSenderTriggerEvent[ 186 | "CustomEmailSender_VerifyUserAttribute", 187 | BaseCustomEmailSenderTriggerEvent.Request 188 | ] 189 | 190 | object CustomEmailSenderVerifyUserAttributeTriggerEvent { 191 | def apply( 192 | version: String, 193 | region: String, 194 | userPoolId: String, 195 | userName: String, 196 | callerContext: CognitoUserpoolCallerContext, 197 | request: BaseCustomEmailSenderTriggerEvent.Request 198 | ): CustomEmailSenderVerifyUserAttributeTriggerEvent = { 199 | val _obj$ = js.Dynamic.literal( 200 | "triggerSource" -> "CustomEmailSender_VerifyUserAttribute", 201 | "version" -> version.asInstanceOf[js.Any], 202 | "region" -> region.asInstanceOf[js.Any], 203 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 204 | "userName" -> userName.asInstanceOf[js.Any], 205 | "callerContext" -> callerContext.asInstanceOf[js.Any], 206 | "request" -> request.asInstanceOf[js.Any] 207 | ) 208 | _obj$.asInstanceOf[CustomEmailSenderVerifyUserAttributeTriggerEvent] 209 | } 210 | } 211 | 212 | @js.native 213 | trait CustomEmailSenderAdminCreateUserTriggerEvent 214 | extends BaseCustomEmailSenderTriggerEvent[ 215 | "CustomEmailSender_AdminCreateUser", 216 | BaseCustomEmailSenderTriggerEvent.Request 217 | ] 218 | 219 | object CustomEmailSenderAdminCreateUserTriggerEvent { 220 | def apply( 221 | version: String, 222 | region: String, 223 | userPoolId: String, 224 | userName: String, 225 | callerContext: CognitoUserpoolCallerContext, 226 | request: BaseCustomEmailSenderTriggerEvent.Request 227 | ): CustomEmailSenderAdminCreateUserTriggerEvent = { 228 | val _obj$ = js.Dynamic.literal( 229 | "triggerSource" -> "CustomEmailSender_AdminCreateUser", 230 | "version" -> version.asInstanceOf[js.Any], 231 | "region" -> region.asInstanceOf[js.Any], 232 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 233 | "userName" -> userName.asInstanceOf[js.Any], 234 | "callerContext" -> callerContext.asInstanceOf[js.Any], 235 | "request" -> request.asInstanceOf[js.Any] 236 | ) 237 | _obj$.asInstanceOf[CustomEmailSenderAdminCreateUserTriggerEvent] 238 | } 239 | } 240 | 241 | @js.native 242 | trait CustomEmailSenderAccountTakeOverNotificationTriggerEvent 243 | extends BaseCustomEmailSenderTriggerEvent[ 244 | "CustomEmailSender_AccountTakeOverNotification", 245 | CustomEmailSender_AccountTakeOverNotification_UserAttributes 246 | ] 247 | 248 | object CustomEmailSenderAccountTakeOverNotificationTriggerEvent { 249 | def apply( 250 | version: String, 251 | region: String, 252 | userPoolId: String, 253 | userName: String, 254 | callerContext: CognitoUserpoolCallerContext, 255 | request: BaseCustomEmailSenderTriggerEvent.Request 256 | ): CustomEmailSenderAccountTakeOverNotificationTriggerEvent = { 257 | val _obj$ = js.Dynamic.literal( 258 | "triggerSource" -> "CustomEmailSender_AccountTakeOverNotification", 259 | "version" -> version.asInstanceOf[js.Any], 260 | "region" -> region.asInstanceOf[js.Any], 261 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 262 | "userName" -> userName.asInstanceOf[js.Any], 263 | "callerContext" -> callerContext.asInstanceOf[js.Any], 264 | "request" -> request.asInstanceOf[js.Any] 265 | ) 266 | _obj$.asInstanceOf[CustomEmailSenderAccountTakeOverNotificationTriggerEvent] 267 | } 268 | } 269 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cognito_userpool_custom_message.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | /** @see 6 | * https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-custom-message.html 7 | */ 8 | @js.native 9 | trait BaseCustomMessageTriggerEvent[T <: String] extends BaseTriggerEvent[T] { 10 | var request: CustomMessageTriggerEventRequest = js.native 11 | var response: CustomMessageTriggerEventResponse = js.native 12 | } 13 | 14 | @js.native 15 | trait CustomMessageAdminCreateUserTriggerEvent extends BaseCustomMessageTriggerEvent["CustomMessage_AdminCreateUser"] 16 | 17 | object CustomMessageAdminCreateUserTriggerEvent { 18 | def apply( 19 | version: String, 20 | region: String, 21 | userPoolId: String, 22 | userName: String, 23 | callerContext: CognitoUserpoolCallerContext, 24 | request: CustomMessageTriggerEventRequest, 25 | response: CustomMessageTriggerEventResponse 26 | ): CustomMessageAdminCreateUserTriggerEvent = { 27 | val _obj$ = js.Dynamic.literal( 28 | "triggerSource" -> "CustomMessage_AdminCreateUser", 29 | "version" -> version.asInstanceOf[js.Any], 30 | "region" -> region.asInstanceOf[js.Any], 31 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 32 | "userName" -> userName.asInstanceOf[js.Any], 33 | "callerContext" -> callerContext.asInstanceOf[js.Any], 34 | "request" -> request.asInstanceOf[js.Any], 35 | "response" -> response.asInstanceOf[js.Any] 36 | ) 37 | _obj$.asInstanceOf[CustomMessageAdminCreateUserTriggerEvent] 38 | } 39 | } 40 | 41 | @js.native 42 | trait CustomMessageAuthenticationTriggerEvent extends BaseCustomMessageTriggerEvent["CustomMessage_Authentication"] 43 | 44 | object CustomMessageAuthenticationTriggerEvent { 45 | def apply( 46 | version: String, 47 | region: String, 48 | userPoolId: String, 49 | userName: String, 50 | callerContext: CognitoUserpoolCallerContext, 51 | request: CustomMessageTriggerEventRequest, 52 | response: CustomMessageTriggerEventResponse 53 | ): CustomMessageAuthenticationTriggerEvent = { 54 | val _obj$ = js.Dynamic.literal( 55 | "triggerSource" -> "CustomMessage_Authentication", 56 | "version" -> version.asInstanceOf[js.Any], 57 | "region" -> region.asInstanceOf[js.Any], 58 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 59 | "userName" -> userName.asInstanceOf[js.Any], 60 | "callerContext" -> callerContext.asInstanceOf[js.Any], 61 | "request" -> request.asInstanceOf[js.Any], 62 | "response" -> response.asInstanceOf[js.Any] 63 | ) 64 | _obj$.asInstanceOf[CustomMessageAuthenticationTriggerEvent] 65 | } 66 | } 67 | 68 | @js.native 69 | trait CustomMessageForgotPasswordTriggerEvent extends BaseCustomMessageTriggerEvent["CustomMessage_ForgotPassword"] 70 | 71 | object CustomMessageForgotPasswordTriggerEvent { 72 | def apply( 73 | version: String, 74 | region: String, 75 | userPoolId: String, 76 | userName: String, 77 | callerContext: CognitoUserpoolCallerContext, 78 | request: CustomMessageTriggerEventRequest, 79 | response: CustomMessageTriggerEventResponse 80 | ): CustomMessageForgotPasswordTriggerEvent = { 81 | val _obj$ = js.Dynamic.literal( 82 | "triggerSource" -> "CustomMessage_ForgotPassword", 83 | "version" -> version.asInstanceOf[js.Any], 84 | "region" -> region.asInstanceOf[js.Any], 85 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 86 | "userName" -> userName.asInstanceOf[js.Any], 87 | "callerContext" -> callerContext.asInstanceOf[js.Any], 88 | "request" -> request.asInstanceOf[js.Any], 89 | "response" -> response.asInstanceOf[js.Any] 90 | ) 91 | _obj$.asInstanceOf[CustomMessageForgotPasswordTriggerEvent] 92 | } 93 | } 94 | 95 | @js.native 96 | trait CustomMessageResendCodeTriggerEvent extends BaseCustomMessageTriggerEvent["CustomMessage_ResendCode"] 97 | 98 | object CustomMessageResendCodeTriggerEvent { 99 | def apply( 100 | version: String, 101 | region: String, 102 | userPoolId: String, 103 | userName: String, 104 | callerContext: CognitoUserpoolCallerContext, 105 | request: CustomMessageTriggerEventRequest, 106 | response: CustomMessageTriggerEventResponse 107 | ): CustomMessageResendCodeTriggerEvent = { 108 | val _obj$ = js.Dynamic.literal( 109 | "triggerSource" -> "CustomMessage_ResendCode", 110 | "version" -> version.asInstanceOf[js.Any], 111 | "region" -> region.asInstanceOf[js.Any], 112 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 113 | "userName" -> userName.asInstanceOf[js.Any], 114 | "callerContext" -> callerContext.asInstanceOf[js.Any], 115 | "request" -> request.asInstanceOf[js.Any], 116 | "response" -> response.asInstanceOf[js.Any] 117 | ) 118 | _obj$.asInstanceOf[CustomMessageResendCodeTriggerEvent] 119 | } 120 | } 121 | 122 | @js.native 123 | trait CustomMessageSignUpTriggerEvent extends BaseCustomMessageTriggerEvent["CustomMessage_SignUp"] 124 | 125 | object CustomMessageSignUpTriggerEvent { 126 | def apply( 127 | version: String, 128 | region: String, 129 | userPoolId: String, 130 | userName: String, 131 | callerContext: CognitoUserpoolCallerContext, 132 | request: CustomMessageTriggerEventRequest, 133 | response: CustomMessageTriggerEventResponse 134 | ): CustomMessageSignUpTriggerEvent = { 135 | val _obj$ = js.Dynamic.literal( 136 | "triggerSource" -> "CustomMessage_SignUp", 137 | "version" -> version.asInstanceOf[js.Any], 138 | "region" -> region.asInstanceOf[js.Any], 139 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 140 | "userName" -> userName.asInstanceOf[js.Any], 141 | "callerContext" -> callerContext.asInstanceOf[js.Any], 142 | "request" -> request.asInstanceOf[js.Any], 143 | "response" -> response.asInstanceOf[js.Any] 144 | ) 145 | _obj$.asInstanceOf[CustomMessageSignUpTriggerEvent] 146 | } 147 | } 148 | 149 | @js.native 150 | trait CustomMessageUpdateUserAttributeTriggerEvent 151 | extends BaseCustomMessageTriggerEvent["CustomMessage_UpdateUserAttribute"] 152 | 153 | object CustomMessageUpdateUserAttributeTriggerEvent { 154 | def apply( 155 | version: String, 156 | region: String, 157 | userPoolId: String, 158 | userName: String, 159 | callerContext: CognitoUserpoolCallerContext, 160 | request: CustomMessageTriggerEventRequest, 161 | response: CustomMessageTriggerEventResponse 162 | ): CustomMessageUpdateUserAttributeTriggerEvent = { 163 | val _obj$ = js.Dynamic.literal( 164 | "triggerSource" -> "CustomMessage_UpdateUserAttribute", 165 | "version" -> version.asInstanceOf[js.Any], 166 | "region" -> region.asInstanceOf[js.Any], 167 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 168 | "userName" -> userName.asInstanceOf[js.Any], 169 | "callerContext" -> callerContext.asInstanceOf[js.Any], 170 | "request" -> request.asInstanceOf[js.Any], 171 | "response" -> response.asInstanceOf[js.Any] 172 | ) 173 | _obj$.asInstanceOf[CustomMessageUpdateUserAttributeTriggerEvent] 174 | } 175 | } 176 | 177 | @js.native 178 | trait CustomMessageVerifyUserAttributeTriggerEvent 179 | extends BaseCustomMessageTriggerEvent["CustomMessage_VerifyUserAttribute"] 180 | 181 | object CustomMessageVerifyUserAttributeTriggerEvent { 182 | def apply( 183 | version: String, 184 | region: String, 185 | userPoolId: String, 186 | userName: String, 187 | callerContext: CognitoUserpoolCallerContext, 188 | request: CustomMessageTriggerEventRequest, 189 | response: CustomMessageTriggerEventResponse 190 | ): CustomMessageVerifyUserAttributeTriggerEvent = { 191 | val _obj$ = js.Dynamic.literal( 192 | "triggerSource" -> "CustomMessage_VerifyUserAttribute", 193 | "version" -> version.asInstanceOf[js.Any], 194 | "region" -> region.asInstanceOf[js.Any], 195 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 196 | "userName" -> userName.asInstanceOf[js.Any], 197 | "callerContext" -> callerContext.asInstanceOf[js.Any], 198 | "request" -> request.asInstanceOf[js.Any], 199 | "response" -> response.asInstanceOf[js.Any] 200 | ) 201 | _obj$.asInstanceOf[CustomMessageVerifyUserAttributeTriggerEvent] 202 | } 203 | } 204 | 205 | @js.native 206 | trait CustomMessageTriggerEventRequest extends js.Object { 207 | var userAttributes: js.Dictionary[String] 208 | var codeParameter: String 209 | var usernameParameter: String 210 | var clientMetadata: js.UndefOr[js.Dictionary[String]] 211 | } 212 | 213 | object CustomMessageTriggerEventRequest { 214 | def apply( 215 | userAttributes: js.Dictionary[String], 216 | codeParameter: String, 217 | usernameParameter: String, 218 | clientMetadata: js.UndefOr[js.Dictionary[String]] = js.undefined 219 | ): CustomMessageTriggerEventRequest = { 220 | val _obj$ = js.Dynamic.literal( 221 | "userAttributes" -> userAttributes.asInstanceOf[js.Any], 222 | "codeParameter" -> codeParameter.asInstanceOf[js.Any], 223 | "usernameParameter" -> usernameParameter.asInstanceOf[js.Any] 224 | ) 225 | clientMetadata.foreach(_v => _obj$.updateDynamic("clientMetadata")(_v.asInstanceOf[js.Any])) 226 | _obj$.asInstanceOf[CustomMessageTriggerEventRequest] 227 | } 228 | } 229 | 230 | @js.native 231 | trait CustomMessageTriggerEventResponse extends js.Object { 232 | var smsMessage: String 233 | var emailMessage: String 234 | var emailSubject: String 235 | } 236 | 237 | object CustomMessageTriggerEventResponse { 238 | def apply( 239 | smsMessage: String, 240 | emailMessage: String, 241 | emailSubject: String 242 | ): CustomMessageTriggerEventResponse = { 243 | val _obj$ = js.Dynamic.literal( 244 | "smsMessage" -> smsMessage.asInstanceOf[js.Any], 245 | "emailMessage" -> emailMessage.asInstanceOf[js.Any], 246 | "emailSubject" -> emailSubject.asInstanceOf[js.Any] 247 | ) 248 | _obj$.asInstanceOf[CustomMessageTriggerEventResponse] 249 | } 250 | } 251 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cognito_userpool_define_auth_challenge.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.| 5 | 6 | /** @see 7 | * https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-define-auth-challenge.html 8 | */ 9 | @js.native 10 | trait DefineAuthChallengeTriggerEvent extends BaseTriggerEvent["DefineAuthChallenge_Authentication"] { 11 | var request: DefineAuthChallengeTriggerEventRequest = js.native 12 | var response: DefineAuthChallengeTriggerEventResponse = js.native 13 | } 14 | 15 | object DefineAuthChallengeTriggerEvent { 16 | def apply( 17 | version: String, 18 | region: String, 19 | userPoolId: String, 20 | userName: String, 21 | callerContext: CognitoUserpoolCallerContext, 22 | request: DefineAuthChallengeTriggerEventRequest, 23 | response: DefineAuthChallengeTriggerEventResponse 24 | ): DefineAuthChallengeTriggerEvent = { 25 | val _obj$ = js.Dynamic.literal( 26 | "triggerSource" -> "DefineAuthChallenge_Authentication", 27 | "version" -> version.asInstanceOf[js.Any], 28 | "region" -> region.asInstanceOf[js.Any], 29 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 30 | "userName" -> userName.asInstanceOf[js.Any], 31 | "callerContext" -> callerContext.asInstanceOf[js.Any], 32 | "request" -> request.asInstanceOf[js.Any], 33 | "response" -> response.asInstanceOf[js.Any] 34 | ) 35 | _obj$.asInstanceOf[DefineAuthChallengeTriggerEvent] 36 | } 37 | } 38 | 39 | @js.native 40 | trait DefineAuthChallengeTriggerEventRequest extends js.Object { 41 | var userAttributes: js.Dictionary[String] 42 | var session: js.Array[ChallengeResult | CustomChallengeResult] 43 | var clientMetadata: js.UndefOr[js.Dictionary[String]] 44 | var userNotFound: js.UndefOr[Boolean] 45 | } 46 | 47 | object DefineAuthChallengeTriggerEventRequest { 48 | def apply( 49 | userAttributes: js.Dictionary[String], 50 | session: js.Array[ChallengeResult | CustomChallengeResult], 51 | clientMetadata: js.UndefOr[js.Dictionary[String]] = js.undefined, 52 | userNotFound: js.UndefOr[Boolean] = js.undefined 53 | ): DefineAuthChallengeTriggerEventRequest = { 54 | val _obj$ = js.Dynamic.literal( 55 | "userAttributes" -> userAttributes.asInstanceOf[js.Any], 56 | "session" -> session.asInstanceOf[js.Any] 57 | ) 58 | clientMetadata.foreach(_v => _obj$.updateDynamic("clientMetadata")(_v.asInstanceOf[js.Any])) 59 | userNotFound.foreach(_v => _obj$.updateDynamic("userNotFound")(_v.asInstanceOf[js.Any])) 60 | _obj$.asInstanceOf[DefineAuthChallengeTriggerEventRequest] 61 | } 62 | } 63 | 64 | @js.native 65 | trait DefineAuthChallengeTriggerEventResponse extends js.Object { 66 | var challengeName: String 67 | var failAuthentication: Boolean 68 | var issueTokens: Boolean 69 | } 70 | 71 | object DefineAuthChallengeTriggerEventResponse { 72 | def apply( 73 | challengeName: String, 74 | failAuthentication: Boolean, 75 | issueTokens: Boolean 76 | ): DefineAuthChallengeTriggerEventResponse = { 77 | val _obj$ = js.Dynamic.literal( 78 | "challengeName" -> challengeName.asInstanceOf[js.Any], 79 | "failAuthentication" -> failAuthentication.asInstanceOf[js.Any], 80 | "issueTokens" -> issueTokens.asInstanceOf[js.Any] 81 | ) 82 | _obj$.asInstanceOf[DefineAuthChallengeTriggerEventResponse] 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cognito_userpool_post_authentication.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | /** @see 6 | * https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-post-authentication.html 7 | */ 8 | @js.native 9 | trait PostAuthenticationTriggerEvent extends BaseTriggerEvent["PostAuthentication_Authentication"] { 10 | var request: PostAuthenticationTriggerEventRequest = js.native 11 | } 12 | 13 | object PostAuthenticationTriggerEvent { 14 | def apply( 15 | version: String, 16 | region: String, 17 | userPoolId: String, 18 | userName: String, 19 | callerContext: CognitoUserpoolCallerContext, 20 | request: PostAuthenticationTriggerEventRequest 21 | ): PostAuthenticationTriggerEvent = { 22 | val _obj$ = js.Dynamic.literal( 23 | "triggerSource" -> "PostAuthentication_Authentication", 24 | "version" -> version.asInstanceOf[js.Any], 25 | "region" -> region.asInstanceOf[js.Any], 26 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 27 | "userName" -> userName.asInstanceOf[js.Any], 28 | "callerContext" -> callerContext.asInstanceOf[js.Any], 29 | "request" -> request.asInstanceOf[js.Any] 30 | ) 31 | _obj$.asInstanceOf[PostAuthenticationTriggerEvent] 32 | } 33 | } 34 | 35 | @js.native 36 | trait PostAuthenticationTriggerEventRequest extends js.Object { 37 | var userAttributes: js.Dictionary[String] = js.native 38 | var newDeviceUsed: Boolean = js.native 39 | var clientMetadata: js.UndefOr[js.Dictionary[String]] = js.native 40 | } 41 | 42 | object PostAuthenticationTriggerEventRequest { 43 | def apply( 44 | userAttributes: js.Dictionary[String], 45 | newDeviceUsed: Boolean, 46 | clientMetadata: js.UndefOr[js.Dictionary[String]] = js.undefined 47 | ): PostAuthenticationTriggerEventRequest = { 48 | val _obj$ = js.Dynamic.literal( 49 | "userAttributes" -> userAttributes.asInstanceOf[js.Any], 50 | "newDeviceUsed" -> newDeviceUsed.asInstanceOf[js.Any] 51 | ) 52 | clientMetadata.foreach(_v => _obj$.updateDynamic("clientMetadata")(_v.asInstanceOf[js.Any])) 53 | _obj$.asInstanceOf[PostAuthenticationTriggerEventRequest] 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cognito_userpool_post_confirmation.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | /** @see 6 | * https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-post-confirmation.html 7 | */ 8 | @js.native 9 | trait BasePostConfirmationTriggerEvent[T <: String] extends BaseTriggerEvent[T] { 10 | var request: PostConfirmationTriggerEventRequest = js.native 11 | } 12 | 13 | @js.native 14 | trait PostConfirmationConfirmSignUpTriggerEvent 15 | extends BasePostConfirmationTriggerEvent["PostConfirmation_ConfirmSignUp"] 16 | 17 | object PostConfirmationConfirmSignUpTriggerEvent { 18 | def apply( 19 | version: String, 20 | region: String, 21 | userPoolId: String, 22 | userName: String, 23 | callerContext: CognitoUserpoolCallerContext, 24 | request: PostConfirmationTriggerEventRequest 25 | ): PostConfirmationConfirmSignUpTriggerEvent = { 26 | val _obj$ = js.Dynamic.literal( 27 | "triggerSource" -> "PostConfirmation_ConfirmSignUp", 28 | "version" -> version.asInstanceOf[js.Any], 29 | "region" -> region.asInstanceOf[js.Any], 30 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 31 | "userName" -> userName.asInstanceOf[js.Any], 32 | "callerContext" -> callerContext.asInstanceOf[js.Any], 33 | "request" -> request.asInstanceOf[js.Any] 34 | ) 35 | _obj$.asInstanceOf[PostConfirmationConfirmSignUpTriggerEvent] 36 | } 37 | } 38 | 39 | @js.native 40 | trait PostConfirmationConfirmForgotPassword 41 | extends BasePostConfirmationTriggerEvent["PostConfirmation_ConfirmForgotPassword"] 42 | 43 | object PostConfirmationConfirmForgotPassword { 44 | def apply( 45 | version: String, 46 | region: String, 47 | userPoolId: String, 48 | userName: String, 49 | callerContext: CognitoUserpoolCallerContext, 50 | request: PostConfirmationTriggerEventRequest 51 | ): PostConfirmationConfirmForgotPassword = { 52 | val _obj$ = js.Dynamic.literal( 53 | "triggerSource" -> "PostConfirmation_ConfirmForgotPassword", 54 | "version" -> version.asInstanceOf[js.Any], 55 | "region" -> region.asInstanceOf[js.Any], 56 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 57 | "userName" -> userName.asInstanceOf[js.Any], 58 | "callerContext" -> callerContext.asInstanceOf[js.Any], 59 | "request" -> request.asInstanceOf[js.Any] 60 | ) 61 | _obj$.asInstanceOf[PostConfirmationConfirmForgotPassword] 62 | } 63 | } 64 | 65 | @js.native 66 | trait PostConfirmationTriggerEventRequest extends js.Object { 67 | var userAttributes: js.Dictionary[String] 68 | var clientMetadata: js.UndefOr[js.Dictionary[String]] 69 | } 70 | 71 | object PostConfirmationTriggerEventRequest { 72 | def apply( 73 | userAttributes: js.Dictionary[String], 74 | clientMetadata: js.UndefOr[js.Dictionary[String]] = js.undefined 75 | ): PostConfirmationTriggerEventRequest = { 76 | val _obj$ = js.Dynamic.literal( 77 | "userAttributes" -> userAttributes.asInstanceOf[js.Any] 78 | ) 79 | clientMetadata.foreach(_v => _obj$.updateDynamic("clientMetadata")(_v.asInstanceOf[js.Any])) 80 | _obj$.asInstanceOf[PostConfirmationTriggerEventRequest] 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cognito_userpool_pre_authentication.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | /** @see 6 | * https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-authentication.html 7 | */ 8 | @js.native 9 | trait PreAuthenticationTriggerEvent extends BaseTriggerEvent["PreAuthentication_Authentication"] { 10 | var request: PreAuthenticationTriggerEventRequest = js.native 11 | } 12 | 13 | object PreAuthenticationTriggerEvent { 14 | def apply( 15 | version: String, 16 | region: String, 17 | userPoolId: String, 18 | userName: String, 19 | callerContext: CognitoUserpoolCallerContext, 20 | request: PreAuthenticationTriggerEventRequest 21 | ): PreAuthenticationTriggerEvent = { 22 | val _obj$ = js.Dynamic.literal( 23 | "triggerSource" -> "PreAuthentication_Authentication", 24 | "version" -> version.asInstanceOf[js.Any], 25 | "region" -> region.asInstanceOf[js.Any], 26 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 27 | "userName" -> userName.asInstanceOf[js.Any], 28 | "callerContext" -> callerContext.asInstanceOf[js.Any], 29 | "request" -> request.asInstanceOf[js.Any] 30 | ) 31 | _obj$.asInstanceOf[PreAuthenticationTriggerEvent] 32 | } 33 | } 34 | 35 | @js.native 36 | trait PreAuthenticationTriggerEventRequest extends js.Object { 37 | var userAttributes: js.Dictionary[String] = js.native 38 | var userNotFound: js.UndefOr[Boolean] = js.native 39 | var validationData: js.UndefOr[js.Dictionary[String]] = js.native 40 | } 41 | 42 | object PreAuthenticationTriggerEventRequest { 43 | def apply( 44 | userAttributes: js.Dictionary[String], 45 | userNotFound: js.UndefOr[Boolean] = js.undefined, 46 | validationData: js.UndefOr[js.Dictionary[String]] = js.undefined 47 | ): PreAuthenticationTriggerEventRequest = { 48 | val _obj$ = js.Dynamic.literal( 49 | "userAttributes" -> userAttributes.asInstanceOf[js.Any] 50 | ) 51 | userNotFound.foreach(_v => _obj$.updateDynamic("userNotFound")(_v.asInstanceOf[js.Any])) 52 | validationData.foreach(_v => _obj$.updateDynamic("validationData")(_v.asInstanceOf[js.Any])) 53 | _obj$.asInstanceOf[PreAuthenticationTriggerEventRequest] 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cognito_userpool_pre_signup.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | /** @see 6 | * https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-sign-up.html 7 | */ 8 | @js.native 9 | trait BasePreSignUpTriggerEvent[T <: String] extends BaseTriggerEvent[T] { 10 | var request: PreSignUpTriggerEventRequest = js.native 11 | var response: PreSignUpTriggerEventResponse = js.native 12 | } 13 | 14 | @js.native 15 | trait PreSignUpEmailTriggerEvent extends BaseTriggerEvent["PreSignUp_SignUp"] 16 | 17 | object PreSignUpEmailTriggerEvent { 18 | def apply( 19 | version: String, 20 | region: String, 21 | userPoolId: String, 22 | userName: String, 23 | callerContext: CognitoUserpoolCallerContext, 24 | request: PreSignUpTriggerEventRequest, 25 | response: PreSignUpTriggerEventResponse 26 | ): PreSignUpEmailTriggerEvent = { 27 | val _obj$ = js.Dynamic.literal( 28 | "triggerSource" -> "PreSignUp_SignUp", 29 | "version" -> version.asInstanceOf[js.Any], 30 | "region" -> region.asInstanceOf[js.Any], 31 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 32 | "userName" -> userName.asInstanceOf[js.Any], 33 | "callerContext" -> callerContext.asInstanceOf[js.Any], 34 | "request" -> request.asInstanceOf[js.Any], 35 | "response" -> response.asInstanceOf[js.Any] 36 | ) 37 | _obj$.asInstanceOf[PreSignUpEmailTriggerEvent] 38 | } 39 | } 40 | 41 | @js.native 42 | trait PreSignUpExternalProviderTriggerEvent extends BaseTriggerEvent["PreSignUp_ExternalProvider"] 43 | 44 | object PreSignUpExternalProviderTriggerEvent { 45 | def apply( 46 | version: String, 47 | region: String, 48 | userPoolId: String, 49 | userName: String, 50 | callerContext: CognitoUserpoolCallerContext, 51 | request: PreSignUpTriggerEventRequest, 52 | response: PreSignUpTriggerEventResponse 53 | ): PreSignUpExternalProviderTriggerEvent = { 54 | val _obj$ = js.Dynamic.literal( 55 | "triggerSource" -> "PreSignUp_ExternalProvider", 56 | "version" -> version.asInstanceOf[js.Any], 57 | "region" -> region.asInstanceOf[js.Any], 58 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 59 | "userName" -> userName.asInstanceOf[js.Any], 60 | "callerContext" -> callerContext.asInstanceOf[js.Any], 61 | "request" -> request.asInstanceOf[js.Any], 62 | "response" -> response.asInstanceOf[js.Any] 63 | ) 64 | _obj$.asInstanceOf[PreSignUpExternalProviderTriggerEvent] 65 | } 66 | } 67 | 68 | @js.native 69 | trait PreSignUpAdminCreateUserTriggerEvent extends BaseTriggerEvent["PreSignUp_AdminCreateUser"] 70 | 71 | object PreSignUpAdminCreateUserTriggerEvent { 72 | def apply( 73 | version: String, 74 | region: String, 75 | userPoolId: String, 76 | userName: String, 77 | callerContext: CognitoUserpoolCallerContext, 78 | request: PreSignUpTriggerEventRequest, 79 | response: PreSignUpTriggerEventResponse 80 | ): PreSignUpAdminCreateUserTriggerEvent = { 81 | val _obj$ = js.Dynamic.literal( 82 | "triggerSource" -> "PreSignUp_ExternalProvider", 83 | "version" -> version.asInstanceOf[js.Any], 84 | "region" -> region.asInstanceOf[js.Any], 85 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 86 | "userName" -> userName.asInstanceOf[js.Any], 87 | "callerContext" -> callerContext.asInstanceOf[js.Any], 88 | "request" -> request.asInstanceOf[js.Any], 89 | "response" -> response.asInstanceOf[js.Any] 90 | ) 91 | _obj$.asInstanceOf[PreSignUpAdminCreateUserTriggerEvent] 92 | } 93 | } 94 | 95 | @js.native 96 | trait PreSignUpTriggerEventRequest extends js.Object { 97 | var userAttributes: js.Dictionary[String] 98 | var validationData: js.UndefOr[js.Dictionary[String]] 99 | var clientMetadata: js.UndefOr[js.Dictionary[String]] 100 | } 101 | 102 | object PreSignUpTriggerEventRequest { 103 | def apply( 104 | userAttributes: js.Dictionary[String], 105 | validationData: js.UndefOr[js.Dictionary[String]] = js.undefined, 106 | clientMetadata: js.UndefOr[js.Dictionary[String]] = js.undefined 107 | ): PreSignUpTriggerEventRequest = { 108 | val _obj$ = js.Dynamic.literal( 109 | "userAttributes" -> userAttributes.asInstanceOf[js.Any] 110 | ) 111 | validationData.foreach(_v => _obj$.updateDynamic("validationData")(_v.asInstanceOf[js.Any])) 112 | clientMetadata.foreach(_v => _obj$.updateDynamic("clientMetadata")(_v.asInstanceOf[js.Any])) 113 | _obj$.asInstanceOf[PreSignUpTriggerEventRequest] 114 | } 115 | } 116 | 117 | @js.native 118 | trait PreSignUpTriggerEventResponse extends js.Object { 119 | var autoConfirmUser: Boolean 120 | var autoVerifyEmail: Boolean 121 | var autoVerifyPhone: Boolean 122 | } 123 | 124 | object PreSignUpTriggerEventResponse { 125 | def apply( 126 | autoConfirmUser: Boolean, 127 | autoVerifyEmail: Boolean, 128 | autoVerifyPhone: Boolean 129 | ): PreSignUpTriggerEventResponse = { 130 | val _obj$ = js.Dynamic.literal( 131 | "autoConfirmUser" -> autoConfirmUser.asInstanceOf[js.Any], 132 | "autoVerifyEmail" -> autoVerifyEmail.asInstanceOf[js.Any], 133 | "autoVerifyPhone" -> autoVerifyPhone.asInstanceOf[js.Any] 134 | ) 135 | _obj$.asInstanceOf[PreSignUpTriggerEventResponse] 136 | } 137 | } 138 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cognito_userpool_pre_token_generation.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait GroupOverrideDetails extends js.Object { 7 | var groupsToOverride: js.UndefOr[js.Array[String]] 8 | var iamRolesToOverride: js.UndefOr[js.Array[String]] 9 | var preferredRole: js.UndefOr[String] 10 | } 11 | 12 | object GroupOverrideDetails { 13 | def apply( 14 | groupsToOverride: js.UndefOr[js.Array[String]] = js.undefined, 15 | iamRolesToOverride: js.UndefOr[js.Array[String]] = js.undefined, 16 | preferredRole: js.UndefOr[String] = js.undefined 17 | ): GroupOverrideDetails = { 18 | val _obj$ = js.Dynamic.literal( 19 | ) 20 | groupsToOverride.foreach(_v => _obj$.updateDynamic("groupsToOverride")(_v.asInstanceOf[js.Any])) 21 | iamRolesToOverride.foreach(_v => _obj$.updateDynamic("iamRolesToOverride")(_v.asInstanceOf[js.Any])) 22 | preferredRole.foreach(_v => _obj$.updateDynamic("preferredRole")(_v.asInstanceOf[js.Any])) 23 | _obj$.asInstanceOf[GroupOverrideDetails] 24 | } 25 | } 26 | 27 | /** @see 28 | * https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token-generation.html 29 | */ 30 | @js.native 31 | trait BasePreTokenGenerationTriggerEvent[T <: String] extends BaseTriggerEvent[T] { 32 | var request: PreTokenGenerationTriggerEventRequest = js.native 33 | var response: PreTokenGenerationTriggerEventResponse = js.native 34 | } 35 | 36 | @js.native 37 | trait PreTokenGenerationTriggerEventRequest extends js.Object { 38 | var userAttributes: js.Dictionary[String] 39 | var groupConfiguration: GroupOverrideDetails 40 | var clientMetadata: js.UndefOr[js.Dictionary[String]] 41 | } 42 | 43 | object PreTokenGenerationTriggerEventRequest { 44 | def apply( 45 | userAttributes: js.Dictionary[String], 46 | groupConfiguration: GroupOverrideDetails, 47 | clientMetadata: js.UndefOr[js.Dictionary[String]] = js.undefined 48 | ): PreTokenGenerationTriggerEventRequest = { 49 | val _obj$ = js.Dynamic.literal( 50 | "userAttributes" -> userAttributes.asInstanceOf[js.Any], 51 | "groupConfiguration" -> groupConfiguration.asInstanceOf[js.Any] 52 | ) 53 | clientMetadata.foreach(_v => _obj$.updateDynamic("clientMetadata")(_v.asInstanceOf[js.Any])) 54 | _obj$.asInstanceOf[PreTokenGenerationTriggerEventRequest] 55 | } 56 | } 57 | 58 | @js.native 59 | trait PreTokenGenerationTriggerEventResponse extends js.Object { 60 | var claimsOverrideDetails: PreTokenGenerationTriggerEventResponse.ClaimsOverrideDetails = js.native 61 | } 62 | 63 | object PreTokenGenerationTriggerEventResponse { 64 | def apply( 65 | claimsOverrideDetails: PreTokenGenerationTriggerEventResponse.ClaimsOverrideDetails 66 | ): PreTokenGenerationTriggerEventResponse = { 67 | val _obj$ = js.Dynamic.literal( 68 | "claimsOverrideDetails" -> claimsOverrideDetails.asInstanceOf[js.Any] 69 | ) 70 | _obj$.asInstanceOf[PreTokenGenerationTriggerEventResponse] 71 | } 72 | 73 | @js.native 74 | trait ClaimsOverrideDetails extends js.Object { 75 | var claimsToAddOrOverride: js.UndefOr[js.Dictionary[String]] = js.native 76 | var claimsToSuppress: js.UndefOr[js.Array[String]] = js.native 77 | var groupOverrideDetails: js.UndefOr[GroupOverrideDetails] = js.native 78 | } 79 | 80 | object ClaimsOverrideDetails { 81 | def apply( 82 | claimsToAddOrOverride: js.UndefOr[js.Dictionary[String]] = js.undefined, 83 | claimsToSuppress: js.UndefOr[js.Array[String]] = js.undefined, 84 | groupOverrideDetails: js.UndefOr[GroupOverrideDetails] = js.undefined 85 | ): ClaimsOverrideDetails = { 86 | val _obj$ = js.Dynamic.literal( 87 | ) 88 | claimsToAddOrOverride.foreach(_v => _obj$.updateDynamic("claimsToAddOrOverride")(_v.asInstanceOf[js.Any])) 89 | claimsToSuppress.foreach(_v => _obj$.updateDynamic("claimsToSuppress")(_v.asInstanceOf[js.Any])) 90 | groupOverrideDetails.foreach(_v => _obj$.updateDynamic("groupOverrideDetails")(_v.asInstanceOf[js.Any])) 91 | _obj$.asInstanceOf[ClaimsOverrideDetails] 92 | } 93 | } 94 | } 95 | 96 | @js.native 97 | trait PreTokenGenerationHostedAuthTriggerEvent extends BasePreTokenGenerationTriggerEvent["TokenGeneration_HostedAuth"] 98 | 99 | object PreTokenGenerationHostedAuthTriggerEvent { 100 | def apply( 101 | version: String, 102 | region: String, 103 | userPoolId: String, 104 | userName: String, 105 | callerContext: CognitoUserpoolCallerContext, 106 | request: UserMigrationTriggerEventRequest, 107 | response: UserMigrationTriggerEventResponse 108 | ): PreTokenGenerationHostedAuthTriggerEvent = { 109 | val _obj$ = js.Dynamic.literal( 110 | "triggerSource" -> "TokenGeneration_HostedAuth", 111 | "version" -> version.asInstanceOf[js.Any], 112 | "region" -> region.asInstanceOf[js.Any], 113 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 114 | "userName" -> userName.asInstanceOf[js.Any], 115 | "callerContext" -> callerContext.asInstanceOf[js.Any], 116 | "request" -> request.asInstanceOf[js.Any], 117 | "response" -> response.asInstanceOf[js.Any] 118 | ) 119 | _obj$.asInstanceOf[PreTokenGenerationHostedAuthTriggerEvent] 120 | } 121 | } 122 | 123 | @js.native 124 | trait PreTokenGenerationAuthenticationTriggerEvent 125 | extends BasePreTokenGenerationTriggerEvent["TokenGeneration_Authentication"] 126 | 127 | object PreTokenGenerationAuthenticationTriggerEvent { 128 | def apply( 129 | version: String, 130 | region: String, 131 | userPoolId: String, 132 | userName: String, 133 | callerContext: CognitoUserpoolCallerContext, 134 | request: UserMigrationTriggerEventRequest, 135 | response: UserMigrationTriggerEventResponse 136 | ): PreTokenGenerationAuthenticationTriggerEvent = { 137 | val _obj$ = js.Dynamic.literal( 138 | "triggerSource" -> "TokenGeneration_Authentication", 139 | "version" -> version.asInstanceOf[js.Any], 140 | "region" -> region.asInstanceOf[js.Any], 141 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 142 | "userName" -> userName.asInstanceOf[js.Any], 143 | "callerContext" -> callerContext.asInstanceOf[js.Any], 144 | "request" -> request.asInstanceOf[js.Any], 145 | "response" -> response.asInstanceOf[js.Any] 146 | ) 147 | _obj$.asInstanceOf[PreTokenGenerationAuthenticationTriggerEvent] 148 | } 149 | } 150 | 151 | @js.native 152 | trait PreTokenGenerationNewPasswordChallengeTriggerEvent 153 | extends BasePreTokenGenerationTriggerEvent["TokenGeneration_NewPasswordChallenge"] 154 | 155 | object PreTokenGenerationNewPasswordChallengeTriggerEvent { 156 | def apply( 157 | version: String, 158 | region: String, 159 | userPoolId: String, 160 | userName: String, 161 | callerContext: CognitoUserpoolCallerContext, 162 | request: UserMigrationTriggerEventRequest, 163 | response: UserMigrationTriggerEventResponse 164 | ): PreTokenGenerationNewPasswordChallengeTriggerEvent = { 165 | val _obj$ = js.Dynamic.literal( 166 | "triggerSource" -> "TokenGeneration_NewPasswordChallenge", 167 | "version" -> version.asInstanceOf[js.Any], 168 | "region" -> region.asInstanceOf[js.Any], 169 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 170 | "userName" -> userName.asInstanceOf[js.Any], 171 | "callerContext" -> callerContext.asInstanceOf[js.Any], 172 | "request" -> request.asInstanceOf[js.Any], 173 | "response" -> response.asInstanceOf[js.Any] 174 | ) 175 | _obj$.asInstanceOf[PreTokenGenerationNewPasswordChallengeTriggerEvent] 176 | } 177 | } 178 | 179 | @js.native 180 | trait PreTokenGenerationAuthenticateDeviceTriggerEvent 181 | extends BasePreTokenGenerationTriggerEvent["TokenGeneration_AuthenticateDevice"] 182 | 183 | object PreTokenGenerationAuthenticateDeviceTriggerEvent { 184 | def apply( 185 | version: String, 186 | region: String, 187 | userPoolId: String, 188 | userName: String, 189 | callerContext: CognitoUserpoolCallerContext, 190 | request: UserMigrationTriggerEventRequest, 191 | response: UserMigrationTriggerEventResponse 192 | ): PreTokenGenerationAuthenticateDeviceTriggerEvent = { 193 | val _obj$ = js.Dynamic.literal( 194 | "triggerSource" -> "TokenGeneration_AuthenticateDevice", 195 | "version" -> version.asInstanceOf[js.Any], 196 | "region" -> region.asInstanceOf[js.Any], 197 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 198 | "userName" -> userName.asInstanceOf[js.Any], 199 | "callerContext" -> callerContext.asInstanceOf[js.Any], 200 | "request" -> request.asInstanceOf[js.Any], 201 | "response" -> response.asInstanceOf[js.Any] 202 | ) 203 | _obj$.asInstanceOf[PreTokenGenerationAuthenticateDeviceTriggerEvent] 204 | } 205 | } 206 | 207 | @js.native 208 | trait PreTokenGenerationRefreshTokensTriggerEvent 209 | extends BasePreTokenGenerationTriggerEvent["TokenGeneration_RefreshTokens"] 210 | 211 | object PreTokenGenerationRefreshTokensTriggerEvent { 212 | def apply( 213 | version: String, 214 | region: String, 215 | userPoolId: String, 216 | userName: String, 217 | callerContext: CognitoUserpoolCallerContext, 218 | request: UserMigrationTriggerEventRequest, 219 | response: UserMigrationTriggerEventResponse 220 | ): PreTokenGenerationRefreshTokensTriggerEvent = { 221 | val _obj$ = js.Dynamic.literal( 222 | "triggerSource" -> "TokenGeneration_RefreshTokens", 223 | "version" -> version.asInstanceOf[js.Any], 224 | "region" -> region.asInstanceOf[js.Any], 225 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 226 | "userName" -> userName.asInstanceOf[js.Any], 227 | "callerContext" -> callerContext.asInstanceOf[js.Any], 228 | "request" -> request.asInstanceOf[js.Any], 229 | "response" -> response.asInstanceOf[js.Any] 230 | ) 231 | _obj$.asInstanceOf[PreTokenGenerationRefreshTokensTriggerEvent] 232 | } 233 | } 234 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cognito_userpool_user_migration.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | /** @see 6 | * https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-migrate-user.html 7 | */ 8 | @js.native 9 | trait BaseUserMigrationTriggerEvent[T <: String] extends BaseTriggerEvent[T] { 10 | var request: UserMigrationTriggerEventRequest = js.native 11 | var response: UserMigrationTriggerEventResponse = js.native 12 | } 13 | 14 | @js.native 15 | trait UserMigrationAuthenticationTriggerEvent extends BaseUserMigrationTriggerEvent["UserMigration_Authentication"] 16 | 17 | object UserMigrationAuthenticationTriggerEvent { 18 | def apply( 19 | version: String, 20 | region: String, 21 | userPoolId: String, 22 | userName: String, 23 | callerContext: CognitoUserpoolCallerContext, 24 | request: UserMigrationTriggerEventRequest, 25 | response: UserMigrationTriggerEventResponse 26 | ): UserMigrationAuthenticationTriggerEvent = { 27 | val _obj$ = js.Dynamic.literal( 28 | "triggerSource" -> "UserMigration_Authentication", 29 | "version" -> version.asInstanceOf[js.Any], 30 | "region" -> region.asInstanceOf[js.Any], 31 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 32 | "userName" -> userName.asInstanceOf[js.Any], 33 | "callerContext" -> callerContext.asInstanceOf[js.Any], 34 | "request" -> request.asInstanceOf[js.Any], 35 | "response" -> response.asInstanceOf[js.Any] 36 | ) 37 | _obj$.asInstanceOf[UserMigrationAuthenticationTriggerEvent] 38 | } 39 | } 40 | 41 | @js.native 42 | trait UserMigrationForgotPasswordTriggerEvent extends BaseUserMigrationTriggerEvent["UserMigration_ForgotPassword"] 43 | 44 | object UserMigrationForgotPasswordTriggerEvent { 45 | def apply( 46 | version: String, 47 | region: String, 48 | userPoolId: String, 49 | userName: String, 50 | callerContext: CognitoUserpoolCallerContext, 51 | request: UserMigrationTriggerEventRequest, 52 | response: UserMigrationTriggerEventResponse 53 | ): UserMigrationForgotPasswordTriggerEvent = { 54 | val _obj$ = js.Dynamic.literal( 55 | "triggerSource" -> "UserMigration_ForgotPassword", 56 | "version" -> version.asInstanceOf[js.Any], 57 | "region" -> region.asInstanceOf[js.Any], 58 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 59 | "userName" -> userName.asInstanceOf[js.Any], 60 | "callerContext" -> callerContext.asInstanceOf[js.Any], 61 | "request" -> request.asInstanceOf[js.Any], 62 | "response" -> response.asInstanceOf[js.Any] 63 | ) 64 | _obj$.asInstanceOf[UserMigrationForgotPasswordTriggerEvent] 65 | } 66 | } 67 | 68 | @js.native 69 | trait UserMigrationTriggerEventRequest extends js.Object { 70 | var password: String = js.native 71 | var validationData: js.UndefOr[js.Dictionary[String]] = js.native 72 | var clientMetadata: js.UndefOr[js.Dictionary[String]] = js.native 73 | } 74 | 75 | object UserMigrationTriggerEventRequest { 76 | def apply( 77 | password: String, 78 | validationData: js.UndefOr[js.Dictionary[String]] = js.undefined, 79 | clientMetadata: js.UndefOr[js.Dictionary[String]] = js.undefined 80 | ): UserMigrationTriggerEventRequest = { 81 | val _obj$ = js.Dynamic.literal( 82 | "password" -> password.asInstanceOf[js.Any] 83 | ) 84 | validationData.foreach(_v => _obj$.updateDynamic("validationData")(_v.asInstanceOf[js.Any])) 85 | clientMetadata.foreach(_v => _obj$.updateDynamic("clientMetadata")(_v.asInstanceOf[js.Any])) 86 | _obj$.asInstanceOf[UserMigrationTriggerEventRequest] 87 | } 88 | } 89 | 90 | @js.native 91 | trait UserMigrationTriggerEventResponse extends js.Object { 92 | var userAttributes: js.Dictionary[String] = js.native 93 | var finalUserStatus: js.UndefOr[literal.CognitoUserPoolUserStatus] = js.native 94 | var messageAction: js.UndefOr[String] = js.native 95 | var desiredDeliveryMediums: js.Array[String] = js.native 96 | var forceAliasCreation: js.UndefOr[Boolean] = js.native 97 | } 98 | 99 | object UserMigrationTriggerEventResponse { 100 | def apply( 101 | userAttributes: js.Dictionary[String], 102 | desiredDeliveryMediums: js.Array[String], 103 | finalUserStatus: js.UndefOr[literal.CognitoUserPoolUserStatus] = js.undefined, 104 | messageAction: js.UndefOr[String] = js.undefined, 105 | forceAliasCreation: js.UndefOr[Boolean] = js.undefined 106 | ): UserMigrationTriggerEventResponse = { 107 | val _obj$ = js.Dynamic.literal( 108 | "userAttributes" -> userAttributes.asInstanceOf[js.Any], 109 | "desiredDeliveryMediums" -> desiredDeliveryMediums.asInstanceOf[js.Any] 110 | ) 111 | finalUserStatus.foreach(_v => _obj$.updateDynamic("finalUserStatus")(_v.asInstanceOf[js.Any])) 112 | messageAction.foreach(_v => _obj$.updateDynamic("messageAction")(_v.asInstanceOf[js.Any])) 113 | forceAliasCreation.foreach(_v => _obj$.updateDynamic("forceAliasCreation")(_v.asInstanceOf[js.Any])) 114 | _obj$.asInstanceOf[UserMigrationTriggerEventResponse] 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/cognito_userpool_verify_auth_challenge_response.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | /** @see 6 | * https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-verify-auth-challenge-response.html 7 | */ 8 | @js.native 9 | trait VerifyAuthChallengeResponseTriggerEvent extends BaseTriggerEvent["VerifyAuthChallengeResponse_Authentication"] { 10 | var request: VerifyAuthChallengeResponseTriggerEventRequest = js.native 11 | var response: VerifyAuthChallengeResponseTriggerEventResponse = js.native 12 | } 13 | 14 | object VerifyAuthChallengeResponseTriggerEvent { 15 | def apply( 16 | version: String, 17 | region: String, 18 | userPoolId: String, 19 | userName: String, 20 | callerContext: CognitoUserpoolCallerContext, 21 | request: VerifyAuthChallengeResponseTriggerEventRequest, 22 | response: VerifyAuthChallengeResponseTriggerEventResponse 23 | ): VerifyAuthChallengeResponseTriggerEvent = { 24 | val _obj$ = js.Dynamic.literal( 25 | "triggerSource" -> "VerifyAuthChallengeResponse_Authentication", 26 | "version" -> version.asInstanceOf[js.Any], 27 | "region" -> region.asInstanceOf[js.Any], 28 | "userPoolId" -> userPoolId.asInstanceOf[js.Any], 29 | "userName" -> userName.asInstanceOf[js.Any], 30 | "callerContext" -> callerContext.asInstanceOf[js.Any], 31 | "request" -> request.asInstanceOf[js.Any], 32 | "response" -> response.asInstanceOf[js.Any] 33 | ) 34 | _obj$.asInstanceOf[VerifyAuthChallengeResponseTriggerEvent] 35 | } 36 | } 37 | 38 | @js.native 39 | trait VerifyAuthChallengeResponseTriggerEventRequest extends js.Object { 40 | var userAttributes: js.Dictionary[String] 41 | var privateChallengeParameters: js.Dictionary[String] 42 | var challengeAnswer: String 43 | var clientMetadata: js.UndefOr[js.Dictionary[String]] 44 | var userNotFound: js.UndefOr[Boolean] 45 | } 46 | 47 | object VerifyAuthChallengeResponseTriggerEventRequest { 48 | def apply( 49 | userAttributes: js.Dictionary[String], 50 | privateChallengeParameters: js.Dictionary[String], 51 | challengeAnswer: String, 52 | clientMetadata: js.UndefOr[js.Dictionary[String]] = js.undefined, 53 | userNotFound: js.UndefOr[Boolean] = js.undefined 54 | ): VerifyAuthChallengeResponseTriggerEventRequest = { 55 | val _obj$ = js.Dynamic.literal( 56 | "userAttributes" -> userAttributes.asInstanceOf[js.Any], 57 | "privateChallengeParameters" -> privateChallengeParameters.asInstanceOf[js.Any], 58 | "challengeAnswer" -> challengeAnswer.asInstanceOf[js.Any] 59 | ) 60 | clientMetadata.foreach(_v => _obj$.updateDynamic("clientMetadata")(_v.asInstanceOf[js.Any])) 61 | userNotFound.foreach(_v => _obj$.updateDynamic("userNotFound")(_v.asInstanceOf[js.Any])) 62 | _obj$.asInstanceOf[VerifyAuthChallengeResponseTriggerEventRequest] 63 | } 64 | } 65 | 66 | @js.native 67 | trait VerifyAuthChallengeResponseTriggerEventResponse extends js.Object { 68 | var answerCorrect: Boolean 69 | } 70 | 71 | object VerifyAuthChallengeResponseTriggerEventResponse { 72 | def apply( 73 | answerCorrect: Boolean 74 | ): VerifyAuthChallengeResponseTriggerEventResponse = { 75 | val _obj$ = js.Dynamic.literal( 76 | "answerCorrect" -> answerCorrect.asInstanceOf[js.Any] 77 | ) 78 | _obj$.asInstanceOf[VerifyAuthChallengeResponseTriggerEventResponse] 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/connet-contact-flow.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.annotation.JSBracketAccess 5 | import scala.scalajs.js.| 6 | 7 | @js.native 8 | trait ConnectContactFlowEvent extends js.Object { 9 | var Details: ConnectContactFlowEvent.Details = js.native 10 | var Name: String = js.native 11 | } 12 | 13 | object ConnectContactFlowEvent { 14 | def apply( 15 | Details: ConnectContactFlowEvent.Details, 16 | Name: String 17 | ): ConnectContactFlowEvent = { 18 | val _obj$ = js.Dynamic.literal( 19 | "Details" -> Details.asInstanceOf[js.Any], 20 | "Name" -> Name.asInstanceOf[js.Any] 21 | ) 22 | _obj$.asInstanceOf[ConnectContactFlowEvent] 23 | } 24 | 25 | @js.native 26 | trait Details extends js.Object { 27 | var ContactData: Details.ContactData = js.native 28 | var Parameters: Details.Parameters = js.native 29 | } 30 | 31 | object Details { 32 | type Parameters = js.Dictionary[String] 33 | 34 | def apply( 35 | ContactData: Details.ContactData, 36 | Parameters: Details.Parameters 37 | ): Details = { 38 | val _obj$ = js.Dynamic.literal( 39 | "ContactData" -> ContactData.asInstanceOf[js.Any], 40 | "Parameters" -> Parameters.asInstanceOf[js.Any] 41 | ) 42 | _obj$.asInstanceOf[Details] 43 | } 44 | 45 | @js.native 46 | trait ContactData extends js.Object { 47 | var Attributes: ContactData.Attributes = js.native 48 | var Channel: literal.ConnectContactFlowChannel = js.native 49 | var ContactId: String = js.native 50 | var CustomerEndpoint: ConnectContactFlowEndpoint | Null = js.native 51 | var InitialContactId: String = js.native 52 | var InitiationMethod: literal.ConnectContactFlowInitiationMethod = js.native 53 | var InstanceARN: String = js.native 54 | var PreviousContactId: String = js.native 55 | var Queue: ConnectContactFlowQueue | Null = js.native 56 | var SystemEndpoint: ConnectContactFlowEndpoint | Null = js.native 57 | var MediaStreams: ContactData.MediaStreams = js.native 58 | } 59 | 60 | object ContactData { 61 | type Attributes = js.Dictionary[String] 62 | 63 | def apply( 64 | Attributes: ContactData.Attributes, 65 | Channel: literal.ConnectContactFlowChannel, 66 | ContactId: String, 67 | InitialContactId: String, 68 | InitiationMethod: literal.ConnectContactFlowInitiationMethod, 69 | InstanceARN: String, 70 | PreviousContactId: String, 71 | MediaStreams: ContactData.MediaStreams, 72 | CustomerEndpoint: ConnectContactFlowEndpoint | Null = null, 73 | Queue: ConnectContactFlowQueue | Null = null, 74 | SystemEndpoint: ConnectContactFlowEndpoint | Null = null 75 | ): ContactData = { 76 | val _obj$ = js.Dynamic.literal( 77 | "Attributes" -> Attributes.asInstanceOf[js.Any], 78 | "Channel" -> Channel.asInstanceOf[js.Any], 79 | "ContactId" -> ContactId.asInstanceOf[js.Any], 80 | "CustomerEndpoint" -> CustomerEndpoint.asInstanceOf[js.Any], 81 | "InitialContactId" -> InitialContactId.asInstanceOf[js.Any], 82 | "InitiationMethod" -> InitiationMethod.asInstanceOf[js.Any], 83 | "InstanceARN" -> InstanceARN.asInstanceOf[js.Any], 84 | "PreviousContactId" -> PreviousContactId.asInstanceOf[js.Any], 85 | "Queue" -> Queue.asInstanceOf[js.Any], 86 | "SystemEndpoint" -> SystemEndpoint.asInstanceOf[js.Any], 87 | "MediaStreams" -> MediaStreams.asInstanceOf[js.Any] 88 | ) 89 | _obj$.asInstanceOf[ContactData] 90 | } 91 | 92 | @js.native 93 | trait MediaStreams extends js.Object { 94 | var Customer: MediaStreams.Customer = js.native 95 | } 96 | 97 | object MediaStreams { 98 | def apply( 99 | Customer: MediaStreams.Customer 100 | ): MediaStreams = { 101 | val _obj$ = js.Dynamic.literal( 102 | "Customer" -> Customer.asInstanceOf[js.Any] 103 | ) 104 | _obj$.asInstanceOf[MediaStreams] 105 | } 106 | 107 | @js.native 108 | trait Customer extends js.Object { 109 | var Audio: CustomerAudio = js.native 110 | } 111 | 112 | object Customer { 113 | def apply( 114 | Audio: CustomerAudio 115 | ): Customer = { 116 | val _obj$ = js.Dynamic.literal( 117 | "Audio" -> Audio.asInstanceOf[js.Any] 118 | ) 119 | _obj$.asInstanceOf[Customer] 120 | } 121 | } 122 | } 123 | } 124 | } 125 | } 126 | 127 | @js.native 128 | trait ConnectContactFlowEndpoint extends js.Object { 129 | var Address: String = js.native 130 | var Type: literal.ConnectContactFlowEndpointType = js.native 131 | } 132 | 133 | object ConnectContactFlowEndpoint { 134 | def apply( 135 | Address: String 136 | ): ConnectContactFlowEndpoint = { 137 | val _obj$ = js.Dynamic.literal( 138 | "Address" -> Address.asInstanceOf[js.Any], 139 | "Type" -> "TELEPHONE_NUMBER" 140 | ) 141 | _obj$.asInstanceOf[ConnectContactFlowEndpoint] 142 | } 143 | } 144 | 145 | @js.native 146 | trait ConnectContactFlowQueue extends js.Object { 147 | var ARN: String = js.native 148 | var Name: String = js.native 149 | } 150 | 151 | object ConnectContactFlowQueue { 152 | def apply( 153 | ARN: String, 154 | Name: String 155 | ): ConnectContactFlowQueue = { 156 | val _obj$ = js.Dynamic.literal( 157 | "ARN" -> ARN.asInstanceOf[js.Any], 158 | "Name" -> Name.asInstanceOf[js.Any] 159 | ) 160 | _obj$.asInstanceOf[ConnectContactFlowQueue] 161 | } 162 | } 163 | 164 | @js.native 165 | trait ConnectContactFlowResult extends js.Object { 166 | @JSBracketAccess 167 | def apply(key: String): String | Null = js.native 168 | @JSBracketAccess 169 | def update(key: String, v: String | Null): Unit = js.native 170 | } 171 | 172 | @js.native 173 | trait StartedCustomerAudio extends js.Object { 174 | var StartFragmentNumber: String = js.native 175 | var StartTimestamp: String = js.native 176 | var StreamARN: String = js.native 177 | } 178 | 179 | object StartedCustomerAudio { 180 | def apply( 181 | StartFragmentNumber: String, 182 | StartTimestamp: String, 183 | StreamARN: String 184 | ): StartedCustomerAudio = { 185 | val _obj$ = js.Dynamic.literal( 186 | "StartFragmentNumber" -> StartFragmentNumber.asInstanceOf[js.Any], 187 | "StartTimestamp" -> StartTimestamp.asInstanceOf[js.Any], 188 | "StreamARN" -> StreamARN.asInstanceOf[js.Any] 189 | ) 190 | _obj$.asInstanceOf[StartedCustomerAudio] 191 | } 192 | } 193 | 194 | @js.native 195 | trait StoppedCustomerAudio extends js.Object { 196 | var StopFragmentNumber: String = js.native 197 | var StopTimestamp: String = js.native 198 | } 199 | 200 | object StoppedCustomerAudio { 201 | def apply( 202 | StopFragmentNumber: String, 203 | StopTimestamp: String 204 | ): StoppedCustomerAudio = { 205 | val _obj$ = js.Dynamic.literal( 206 | "StopFragmentNumber" -> StopFragmentNumber.asInstanceOf[js.Any], 207 | "StopTimestamp" -> StopTimestamp.asInstanceOf[js.Any] 208 | ) 209 | _obj$.asInstanceOf[StoppedCustomerAudio] 210 | } 211 | } 212 | 213 | @js.native 214 | trait StartedStoppedCustomerAudio extends StartedCustomerAudio with StoppedCustomerAudio 215 | 216 | object StartedStoppedCustomerAudio { 217 | def apply( 218 | StartFragmentNumber: String, 219 | StartTimestamp: String, 220 | StreamARN: String, 221 | StopFragmentNumber: String, 222 | StopTimestamp: String 223 | ): StartedStoppedCustomerAudio = { 224 | val _obj$ = js.Dynamic.literal( 225 | "StartFragmentNumber" -> StartFragmentNumber.asInstanceOf[js.Any], 226 | "StartTimestamp" -> StartTimestamp.asInstanceOf[js.Any], 227 | "StreamARN" -> StreamARN.asInstanceOf[js.Any], 228 | "StopFragmentNumber" -> StopFragmentNumber.asInstanceOf[js.Any], 229 | "StopTimestamp" -> StopTimestamp.asInstanceOf[js.Any] 230 | ) 231 | _obj$.asInstanceOf[StartedStoppedCustomerAudio] 232 | } 233 | } 234 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/dynamodb_stream.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait StreamRecord extends js.Object { 7 | var ApproximateCreationDateTime: js.UndefOr[Double] = js.native 8 | var Keys: js.UndefOr[StreamRecord.Keys] = js.native 9 | var NewImage: js.UndefOr[StreamRecord.NewImage] = js.native 10 | var OldImage: js.UndefOr[StreamRecord.OldImage] = js.native 11 | var SequenceNumber: js.UndefOr[String] = js.native 12 | var SizeBytes: js.UndefOr[Double] = js.native 13 | var StreamViewType: js.UndefOr[String] = js.native 14 | } 15 | 16 | object StreamRecord { 17 | type Keys = js.Dictionary[AttributeValue] 18 | type NewImage = js.Dictionary[AttributeValue] 19 | type OldImage = js.Dictionary[AttributeValue] 20 | 21 | def apply( 22 | ApproximateCreationDateTime: js.UndefOr[Double] = js.undefined, 23 | Keys: js.UndefOr[Keys] = js.undefined, 24 | NewImage: js.UndefOr[NewImage] = js.undefined, 25 | OldImage: js.UndefOr[OldImage] = js.undefined, 26 | SequenceNumber: js.UndefOr[String] = js.undefined, 27 | SizeBytes: js.UndefOr[Double] = js.undefined, 28 | StreamViewType: js.UndefOr[String] = js.undefined 29 | ): StreamRecord = { 30 | val _obj$ = js.Dynamic.literal( 31 | ) 32 | ApproximateCreationDateTime.foreach(_v => 33 | _obj$.updateDynamic("ApproximateCreationDateTime")(_v.asInstanceOf[js.Any]) 34 | ) 35 | Keys.foreach(_v => _obj$.updateDynamic("Keys")(_v.asInstanceOf[js.Any])) 36 | NewImage.foreach(_v => _obj$.updateDynamic("NewImage")(_v.asInstanceOf[js.Any])) 37 | OldImage.foreach(_v => _obj$.updateDynamic("OldImage")(_v.asInstanceOf[js.Any])) 38 | SequenceNumber.foreach(_v => _obj$.updateDynamic("SequenceNumber")(_v.asInstanceOf[js.Any])) 39 | SizeBytes.foreach(_v => _obj$.updateDynamic("SizeBytes")(_v.asInstanceOf[js.Any])) 40 | StreamViewType.foreach(_v => _obj$.updateDynamic("StreamViewType")(_v.asInstanceOf[js.Any])) 41 | _obj$.asInstanceOf[StreamRecord] 42 | } 43 | } 44 | 45 | @js.native 46 | trait DynamoDBRecord extends js.Object { 47 | var awsRegion: js.UndefOr[String] = js.native 48 | var dynamodb: js.UndefOr[StreamRecord] = js.native 49 | var eventID: js.UndefOr[String] = js.native 50 | var eventName: js.UndefOr[String] = js.native 51 | var eventSource: js.UndefOr[String] = js.native 52 | var eventSourceARN: js.UndefOr[String] = js.native 53 | var eventVersion: js.UndefOr[String] = js.native 54 | var userIdentity: js.UndefOr[js.Any] = js.native 55 | } 56 | 57 | object DynamoDBRecord { 58 | def apply( 59 | awsRegion: js.UndefOr[String] = js.undefined, 60 | dynamodb: js.UndefOr[StreamRecord] = js.undefined, 61 | eventID: js.UndefOr[String] = js.undefined, 62 | eventName: js.UndefOr[String] = js.undefined, 63 | eventSource: js.UndefOr[String] = js.undefined, 64 | eventSourceARN: js.UndefOr[String] = js.undefined, 65 | eventVersion: js.UndefOr[String] = js.undefined, 66 | userIdentity: js.UndefOr[js.Any] = js.undefined 67 | ): DynamoDBRecord = { 68 | val _obj$ = js.Dynamic.literal( 69 | ) 70 | awsRegion.foreach(_v => _obj$.updateDynamic("awsRegion")(_v.asInstanceOf[js.Any])) 71 | dynamodb.foreach(_v => _obj$.updateDynamic("dynamodb")(_v.asInstanceOf[js.Any])) 72 | eventID.foreach(_v => _obj$.updateDynamic("eventID")(_v.asInstanceOf[js.Any])) 73 | eventName.foreach(_v => _obj$.updateDynamic("eventName")(_v.asInstanceOf[js.Any])) 74 | eventSource.foreach(_v => _obj$.updateDynamic("eventSource")(_v.asInstanceOf[js.Any])) 75 | eventSourceARN.foreach(_v => _obj$.updateDynamic("eventSourceARN")(_v.asInstanceOf[js.Any])) 76 | eventVersion.foreach(_v => _obj$.updateDynamic("eventVersion")(_v.asInstanceOf[js.Any])) 77 | userIdentity.foreach(_v => _obj$.updateDynamic("userIdentity")(_v.asInstanceOf[js.Any])) 78 | _obj$.asInstanceOf[DynamoDBRecord] 79 | } 80 | } 81 | 82 | @js.native 83 | trait DynamoDBStreamEvent extends js.Object { 84 | var Records: js.Array[DynamoDBRecord] = js.native 85 | } 86 | 87 | object DynamoDBStreamEvent { 88 | def apply( 89 | Records: js.Array[DynamoDBRecord] 90 | ): DynamoDBStreamEvent = { 91 | val _obj$ = js.Dynamic.literal( 92 | "Records" -> Records.asInstanceOf[js.Any] 93 | ) 94 | _obj$.asInstanceOf[DynamoDBStreamEvent] 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/eventbridge.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | import scala.scalajs.js 3 | 4 | trait EventBridgeEvent[TDetailType <: String, TDetail] extends js.Object { 5 | var id: String 6 | var version: String 7 | var account: String 8 | var time: String 9 | var region: String 10 | var resources: js.Array[String] 11 | var source: String 12 | var `detail-type`: TDetailType 13 | var detail: TDetail 14 | } 15 | 16 | object EventBridgeEvent { 17 | def apply[TDetailType <: String, TDetail]( 18 | id: String, 19 | version: String, 20 | account: String, 21 | time: String, 22 | region: String, 23 | resources: js.Array[String], 24 | source: String, 25 | `detail-type`: TDetailType, 26 | detail: TDetail 27 | ): EventBridgeEvent[TDetailType, TDetail] = { 28 | val _obj$ = js.Dynamic.literal( 29 | "id" -> id.asInstanceOf[js.Any], 30 | "version" -> version.asInstanceOf[js.Any], 31 | "account" -> account.asInstanceOf[js.Any], 32 | "time" -> time.asInstanceOf[js.Any], 33 | "region" -> region.asInstanceOf[js.Any], 34 | "resources" -> resources.asInstanceOf[js.Any], 35 | "source" -> source.asInstanceOf[js.Any], 36 | "detail-type" -> `detail-type`.asInstanceOf[js.Any], 37 | "detail" -> detail.asInstanceOf[js.Any] 38 | ) 39 | _obj$.asInstanceOf[EventBridgeEvent[TDetailType, TDetail]] 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/iot.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait IoTPreProvisioningHookEvent extends js.Object { 7 | var claimCertificateId: String = js.native 8 | var certificateId: String = js.native 9 | var certificatePem: String = js.native 10 | var templateArn: String = js.native 11 | var clientId: String = js.native 12 | var parameters: js.Dictionary[String] = js.native 13 | } 14 | 15 | object IoTPreProvisioningHookEvent { 16 | def apply( 17 | claimCertificateId: String, 18 | certificateId: String, 19 | certificatePem: String, 20 | templateArn: String, 21 | clientId: String, 22 | parameters: js.Dictionary[String] 23 | ): IoTPreProvisioningHookEvent = { 24 | val _obj$ = js.Dynamic.literal( 25 | "claimCertificateId" -> claimCertificateId.asInstanceOf[js.Any], 26 | "certificateId" -> certificateId.asInstanceOf[js.Any], 27 | "certificatePem" -> certificatePem.asInstanceOf[js.Any], 28 | "templateArn" -> templateArn.asInstanceOf[js.Any], 29 | "clientId" -> clientId.asInstanceOf[js.Any], 30 | "parameters" -> parameters.asInstanceOf[js.Any] 31 | ) 32 | _obj$.asInstanceOf[IoTPreProvisioningHookEvent] 33 | } 34 | } 35 | 36 | @js.native 37 | trait IoTPreProvisioningHookResult extends js.Object { 38 | var allowProvisioning: Boolean = js.native 39 | var parameterOverrides: js.Dictionary[String] = js.native 40 | } 41 | 42 | object IoTPreProvisioningHookResult { 43 | def apply( 44 | allowProvisioning: Boolean, 45 | parameterOverrides: js.Dictionary[String] 46 | ): IoTPreProvisioningHookResult = { 47 | val _obj$ = js.Dynamic.literal( 48 | "allowProvisioning" -> allowProvisioning.asInstanceOf[js.Any], 49 | "parameterOverrides" -> parameterOverrides.asInstanceOf[js.Any] 50 | ) 51 | _obj$.asInstanceOf[IoTPreProvisioningHookResult] 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/kinesis_firehose_transformation.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait FirehoseTransformationEvent extends js.Object { 7 | var invocationId: String = js.native 8 | var deliveryStreamArn: String = js.native 9 | var sourceKinesisStreamArn: js.UndefOr[String] = js.native 10 | var region: String = js.native 11 | var records: js.Array[FirehoseTransformationEventRecord] = js.native 12 | } 13 | 14 | object FirehoseTransformationEvent { 15 | def apply( 16 | invocationId: String, 17 | deliveryStreamArn: String, 18 | region: String, 19 | records: js.Array[FirehoseTransformationEventRecord], 20 | sourceKinesisStreamArn: js.UndefOr[String] = js.undefined 21 | ): FirehoseTransformationEvent = { 22 | val _obj$ = js.Dynamic.literal( 23 | "invocationId" -> invocationId.asInstanceOf[js.Any], 24 | "deliveryStreamArn" -> deliveryStreamArn.asInstanceOf[js.Any], 25 | "region" -> region.asInstanceOf[js.Any], 26 | "records" -> records.asInstanceOf[js.Any] 27 | ) 28 | sourceKinesisStreamArn.foreach(_v => _obj$.updateDynamic("sourceKinesisStreamArn")(_v.asInstanceOf[js.Any])) 29 | _obj$.asInstanceOf[FirehoseTransformationEvent] 30 | } 31 | } 32 | 33 | @js.native 34 | trait FirehoseTransformationEventRecord extends js.Object { 35 | var recordId: String = js.native 36 | var approximateArrivalTimestamp: Double = js.native 37 | var data: String = js.native 38 | var kinesisRecordMetadata: js.UndefOr[FirehoseRecordMetadata] = js.native 39 | } 40 | 41 | object FirehoseTransformationEventRecord { 42 | def apply( 43 | recordId: String, 44 | approximateArrivalTimestamp: Double, 45 | data: String, 46 | kinesisRecordMetadata: js.UndefOr[FirehoseRecordMetadata] = js.undefined 47 | ): FirehoseTransformationEventRecord = { 48 | val _obj$ = js.Dynamic.literal( 49 | "recordId" -> recordId.asInstanceOf[js.Any], 50 | "approximateArrivalTimestamp" -> approximateArrivalTimestamp.asInstanceOf[js.Any], 51 | "data" -> data.asInstanceOf[js.Any] 52 | ) 53 | kinesisRecordMetadata.foreach(_v => _obj$.updateDynamic("kinesisRecordMetadata")(_v.asInstanceOf[js.Any])) 54 | _obj$.asInstanceOf[FirehoseTransformationEventRecord] 55 | } 56 | } 57 | 58 | @js.native 59 | trait FirehoseRecordMetadata extends js.Object { 60 | var shardId: String = js.native 61 | var partitionKey: String = js.native 62 | var approximateArrivalTimestamp: Double = js.native 63 | var sequenceNumber: String = js.native 64 | var subsequenceNumber: String = js.native 65 | } 66 | 67 | object FirehoseRecordMetadata { 68 | def apply( 69 | shardId: String, 70 | partitionKey: String, 71 | approximateArrivalTimestamp: Double, 72 | sequenceNumber: String, 73 | subsequenceNumber: String 74 | ): FirehoseRecordMetadata = { 75 | val _obj$ = js.Dynamic.literal( 76 | "shardId" -> shardId.asInstanceOf[js.Any], 77 | "partitionKey" -> partitionKey.asInstanceOf[js.Any], 78 | "approximateArrivalTimestamp" -> approximateArrivalTimestamp.asInstanceOf[js.Any], 79 | "sequenceNumber" -> sequenceNumber.asInstanceOf[js.Any], 80 | "subsequenceNumber" -> subsequenceNumber.asInstanceOf[js.Any] 81 | ) 82 | _obj$.asInstanceOf[FirehoseRecordMetadata] 83 | } 84 | } 85 | 86 | @js.native 87 | trait FirehoseTransformationMetadata extends js.Object { 88 | var partitionKeys: FirehoseTransformationMetadata.PartitionKeys = js.native 89 | } 90 | 91 | object FirehoseTransformationMetadata { 92 | type PartitionKeys = js.Dictionary[String] 93 | 94 | def apply( 95 | partitionKeys: FirehoseTransformationMetadata.PartitionKeys 96 | ): FirehoseTransformationMetadata = { 97 | val _obj$ = js.Dynamic.literal( 98 | "partitionKeys" -> partitionKeys.asInstanceOf[js.Any] 99 | ) 100 | _obj$.asInstanceOf[FirehoseTransformationMetadata] 101 | } 102 | } 103 | 104 | @js.native 105 | trait FirehoseTransformationResultRecord extends js.Object { 106 | var recordId: String = js.native 107 | var result: literal.FirehoseRecordTransformationStatus = js.native 108 | var data: String = js.native 109 | var metadata: js.UndefOr[FirehoseTransformationMetadata] = js.native 110 | } 111 | 112 | object FirehoseTransformationResultRecord { 113 | def apply( 114 | recordId: String, 115 | result: literal.FirehoseRecordTransformationStatus, 116 | data: String, 117 | metadata: js.UndefOr[FirehoseTransformationMetadata] = js.undefined 118 | ): FirehoseTransformationResultRecord = { 119 | val _obj$ = js.Dynamic.literal( 120 | "recordId" -> recordId.asInstanceOf[js.Any], 121 | "result" -> result.asInstanceOf[js.Any], 122 | "data" -> data.asInstanceOf[js.Any] 123 | ) 124 | metadata.foreach(_v => _obj$.updateDynamic("metadata")(_v.asInstanceOf[js.Any])) 125 | _obj$.asInstanceOf[FirehoseTransformationResultRecord] 126 | } 127 | } 128 | 129 | @js.native 130 | trait FirehoseTransformationResult extends js.Object { 131 | var records: js.Array[FirehoseTransformationResultRecord] = js.native 132 | } 133 | 134 | object FirehoseTransformationResult { 135 | def apply( 136 | records: js.Array[FirehoseTransformationResultRecord] 137 | ): FirehoseTransformationResult = { 138 | val _obj$ = js.Dynamic.literal( 139 | "records" -> records.asInstanceOf[js.Any] 140 | ) 141 | _obj$.asInstanceOf[FirehoseTransformationResult] 142 | } 143 | } 144 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/kinesis_stream.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait KinesisStreamRecordPayload extends js.Object { 7 | var approximateArrivalTimestamp: Double = js.native 8 | var data: String = js.native 9 | var kinesisSchemaVersion: String = js.native 10 | var partitionKey: String = js.native 11 | var sequenceNumber: String = js.native 12 | } 13 | 14 | object KinesisStreamRecordPayload { 15 | def apply( 16 | approximateArrivalTimestamp: Double, 17 | data: String, 18 | kinesisSchemaVersion: String, 19 | partitionKey: String, 20 | sequenceNumber: String 21 | ): KinesisStreamRecordPayload = { 22 | val _obj$ = js.Dynamic.literal( 23 | "approximateArrivalTimestamp" -> approximateArrivalTimestamp.asInstanceOf[js.Any], 24 | "data" -> data.asInstanceOf[js.Any], 25 | "kinesisSchemaVersion" -> kinesisSchemaVersion.asInstanceOf[js.Any], 26 | "partitionKey" -> partitionKey.asInstanceOf[js.Any], 27 | "sequenceNumber" -> sequenceNumber.asInstanceOf[js.Any] 28 | ) 29 | _obj$.asInstanceOf[KinesisStreamRecordPayload] 30 | } 31 | } 32 | 33 | @js.native 34 | trait KinesisStreamRecord extends js.Object { 35 | var awsRegion: String = js.native 36 | var eventID: String = js.native 37 | var eventName: String = js.native 38 | var eventSource: String = js.native 39 | var eventSourceARN: String = js.native 40 | var eventVersion: String = js.native 41 | var invokeIdentityArn: String = js.native 42 | var kinesis: KinesisStreamRecordPayload = js.native 43 | } 44 | 45 | object KinesisStreamRecord { 46 | def apply( 47 | awsRegion: String, 48 | eventID: String, 49 | eventName: String, 50 | eventSource: String, 51 | eventSourceARN: String, 52 | eventVersion: String, 53 | invokeIdentityArn: String, 54 | kinesis: KinesisStreamRecordPayload 55 | ): KinesisStreamRecord = { 56 | val _obj$ = js.Dynamic.literal( 57 | "awsRegion" -> awsRegion.asInstanceOf[js.Any], 58 | "eventID" -> eventID.asInstanceOf[js.Any], 59 | "eventName" -> eventName.asInstanceOf[js.Any], 60 | "eventSource" -> eventSource.asInstanceOf[js.Any], 61 | "eventSourceARN" -> eventSourceARN.asInstanceOf[js.Any], 62 | "eventVersion" -> eventVersion.asInstanceOf[js.Any], 63 | "invokeIdentityArn" -> invokeIdentityArn.asInstanceOf[js.Any], 64 | "kinesis" -> kinesis.asInstanceOf[js.Any] 65 | ) 66 | _obj$.asInstanceOf[KinesisStreamRecord] 67 | } 68 | } 69 | 70 | @js.native 71 | trait KinesisStreamEvent extends js.Object { 72 | var Records: js.Array[KinesisStreamRecord] = js.native 73 | } 74 | 75 | object KinesisStreamEvent { 76 | def apply( 77 | Records: js.Array[KinesisStreamRecord] 78 | ): KinesisStreamEvent = { 79 | val _obj$ = js.Dynamic.literal( 80 | "Records" -> Records.asInstanceOf[js.Any] 81 | ) 82 | _obj$.asInstanceOf[KinesisStreamEvent] 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/lex.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.| 5 | 6 | @js.native 7 | trait LexEvent extends js.Object { 8 | var currentIntent: LexEvent.CurrentIntent = js.native 9 | var bot: LexEvent.Bot = js.native 10 | var userId: String = js.native 11 | var inputTranscript: String = js.native 12 | var invocationSource: literal.LexEventInvocationSource = js.native 13 | var outputDialogMode: literal.LexEventOutputDialogMode = js.native 14 | var messageVersion: String = js.native 15 | var sessionAttributes: LexEvent.SessionAttributes = js.native 16 | var requestAttributes: LexEvent.RequestAttributes | Null = js.native 17 | } 18 | 19 | object LexEvent { 20 | def apply( 21 | currentIntent: LexEvent.CurrentIntent, 22 | bot: LexEvent.Bot, 23 | userId: String, 24 | inputTranscript: String, 25 | invocationSource: literal.LexEventInvocationSource, 26 | outputDialogMode: literal.LexEventOutputDialogMode, 27 | messageVersion: String, 28 | sessionAttributes: LexEvent.SessionAttributes, 29 | requestAttributes: LexEvent.RequestAttributes | Null = null 30 | ): LexEvent = { 31 | val _obj$ = js.Dynamic.literal( 32 | "currentIntent" -> currentIntent.asInstanceOf[js.Any], 33 | "bot" -> bot.asInstanceOf[js.Any], 34 | "userId" -> userId.asInstanceOf[js.Any], 35 | "inputTranscript" -> inputTranscript.asInstanceOf[js.Any], 36 | "invocationSource" -> invocationSource.asInstanceOf[js.Any], 37 | "outputDialogMode" -> outputDialogMode.asInstanceOf[js.Any], 38 | "messageVersion" -> messageVersion.asInstanceOf[js.Any], 39 | "sessionAttributes" -> sessionAttributes.asInstanceOf[js.Any], 40 | "requestAttributes" -> requestAttributes.asInstanceOf[js.Any] 41 | ) 42 | _obj$.asInstanceOf[LexEvent] 43 | } 44 | 45 | @js.native 46 | trait CurrentIntent extends js.Object { 47 | var name: String = js.native 48 | var slots: LexEvent.Slots = js.native 49 | var slotDetails: LexSlotDetails = js.native 50 | var confirmationStatus: literal.LexEventCurrentIntentConfirmationStatus = js.native 51 | } 52 | 53 | object CurrentIntent { 54 | def apply( 55 | name: String, 56 | slots: LexEvent.Slots, 57 | slotDetails: LexSlotDetails, 58 | confirmationStatus: literal.LexEventCurrentIntentConfirmationStatus 59 | ): CurrentIntent = { 60 | val _obj$ = js.Dynamic.literal( 61 | "name" -> name.asInstanceOf[js.Any], 62 | "slots" -> slots.asInstanceOf[js.Any], 63 | "slotDetails" -> slotDetails.asInstanceOf[js.Any], 64 | "confirmationStatus" -> confirmationStatus.asInstanceOf[js.Any] 65 | ) 66 | _obj$.asInstanceOf[CurrentIntent] 67 | } 68 | } 69 | 70 | @js.native 71 | trait Bot extends js.Object { 72 | var name: String = js.native 73 | var alias: String = js.native 74 | var version: String = js.native 75 | } 76 | 77 | object Bot { 78 | def apply( 79 | name: String, 80 | alias: String, 81 | version: String 82 | ): Bot = { 83 | val _obj$ = js.Dynamic.literal( 84 | "name" -> name.asInstanceOf[js.Any], 85 | "alias" -> alias.asInstanceOf[js.Any], 86 | "version" -> version.asInstanceOf[js.Any] 87 | ) 88 | _obj$.asInstanceOf[Bot] 89 | } 90 | } 91 | 92 | @js.native 93 | trait LexSlotDetailsItem extends js.Object { 94 | // "at least 1 but no more than 5 items" 95 | var resolutions: OneToFive[LexSlotResolution] = js.native 96 | var originalValue: String = js.native 97 | } 98 | 99 | type Slots = js.Dictionary[String] 100 | type OneToFive[T] = js.Tuple5[T, js.UndefOr[T], js.UndefOr[T], js.UndefOr[T], js.UndefOr[T]] 101 | type RequestAttributes = js.Dictionary[String] 102 | type SessionAttributes = js.Dictionary[String] 103 | type LexSlotDetails = js.Dictionary[LexSlotDetailsItem] 104 | } 105 | 106 | @js.native 107 | trait LexSlotResolution extends js.Object { 108 | var value: String = js.native 109 | } 110 | 111 | @js.native 112 | trait LexGenericAttachment extends js.Object { 113 | var title: String = js.native 114 | var subTitle: String = js.native 115 | var imageUrl: String = js.native 116 | var attachmentLinkUrl: String = js.native 117 | var buttons: js.Array[LexGenericAttachment.ButtonsItem] = js.native 118 | } 119 | 120 | object LexGenericAttachment { 121 | @js.native 122 | trait ButtonsItem extends js.Object { 123 | var text: String = js.native 124 | var value: String = js.native 125 | } 126 | 127 | def apply( 128 | title: String, 129 | subTitle: String, 130 | imageUrl: String, 131 | attachmentLinkUrl: String, 132 | buttons: js.Array[LexGenericAttachment.ButtonsItem] 133 | ): LexGenericAttachment = { 134 | val _obj$ = js.Dynamic.literal( 135 | "title" -> title.asInstanceOf[js.Any], 136 | "subTitle" -> subTitle.asInstanceOf[js.Any], 137 | "imageUrl" -> imageUrl.asInstanceOf[js.Any], 138 | "attachmentLinkUrl" -> attachmentLinkUrl.asInstanceOf[js.Any], 139 | "buttons" -> buttons.asInstanceOf[js.Any] 140 | ) 141 | _obj$.asInstanceOf[LexGenericAttachment] 142 | } 143 | } 144 | 145 | @js.native 146 | trait LexDialogActionBase[T <: literal.LexDialogActionType] extends js.Object { 147 | var `type`: T = js.native 148 | var message: js.UndefOr[LexDialogActionBase.Message] = js.native 149 | var responseCard: js.UndefOr[LexDialogActionBase.ResponseCard] = js.native 150 | } 151 | 152 | object LexDialogActionBase { 153 | @js.native 154 | trait Message extends js.Object { 155 | var contentType: literal.LexDialogActionMessageContentType = js.native 156 | var content: String = js.native 157 | } 158 | 159 | @js.native 160 | trait ResponseCard extends js.Object { 161 | var version: Double = js.native 162 | var contentType: String = js.native 163 | var genericAttachments: js.Array[LexGenericAttachment] = js.native 164 | } 165 | } 166 | 167 | @js.native 168 | trait LexDialogActionClose extends LexDialogActionBase["Close"] { 169 | var fulfillmentState: literal.LexDialogActionCloseFulfillmentState = js.native 170 | } 171 | 172 | object LexDialogActionClose { 173 | def apply( 174 | `type`: "Close", 175 | fulfillmentState: literal.LexDialogActionCloseFulfillmentState 176 | ): LexDialogActionClose = { 177 | val _obj$ = js.Dynamic.literal( 178 | "type" -> `type`.asInstanceOf[js.Any], 179 | "fulfillmentState" -> fulfillmentState.asInstanceOf[js.Any] 180 | ) 181 | _obj$.asInstanceOf[LexDialogActionClose] 182 | } 183 | } 184 | 185 | @js.native 186 | trait LexDialogActionElicitIntent extends LexDialogActionBase["ElicitIntent"] {} 187 | 188 | object LexDialogActionElicitIntent { 189 | def apply( 190 | `type`: "ElicitIntent" 191 | ): LexDialogActionElicitIntent = { 192 | val _obj$ = js.Dynamic.literal( 193 | "type" -> `type`.asInstanceOf[js.Any] 194 | ) 195 | _obj$.asInstanceOf[LexDialogActionElicitIntent] 196 | } 197 | } 198 | 199 | @js.native 200 | trait LexDialogActionElicitSlot extends LexDialogActionBase["ElicitSlot"] { 201 | var intentName: String = js.native 202 | var slots: LexDialogActionElicitSlot.Slots = js.native 203 | var slotToElicit: String = js.native 204 | } 205 | 206 | object LexDialogActionElicitSlot { 207 | type Slots = js.Dictionary[String] 208 | 209 | def apply( 210 | `type`: "ElicitSlot", 211 | intentName: String, 212 | slots: LexDialogActionElicitSlot.Slots, 213 | slotToElicit: String 214 | ): LexDialogActionElicitSlot = { 215 | val _obj$ = js.Dynamic.literal( 216 | "type" -> `type`.asInstanceOf[js.Any], 217 | "intentName" -> intentName.asInstanceOf[js.Any], 218 | "slots" -> slots.asInstanceOf[js.Any], 219 | "slotToElicit" -> slotToElicit.asInstanceOf[js.Any] 220 | ) 221 | _obj$.asInstanceOf[LexDialogActionElicitSlot] 222 | } 223 | } 224 | 225 | @js.native 226 | trait LexDialogActionConfirmIntent extends LexDialogActionBase["ConfirmIntent"] { 227 | var intentName: String = js.native 228 | var slots: LexDialogActionConfirmIntent.Slots = js.native 229 | } 230 | 231 | object LexDialogActionConfirmIntent { 232 | type Slots = js.Dictionary[String] 233 | 234 | def apply( 235 | `type`: "ConfirmIntent", 236 | intentName: String, 237 | slots: LexDialogActionConfirmIntent.Slots 238 | ): LexDialogActionConfirmIntent = { 239 | val _obj$ = js.Dynamic.literal( 240 | "type" -> `type`.asInstanceOf[js.Any], 241 | "intentName" -> intentName.asInstanceOf[js.Any], 242 | "slots" -> slots.asInstanceOf[js.Any] 243 | ) 244 | _obj$.asInstanceOf[LexDialogActionConfirmIntent] 245 | } 246 | } 247 | 248 | @js.native 249 | trait LexDialogActionDelegate extends js.Object { 250 | var `type`: String = js.native 251 | var slots: LexDialogActionDelegate.Slots = js.native 252 | } 253 | 254 | object LexDialogActionDelegate { 255 | type Slots = js.Dictionary[String] 256 | 257 | def apply( 258 | `type`: String, 259 | slots: LexDialogActionDelegate.Slots 260 | ): LexDialogActionDelegate = { 261 | val _obj$ = js.Dynamic.literal( 262 | "type" -> `type`.asInstanceOf[js.Any], 263 | "slots" -> slots.asInstanceOf[js.Any] 264 | ) 265 | _obj$.asInstanceOf[LexDialogActionDelegate] 266 | } 267 | } 268 | 269 | @js.native 270 | trait LexResult extends js.Object { 271 | var sessionAttributes: js.UndefOr[LexResult.SessionAttributes] = js.native 272 | var dialogAction: LexDialogAction = js.native 273 | } 274 | 275 | object LexResult { 276 | type SessionAttributes = js.Dictionary[String] 277 | 278 | def apply( 279 | dialogAction: LexDialogAction, 280 | sessionAttributes: js.UndefOr[js.Dictionary[String]] = js.undefined 281 | ): LexResult = { 282 | val _obj$ = js.Dynamic.literal( 283 | "dialogAction" -> dialogAction.asInstanceOf[js.Any] 284 | ) 285 | sessionAttributes.foreach(_v => _obj$.updateDynamic("sessionAttributes")(_v.asInstanceOf[js.Any])) 286 | _obj$.asInstanceOf[LexResult] 287 | } 288 | } 289 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/msk.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait MSKRecord extends js.Object { 7 | var topic: String = js.native 8 | var partition: Double = js.native 9 | var offset: Double = js.native 10 | var timestamp: Double = js.native 11 | var timestampType: literal.MSKRecordTimestampType = js.native 12 | var key: String = js.native 13 | var value: String = js.native 14 | } 15 | 16 | object MSKRecord { 17 | def apply( 18 | topic: String, 19 | partition: Double, 20 | offset: Double, 21 | timestamp: Double, 22 | timestampType: literal.MSKRecordTimestampType, 23 | key: String, 24 | value: String 25 | ): MSKRecord = { 26 | val _obj$ = js.Dynamic.literal( 27 | "topic" -> topic.asInstanceOf[js.Any], 28 | "partition" -> partition.asInstanceOf[js.Any], 29 | "offset" -> offset.asInstanceOf[js.Any], 30 | "timestamp" -> timestamp.asInstanceOf[js.Any], 31 | "timestampType" -> timestampType.asInstanceOf[js.Any], 32 | "key" -> key.asInstanceOf[js.Any], 33 | "value" -> value.asInstanceOf[js.Any] 34 | ) 35 | _obj$.asInstanceOf[MSKRecord] 36 | } 37 | } 38 | 39 | @js.native 40 | trait MSKEvent extends js.Object { 41 | var eventSource: literal.MSKEventEventType = js.native 42 | var eventSourceArn: String = js.native 43 | var records: MSKEvent.Records = js.native 44 | } 45 | 46 | object MSKEvent { 47 | type Records = js.Dictionary[js.Array[MSKRecord]] 48 | 49 | def apply( 50 | eventSourceArn: String, 51 | records: MSKEvent.Records 52 | ): MSKEvent = { 53 | val _obj$ = js.Dynamic.literal( 54 | "eventSource" -> "aws:kafka", 55 | "eventSourceArn" -> eventSourceArn.asInstanceOf[js.Any], 56 | "records" -> records.asInstanceOf[js.Any] 57 | ) 58 | _obj$.asInstanceOf[MSKEvent] 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/s3.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait S3EventRecordGlacierRestoreEventData extends js.Object { 7 | var lifecycleRestorationExpiryTime: String = js.native 8 | var lifecycleRestoreStorageClass: String = js.native 9 | } 10 | 11 | object S3EventRecordGlacierRestoreEventData { 12 | def apply( 13 | lifecycleRestorationExpiryTime: String, 14 | lifecycleRestoreStorageClass: String 15 | ): S3EventRecordGlacierRestoreEventData = { 16 | val _obj$ = js.Dynamic.literal( 17 | "lifecycleRestorationExpiryTime" -> lifecycleRestorationExpiryTime.asInstanceOf[js.Any], 18 | "lifecycleRestoreStorageClass" -> lifecycleRestoreStorageClass.asInstanceOf[js.Any] 19 | ) 20 | _obj$.asInstanceOf[S3EventRecordGlacierRestoreEventData] 21 | } 22 | } 23 | 24 | @js.native 25 | trait S3EventRecordGlacierEventData extends js.Object { 26 | var restoreEventData: S3EventRecordGlacierRestoreEventData = js.native 27 | } 28 | 29 | object S3EventRecordGlacierEventData { 30 | def apply( 31 | restoreEventData: S3EventRecordGlacierRestoreEventData 32 | ): S3EventRecordGlacierEventData = { 33 | val _obj$ = js.Dynamic.literal( 34 | "restoreEventData" -> restoreEventData.asInstanceOf[js.Any] 35 | ) 36 | _obj$.asInstanceOf[S3EventRecordGlacierEventData] 37 | } 38 | } 39 | 40 | @js.native 41 | trait S3EventRecord extends js.Object { 42 | var eventVersion: String = js.native 43 | var eventSource: String = js.native 44 | var awsRegion: String = js.native 45 | var eventTime: String = js.native 46 | var eventName: String = js.native 47 | var userIdentity: S3EventRecord.UserIdentity = js.native 48 | var requestParameters: S3EventRecord.RequestParameters = js.native 49 | var responseElements: S3EventRecord.ResponseElements = js.native 50 | var s3: S3EventRecord.S3 = js.native 51 | var glacierEventData: js.UndefOr[S3EventRecordGlacierEventData] = js.native 52 | } 53 | 54 | object S3EventRecord { 55 | def apply( 56 | eventVersion: String, 57 | eventSource: String, 58 | awsRegion: String, 59 | eventTime: String, 60 | eventName: String, 61 | userIdentity: S3EventRecord.UserIdentity, 62 | requestParameters: S3EventRecord.RequestParameters, 63 | responseElements: S3EventRecord.ResponseElements, 64 | s3: S3EventRecord.S3, 65 | glacierEventData: js.UndefOr[S3EventRecordGlacierEventData] = js.undefined 66 | ): S3EventRecord = { 67 | val _obj$ = js.Dynamic.literal( 68 | "eventVersion" -> eventVersion.asInstanceOf[js.Any], 69 | "eventSource" -> eventSource.asInstanceOf[js.Any], 70 | "awsRegion" -> awsRegion.asInstanceOf[js.Any], 71 | "eventTime" -> eventTime.asInstanceOf[js.Any], 72 | "eventName" -> eventName.asInstanceOf[js.Any], 73 | "userIdentity" -> userIdentity.asInstanceOf[js.Any], 74 | "requestParameters" -> requestParameters.asInstanceOf[js.Any], 75 | "responseElements" -> responseElements.asInstanceOf[js.Any], 76 | "s3" -> s3.asInstanceOf[js.Any] 77 | ) 78 | glacierEventData.foreach(_v => _obj$.updateDynamic("glacierEventData")(_v.asInstanceOf[js.Any])) 79 | _obj$.asInstanceOf[S3EventRecord] 80 | } 81 | 82 | @js.native 83 | trait UserIdentity extends js.Object { 84 | var principalId: String = js.native 85 | } 86 | 87 | object UserIdentity { 88 | def apply( 89 | principalId: String 90 | ): UserIdentity = { 91 | val _obj$ = js.Dynamic.literal( 92 | "principalId" -> principalId.asInstanceOf[js.Any] 93 | ) 94 | _obj$.asInstanceOf[UserIdentity] 95 | } 96 | } 97 | 98 | @js.native 99 | trait RequestParameters extends js.Object { 100 | var sourceIPAddress: String = js.native 101 | } 102 | 103 | object RequestParameters { 104 | def apply( 105 | sourceIPAddress: String 106 | ): RequestParameters = { 107 | val _obj$ = js.Dynamic.literal( 108 | "sourceIPAddress" -> sourceIPAddress.asInstanceOf[js.Any] 109 | ) 110 | _obj$.asInstanceOf[RequestParameters] 111 | } 112 | } 113 | 114 | @js.native 115 | trait ResponseElements extends js.Object { 116 | var `x-amz-request-id`: String = js.native 117 | var `x-amz-id-2`: String = js.native 118 | } 119 | 120 | object ResponseElements { 121 | def apply( 122 | `x-amz-request-id`: String, 123 | `x-amz-id-2`: String 124 | ): ResponseElements = { 125 | val _obj$ = js.Dynamic.literal( 126 | "x-amz-request-id" -> `x-amz-request-id`.asInstanceOf[js.Any], 127 | "x-amz-id-2" -> `x-amz-id-2`.asInstanceOf[js.Any] 128 | ) 129 | _obj$.asInstanceOf[ResponseElements] 130 | } 131 | } 132 | 133 | @js.native 134 | trait S3 extends js.Object { 135 | var s3SchemaVersion: String = js.native 136 | var configurationId: String = js.native 137 | var bucket: S3.Bucket = js.native 138 | var `object`: S3.Object = js.native 139 | } 140 | 141 | object S3 { 142 | def apply( 143 | s3SchemaVersion: String, 144 | configurationId: String, 145 | bucket: S3.Bucket, 146 | `object`: S3.Object 147 | ): S3 = { 148 | val _obj$ = js.Dynamic.literal( 149 | "s3SchemaVersion" -> s3SchemaVersion.asInstanceOf[js.Any], 150 | "configurationId" -> configurationId.asInstanceOf[js.Any], 151 | "bucket" -> bucket.asInstanceOf[js.Any], 152 | "object" -> `object`.asInstanceOf[js.Any] 153 | ) 154 | _obj$.asInstanceOf[S3] 155 | } 156 | 157 | @js.native 158 | trait Bucket extends js.Object { 159 | var name: String = js.native 160 | var ownerIdentity: Bucket.OwnerIdentity = js.native 161 | var arn: String = js.native 162 | } 163 | 164 | object Bucket { 165 | def apply( 166 | name: String, 167 | ownerIdentity: Bucket.OwnerIdentity, 168 | arn: String 169 | ): Bucket = { 170 | val _obj$ = js.Dynamic.literal( 171 | "name" -> name.asInstanceOf[js.Any], 172 | "ownerIdentity" -> ownerIdentity.asInstanceOf[js.Any], 173 | "arn" -> arn.asInstanceOf[js.Any] 174 | ) 175 | _obj$.asInstanceOf[Bucket] 176 | } 177 | 178 | @js.native 179 | trait OwnerIdentity extends js.Object { 180 | var principalId: String = js.native 181 | } 182 | 183 | object OwnerIdentity { 184 | def apply( 185 | principalId: String 186 | ): OwnerIdentity = { 187 | val _obj$ = js.Dynamic.literal( 188 | "principalId" -> principalId.asInstanceOf[js.Any] 189 | ) 190 | _obj$.asInstanceOf[OwnerIdentity] 191 | } 192 | } 193 | } 194 | 195 | @js.native 196 | trait Object extends js.Object { 197 | var key: String = js.native 198 | var size: Double = js.native 199 | var eTag: String = js.native 200 | var versionId: js.UndefOr[String] = js.native 201 | var sequencer: String = js.native 202 | } 203 | 204 | object Object { 205 | def apply( 206 | key: String, 207 | size: Double, 208 | eTag: String, 209 | sequencer: String, 210 | versionId: js.UndefOr[String] = js.undefined 211 | ): Object = { 212 | val _obj$ = js.Dynamic.literal( 213 | "key" -> key.asInstanceOf[js.Any], 214 | "size" -> size.asInstanceOf[js.Any], 215 | "eTag" -> eTag.asInstanceOf[js.Any], 216 | "sequencer" -> sequencer.asInstanceOf[js.Any] 217 | ) 218 | versionId.foreach(_v => _obj$.updateDynamic("versionId")(_v.asInstanceOf[js.Any])) 219 | _obj$.asInstanceOf[Object] 220 | } 221 | } 222 | } 223 | } 224 | 225 | @js.native 226 | trait S3Event extends js.Object { 227 | var Records: js.Array[S3EventRecord] = js.native 228 | } 229 | 230 | object S3Event { 231 | def apply( 232 | Records: js.Array[S3EventRecord] 233 | ): S3Event = { 234 | val _obj$ = js.Dynamic.literal( 235 | "Records" -> Records.asInstanceOf[js.Any] 236 | ) 237 | _obj$.asInstanceOf[S3Event] 238 | } 239 | } 240 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/s3_batch.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.| 5 | 6 | @js.native 7 | trait S3BatchEvent extends js.Object { 8 | var invocationSchemaVersion: String = js.native 9 | var invocationId: String = js.native 10 | var job: S3BatchEventJob = js.native 11 | var tasks: js.Array[S3BatchEventTask] = js.native 12 | } 13 | 14 | object S3BatchEvent { 15 | def apply( 16 | invocationSchemaVersion: String, 17 | invocationId: String, 18 | job: S3BatchEventJob, 19 | tasks: js.Array[S3BatchEventTask] 20 | ): S3BatchEvent = { 21 | val _obj$ = js.Dynamic.literal( 22 | "invocationSchemaVersion" -> invocationSchemaVersion.asInstanceOf[js.Any], 23 | "invocationId" -> invocationId.asInstanceOf[js.Any], 24 | "job" -> job.asInstanceOf[js.Any], 25 | "tasks" -> tasks.asInstanceOf[js.Any] 26 | ) 27 | _obj$.asInstanceOf[S3BatchEvent] 28 | } 29 | } 30 | 31 | @js.native 32 | trait S3BatchEventJob extends js.Object { 33 | var id: String = js.native 34 | } 35 | 36 | object S3BatchEventJob { 37 | def apply( 38 | id: String 39 | ): S3BatchEventJob = { 40 | val _obj$ = js.Dynamic.literal( 41 | "id" -> id.asInstanceOf[js.Any] 42 | ) 43 | _obj$.asInstanceOf[S3BatchEventJob] 44 | } 45 | } 46 | 47 | @js.native 48 | trait S3BatchEventTask extends js.Object { 49 | var taskId: String = js.native 50 | var s3Key: String = js.native 51 | var s3VersionId: String | Null = js.native 52 | var s3BucketArn: String = js.native 53 | } 54 | 55 | object S3BatchEventTask { 56 | def apply( 57 | taskId: String, 58 | s3Key: String, 59 | s3BucketArn: String, 60 | s3VersionId: String | Null = null 61 | ): S3BatchEventTask = { 62 | val _obj$ = js.Dynamic.literal( 63 | "taskId" -> taskId.asInstanceOf[js.Any], 64 | "s3Key" -> s3Key.asInstanceOf[js.Any], 65 | "s3VersionId" -> s3VersionId.asInstanceOf[js.Any], 66 | "s3BucketArn" -> s3BucketArn.asInstanceOf[js.Any] 67 | ) 68 | _obj$.asInstanceOf[S3BatchEventTask] 69 | } 70 | } 71 | 72 | @js.native 73 | trait S3BatchResult extends js.Object { 74 | var invocationSchemaVersion: String = js.native 75 | var treatMissingKeysAs: literal.S3BatchResultResultCode = js.native 76 | var invocationId: String = js.native 77 | var results: js.Array[S3BatchResultResult] = js.native 78 | } 79 | 80 | object S3BatchResult { 81 | def apply( 82 | invocationSchemaVersion: String, 83 | treatMissingKeysAs: literal.S3BatchResultResultCode, 84 | invocationId: String, 85 | results: js.Array[S3BatchResultResult] 86 | ): S3BatchResult = { 87 | val _obj$ = js.Dynamic.literal( 88 | "invocationSchemaVersion" -> invocationSchemaVersion.asInstanceOf[js.Any], 89 | "treatMissingKeysAs" -> treatMissingKeysAs.asInstanceOf[js.Any], 90 | "invocationId" -> invocationId.asInstanceOf[js.Any], 91 | "results" -> results.asInstanceOf[js.Any] 92 | ) 93 | _obj$.asInstanceOf[S3BatchResult] 94 | } 95 | } 96 | 97 | @js.native 98 | trait S3BatchResultResult extends js.Object { 99 | var taskId: String = js.native 100 | var resultCode: literal.S3BatchResultResultCode = js.native 101 | var resultString: String = js.native 102 | } 103 | 104 | object S3BatchResultResult { 105 | def apply( 106 | taskId: String, 107 | resultCode: literal.S3BatchResultResultCode, 108 | resultString: String 109 | ): S3BatchResultResult = { 110 | val _obj$ = js.Dynamic.literal( 111 | "taskId" -> taskId.asInstanceOf[js.Any], 112 | "resultCode" -> resultCode.asInstanceOf[js.Any], 113 | "resultString" -> resultString.asInstanceOf[js.Any] 114 | ) 115 | _obj$.asInstanceOf[S3BatchResultResult] 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/ses.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | import scala.scalajs.js.| 5 | 6 | trait SESMailHeader extends js.Object { 7 | var name: String 8 | var value: String 9 | } 10 | object SESMailHeader { 11 | def apply( 12 | name: String, 13 | value: String 14 | ): SESMailHeader = { 15 | val _obj$ = js.Dynamic.literal( 16 | "name" -> name.asInstanceOf[js.Any], 17 | "value" -> value.asInstanceOf[js.Any] 18 | ) 19 | _obj$.asInstanceOf[SESMailHeader] 20 | } 21 | } 22 | 23 | trait SESMailCommonHeaders extends js.Object { 24 | var returnPath: String 25 | var from: js.UndefOr[js.Array[String]] 26 | var date: String 27 | var to: js.UndefOr[js.Array[String]] 28 | var cc: js.UndefOr[js.Array[String]] 29 | var bcc: js.UndefOr[js.Array[String]] 30 | var sender: js.UndefOr[js.Array[String]] 31 | var replyTo: js.UndefOr[js.Array[String]] 32 | var messageId: String 33 | var subject: js.UndefOr[String] 34 | } 35 | object SESMailCommonHeaders { 36 | def apply( 37 | returnPath: String, 38 | date: String, 39 | messageId: String, 40 | from: js.UndefOr[js.Array[String]] = js.undefined, 41 | to: js.UndefOr[js.Array[String]] = js.undefined, 42 | cc: js.UndefOr[js.Array[String]] = js.undefined, 43 | bcc: js.UndefOr[js.Array[String]] = js.undefined, 44 | sender: js.UndefOr[js.Array[String]] = js.undefined, 45 | replyTo: js.UndefOr[js.Array[String]] = js.undefined, 46 | subject: js.UndefOr[String] = js.undefined 47 | ): SESMailCommonHeaders = { 48 | val _obj$ = js.Dynamic.literal( 49 | "returnPath" -> returnPath.asInstanceOf[js.Any], 50 | "date" -> date.asInstanceOf[js.Any], 51 | "messageId" -> messageId.asInstanceOf[js.Any] 52 | ) 53 | from.foreach(_v => _obj$.updateDynamic("from")(_v.asInstanceOf[js.Any])) 54 | to.foreach(_v => _obj$.updateDynamic("to")(_v.asInstanceOf[js.Any])) 55 | cc.foreach(_v => _obj$.updateDynamic("cc")(_v.asInstanceOf[js.Any])) 56 | bcc.foreach(_v => _obj$.updateDynamic("bcc")(_v.asInstanceOf[js.Any])) 57 | sender.foreach(_v => _obj$.updateDynamic("sender")(_v.asInstanceOf[js.Any])) 58 | replyTo.foreach(_v => _obj$.updateDynamic("replyTo")(_v.asInstanceOf[js.Any])) 59 | subject.foreach(_v => _obj$.updateDynamic("subject")(_v.asInstanceOf[js.Any])) 60 | _obj$.asInstanceOf[SESMailCommonHeaders] 61 | } 62 | } 63 | 64 | trait SESMail extends js.Object { 65 | var timestamp: String 66 | var source: String 67 | var messageId: String 68 | var destination: js.Array[String] 69 | var headersTruncated: Boolean 70 | var headers: js.Array[SESMailHeader] 71 | var commonHeaders: SESMailCommonHeaders 72 | } 73 | object SESMail { 74 | def apply( 75 | timestamp: String, 76 | source: String, 77 | messageId: String, 78 | destination: js.Array[String], 79 | headersTruncated: Boolean, 80 | headers: js.Array[SESMailHeader], 81 | commonHeaders: SESMailCommonHeaders 82 | ): SESMail = { 83 | val _obj$ = js.Dynamic.literal( 84 | "timestamp" -> timestamp.asInstanceOf[js.Any], 85 | "source" -> source.asInstanceOf[js.Any], 86 | "messageId" -> messageId.asInstanceOf[js.Any], 87 | "destination" -> destination.asInstanceOf[js.Any], 88 | "headersTruncated" -> headersTruncated.asInstanceOf[js.Any], 89 | "headers" -> headers.asInstanceOf[js.Any], 90 | "commonHeaders" -> commonHeaders.asInstanceOf[js.Any] 91 | ) 92 | _obj$.asInstanceOf[SESMail] 93 | } 94 | } 95 | 96 | trait SESReceiptStatus extends js.Object { 97 | var status: literal.SESReceiptStatus 98 | } 99 | object SESReceiptStatus { 100 | def apply( 101 | status: literal.SESReceiptStatus 102 | ): SESReceiptStatus = { 103 | val _obj$ = js.Dynamic.literal( 104 | "status" -> status.asInstanceOf[js.Any] 105 | ) 106 | _obj$.asInstanceOf[SESReceiptStatus] 107 | } 108 | } 109 | 110 | trait SESReceiptS3Action extends js.Object { 111 | var `type`: String 112 | var topicArn: js.UndefOr[String] 113 | var bucketName: String 114 | var objectKey: String 115 | } 116 | object SESReceiptS3Action { 117 | def apply( 118 | `type`: String, 119 | bucketName: String, 120 | objectKey: String, 121 | topicArn: js.UndefOr[String] = js.undefined 122 | ): SESReceiptS3Action = { 123 | val _obj$ = js.Dynamic.literal( 124 | "type" -> `type`.asInstanceOf[js.Any], 125 | "bucketName" -> bucketName.asInstanceOf[js.Any], 126 | "objectKey" -> objectKey.asInstanceOf[js.Any] 127 | ) 128 | topicArn.foreach(_v => _obj$.updateDynamic("topicArn")(_v.asInstanceOf[js.Any])) 129 | _obj$.asInstanceOf[SESReceiptS3Action] 130 | } 131 | } 132 | 133 | trait SESReceiptSnsAction extends js.Object { 134 | var `type`: String 135 | var topicArn: String 136 | } 137 | object SESReceiptSnsAction { 138 | def apply( 139 | `type`: String, 140 | topicArn: String 141 | ): SESReceiptSnsAction = { 142 | val _obj$ = js.Dynamic.literal( 143 | "type" -> `type`.asInstanceOf[js.Any], 144 | "topicArn" -> topicArn.asInstanceOf[js.Any] 145 | ) 146 | _obj$.asInstanceOf[SESReceiptSnsAction] 147 | } 148 | } 149 | 150 | trait SESReceiptBounceAction extends js.Object { 151 | var `type`: String 152 | var topicArn: js.UndefOr[String] 153 | var smtpReplyCode: String 154 | var statusCode: String 155 | var message: String 156 | var sender: String 157 | } 158 | object SESReceiptBounceAction { 159 | def apply( 160 | `type`: String, 161 | smtpReplyCode: String, 162 | statusCode: String, 163 | message: String, 164 | sender: String, 165 | topicArn: js.UndefOr[String] = js.undefined 166 | ): SESReceiptBounceAction = { 167 | val _obj$ = js.Dynamic.literal( 168 | "type" -> `type`.asInstanceOf[js.Any], 169 | "smtpReplyCode" -> smtpReplyCode.asInstanceOf[js.Any], 170 | "statusCode" -> statusCode.asInstanceOf[js.Any], 171 | "message" -> message.asInstanceOf[js.Any], 172 | "sender" -> sender.asInstanceOf[js.Any] 173 | ) 174 | topicArn.foreach(_v => _obj$.updateDynamic("topicArn")(_v.asInstanceOf[js.Any])) 175 | _obj$.asInstanceOf[SESReceiptBounceAction] 176 | } 177 | } 178 | 179 | trait SESReceiptLambdaAction extends js.Object { 180 | var `type`: String 181 | var topicArn: js.UndefOr[String] 182 | var functionArn: String 183 | var invocationType: String 184 | } 185 | object SESReceiptLambdaAction { 186 | def apply( 187 | `type`: String, 188 | functionArn: String, 189 | invocationType: String, 190 | topicArn: js.UndefOr[String] = js.undefined 191 | ): SESReceiptLambdaAction = { 192 | val _obj$ = js.Dynamic.literal( 193 | "type" -> `type`.asInstanceOf[js.Any], 194 | "functionArn" -> functionArn.asInstanceOf[js.Any], 195 | "invocationType" -> invocationType.asInstanceOf[js.Any] 196 | ) 197 | topicArn.foreach(_v => _obj$.updateDynamic("topicArn")(_v.asInstanceOf[js.Any])) 198 | _obj$.asInstanceOf[SESReceiptLambdaAction] 199 | } 200 | } 201 | 202 | trait SESReceiptStopAction extends js.Object { 203 | var `type`: String 204 | var topicArn: js.UndefOr[String] 205 | } 206 | object SESReceiptStopAction { 207 | def apply( 208 | `type`: String, 209 | topicArn: js.UndefOr[String] = js.undefined 210 | ): SESReceiptStopAction = { 211 | val _obj$ = js.Dynamic.literal( 212 | "type" -> `type`.asInstanceOf[js.Any] 213 | ) 214 | topicArn.foreach(_v => _obj$.updateDynamic("topicArn")(_v.asInstanceOf[js.Any])) 215 | _obj$.asInstanceOf[SESReceiptStopAction] 216 | } 217 | } 218 | 219 | trait SESReceiptWorkMailAction extends js.Object { 220 | var `type`: String 221 | var topicArn: js.UndefOr[String] 222 | var organizationArn: String 223 | } 224 | object SESReceiptWorkMailAction { 225 | def apply( 226 | `type`: String, 227 | organizationArn: String, 228 | topicArn: js.UndefOr[String] = js.undefined 229 | ): SESReceiptWorkMailAction = { 230 | val _obj$ = js.Dynamic.literal( 231 | "type" -> `type`.asInstanceOf[js.Any], 232 | "organizationArn" -> organizationArn.asInstanceOf[js.Any] 233 | ) 234 | topicArn.foreach(_v => _obj$.updateDynamic("topicArn")(_v.asInstanceOf[js.Any])) 235 | _obj$.asInstanceOf[SESReceiptWorkMailAction] 236 | } 237 | } 238 | 239 | trait SESReceipt extends js.Object { 240 | var timestamp: String 241 | var processingTimeMillis: Double 242 | var recipients: js.Array[String] 243 | var spamVerdict: SESReceiptStatus 244 | var virusVerdict: SESReceiptStatus 245 | var spfVerdict: SESReceiptStatus 246 | var dkimVerdict: SESReceiptStatus 247 | var dmarcVerdict: SESReceiptStatus 248 | var dmarcPolicy: js.UndefOr[literal.SESDmarcPolicy] 249 | var action 250 | : SESReceiptS3Action | SESReceiptSnsAction | SESReceiptBounceAction | SESReceiptLambdaAction | SESReceiptStopAction | SESReceiptWorkMailAction 251 | } 252 | object SESReceipt { 253 | def apply( 254 | timestamp: String, 255 | processingTimeMillis: Double, 256 | recipients: js.Array[String], 257 | spamVerdict: SESReceiptStatus, 258 | virusVerdict: SESReceiptStatus, 259 | spfVerdict: SESReceiptStatus, 260 | dkimVerdict: SESReceiptStatus, 261 | dmarcVerdict: SESReceiptStatus, 262 | action: SESReceiptS3Action | SESReceiptSnsAction | SESReceiptBounceAction | SESReceiptLambdaAction | SESReceiptStopAction | SESReceiptWorkMailAction, 263 | dmarcPolicy: js.UndefOr[literal.SESDmarcPolicy] = js.undefined 264 | ): SESReceipt = { 265 | val _obj$ = js.Dynamic.literal( 266 | "timestamp" -> timestamp.asInstanceOf[js.Any], 267 | "processingTimeMillis" -> processingTimeMillis.asInstanceOf[js.Any], 268 | "recipients" -> recipients.asInstanceOf[js.Any], 269 | "spamVerdict" -> spamVerdict.asInstanceOf[js.Any], 270 | "virusVerdict" -> virusVerdict.asInstanceOf[js.Any], 271 | "spfVerdict" -> spfVerdict.asInstanceOf[js.Any], 272 | "dkimVerdict" -> dkimVerdict.asInstanceOf[js.Any], 273 | "dmarcVerdict" -> dmarcVerdict.asInstanceOf[js.Any], 274 | "action" -> action.asInstanceOf[js.Any] 275 | ) 276 | dmarcPolicy.foreach(_v => _obj$.updateDynamic("dmarcPolicy")(_v.asInstanceOf[js.Any])) 277 | _obj$.asInstanceOf[SESReceipt] 278 | } 279 | } 280 | 281 | trait SESMessage extends js.Object { 282 | var mail: SESMail 283 | var receipt: SESReceipt 284 | } 285 | object SESMessage { 286 | def apply( 287 | mail: SESMail, 288 | receipt: SESReceipt 289 | ): SESMessage = { 290 | val _obj$ = js.Dynamic.literal( 291 | "mail" -> mail.asInstanceOf[js.Any], 292 | "receipt" -> receipt.asInstanceOf[js.Any] 293 | ) 294 | _obj$.asInstanceOf[SESMessage] 295 | } 296 | } 297 | 298 | trait SESEventRecord extends js.Object { 299 | var eventSource: String 300 | var eventVersion: String 301 | var ses: SESMessage 302 | } 303 | object SESEventRecord { 304 | def apply( 305 | eventSource: String, 306 | eventVersion: String, 307 | ses: SESMessage 308 | ): SESEventRecord = { 309 | val _obj$ = js.Dynamic.literal( 310 | "eventSource" -> eventSource.asInstanceOf[js.Any], 311 | "eventVersion" -> eventVersion.asInstanceOf[js.Any], 312 | "ses" -> ses.asInstanceOf[js.Any] 313 | ) 314 | _obj$.asInstanceOf[SESEventRecord] 315 | } 316 | } 317 | 318 | trait SESEvent extends js.Object { 319 | var Records: js.Array[SESEventRecord] 320 | } 321 | object SESEvent { 322 | def apply( 323 | Records: js.Array[SESEventRecord] 324 | ): SESEvent = { 325 | val _obj$ = js.Dynamic.literal( 326 | "Records" -> Records.asInstanceOf[js.Any] 327 | ) 328 | _obj$.asInstanceOf[SESEvent] 329 | } 330 | } 331 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/sns.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait SNSMessageAttribute extends js.Object { 7 | var Type: String = js.native 8 | var Value: String = js.native 9 | } 10 | object SNSMessageAttribute { 11 | def apply( 12 | Type: String, 13 | Value: String 14 | ): SNSMessageAttribute = { 15 | val _obj$ = js.Dynamic.literal( 16 | "Type" -> Type.asInstanceOf[js.Any], 17 | "Value" -> Value.asInstanceOf[js.Any] 18 | ) 19 | _obj$.asInstanceOf[SNSMessageAttribute] 20 | } 21 | } 22 | 23 | @js.native 24 | trait SNSMessage extends js.Object { 25 | var SignatureVersion: String = js.native 26 | var Timestamp: String = js.native 27 | var Signature: String = js.native 28 | var SigningCertUrl: String = js.native 29 | var MessageId: String = js.native 30 | var Message: String = js.native 31 | var MessageAttributes: SNSMessageAttributes = js.native 32 | var Type: String = js.native 33 | var UnsubscribeUrl: String = js.native 34 | var TopicArn: String = js.native 35 | var Subject: String = js.native 36 | } 37 | object SNSMessage { 38 | def apply( 39 | SignatureVersion: String, 40 | Timestamp: String, 41 | Signature: String, 42 | SigningCertUrl: String, 43 | MessageId: String, 44 | Message: String, 45 | MessageAttributes: SNSMessageAttributes, 46 | Type: String, 47 | UnsubscribeUrl: String, 48 | TopicArn: String, 49 | Subject: String 50 | ): SNSMessage = { 51 | val _obj$ = js.Dynamic.literal( 52 | "SignatureVersion" -> SignatureVersion.asInstanceOf[js.Any], 53 | "Timestamp" -> Timestamp.asInstanceOf[js.Any], 54 | "Signature" -> Signature.asInstanceOf[js.Any], 55 | "SigningCertUrl" -> SigningCertUrl.asInstanceOf[js.Any], 56 | "MessageId" -> MessageId.asInstanceOf[js.Any], 57 | "Message" -> Message.asInstanceOf[js.Any], 58 | "MessageAttributes" -> MessageAttributes.asInstanceOf[js.Any], 59 | "Type" -> Type.asInstanceOf[js.Any], 60 | "UnsubscribeUrl" -> UnsubscribeUrl.asInstanceOf[js.Any], 61 | "TopicArn" -> TopicArn.asInstanceOf[js.Any], 62 | "Subject" -> Subject.asInstanceOf[js.Any] 63 | ) 64 | _obj$.asInstanceOf[SNSMessage] 65 | } 66 | } 67 | 68 | @js.native 69 | trait SNSEventRecord extends js.Object { 70 | var EventVersion: String = js.native 71 | var EventSubscriptionArn: String = js.native 72 | var EventSource: String = js.native 73 | var Sns: SNSMessage = js.native 74 | } 75 | object SNSEventRecord { 76 | def apply( 77 | EventVersion: String, 78 | EventSubscriptionArn: String, 79 | EventSource: String, 80 | Sns: SNSMessage 81 | ): SNSEventRecord = { 82 | val _obj$ = js.Dynamic.literal( 83 | "EventVersion" -> EventVersion.asInstanceOf[js.Any], 84 | "EventSubscriptionArn" -> EventSubscriptionArn.asInstanceOf[js.Any], 85 | "EventSource" -> EventSource.asInstanceOf[js.Any], 86 | "Sns" -> Sns.asInstanceOf[js.Any] 87 | ) 88 | _obj$.asInstanceOf[SNSEventRecord] 89 | } 90 | } 91 | 92 | @js.native 93 | trait SNSEvent extends js.Object { 94 | var Records: js.Array[SNSEventRecord] = js.native 95 | } 96 | object SNSEvent { 97 | def apply( 98 | Records: js.Array[SNSEventRecord] 99 | ): SNSEvent = { 100 | val _obj$ = js.Dynamic.literal( 101 | "Records" -> Records.asInstanceOf[js.Any] 102 | ) 103 | _obj$.asInstanceOf[SNSEvent] 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /src/main/scala/net/exoego/facade/aws_lambda/sqs.scala: -------------------------------------------------------------------------------- 1 | package net.exoego.facade.aws_lambda 2 | 3 | import scala.scalajs.js 4 | 5 | @js.native 6 | trait SQSRecord extends js.Object { 7 | var messageId: String = js.native 8 | var receiptHandle: String = js.native 9 | var body: String = js.native 10 | var attributes: SQSRecordAttributes = js.native 11 | var messageAttributes: SQSMessageAttributes = js.native 12 | var md5OfBody: String = js.native 13 | var eventSource: String = js.native 14 | var eventSourceARN: String = js.native 15 | var awsRegion: String = js.native 16 | } 17 | 18 | object SQSRecord { 19 | def apply( 20 | messageId: String, 21 | receiptHandle: String, 22 | body: String, 23 | attributes: SQSRecordAttributes, 24 | messageAttributes: SQSMessageAttributes, 25 | md5OfBody: String, 26 | eventSource: String, 27 | eventSourceARN: String, 28 | awsRegion: String 29 | ): SQSRecord = { 30 | val _obj$ = js.Dynamic.literal( 31 | "messageId" -> messageId.asInstanceOf[js.Any], 32 | "receiptHandle" -> receiptHandle.asInstanceOf[js.Any], 33 | "body" -> body.asInstanceOf[js.Any], 34 | "attributes" -> attributes.asInstanceOf[js.Any], 35 | "messageAttributes" -> messageAttributes.asInstanceOf[js.Any], 36 | "md5OfBody" -> md5OfBody.asInstanceOf[js.Any], 37 | "eventSource" -> eventSource.asInstanceOf[js.Any], 38 | "eventSourceARN" -> eventSourceARN.asInstanceOf[js.Any], 39 | "awsRegion" -> awsRegion.asInstanceOf[js.Any] 40 | ) 41 | _obj$.asInstanceOf[SQSRecord] 42 | } 43 | } 44 | 45 | @js.native 46 | trait SQSEvent extends js.Object { 47 | var Records: js.Array[SQSRecord] = js.native 48 | } 49 | object SQSEvent { 50 | def apply( 51 | Records: js.Array[SQSRecord] 52 | ): SQSEvent = { 53 | val _obj$ = js.Dynamic.literal( 54 | "Records" -> Records.asInstanceOf[js.Any] 55 | ) 56 | _obj$.asInstanceOf[SQSEvent] 57 | } 58 | } 59 | 60 | @js.native 61 | trait SQSRecordAttributes extends js.Object { 62 | var ApproximateReceiveCount: String = js.native 63 | var SentTimestamp: String = js.native 64 | var SenderId: String = js.native 65 | var ApproximateFirstReceiveTimestamp: String = js.native 66 | var AWSTraceHeader: js.UndefOr[String] = js.native 67 | var SequenceNumber: js.UndefOr[String] = js.native 68 | var MessageGroupId: js.UndefOr[String] = js.native 69 | var MessageDeduplicationId: js.UndefOr[String] = js.native 70 | } 71 | object SQSRecordAttributes { 72 | def apply( 73 | ApproximateReceiveCount: String, 74 | SentTimestamp: String, 75 | SenderId: String, 76 | ApproximateFirstReceiveTimestamp: String, 77 | AWSTraceHeader: js.UndefOr[String] = js.undefined, 78 | SequenceNumber: js.UndefOr[String] = js.undefined, 79 | MessageGroupId: js.UndefOr[String] = js.undefined, 80 | MessageDeduplicationId: js.UndefOr[String] = js.undefined 81 | ): SQSRecordAttributes = { 82 | val _obj$ = js.Dynamic.literal( 83 | "ApproximateReceiveCount" -> ApproximateReceiveCount.asInstanceOf[js.Any], 84 | "SentTimestamp" -> SentTimestamp.asInstanceOf[js.Any], 85 | "SenderId" -> SenderId.asInstanceOf[js.Any], 86 | "ApproximateFirstReceiveTimestamp" -> ApproximateFirstReceiveTimestamp.asInstanceOf[js.Any] 87 | ) 88 | AWSTraceHeader.foreach(_v => _obj$.updateDynamic("AWSTraceHeader")(_v.asInstanceOf[js.Any])) 89 | SequenceNumber.foreach(_v => _obj$.updateDynamic("SequenceNumber")(_v.asInstanceOf[js.Any])) 90 | MessageGroupId.foreach(_v => _obj$.updateDynamic("MessageGroupId")(_v.asInstanceOf[js.Any])) 91 | MessageDeduplicationId.foreach(_v => _obj$.updateDynamic("MessageDeduplicationId")(_v.asInstanceOf[js.Any])) 92 | _obj$.asInstanceOf[SQSRecordAttributes] 93 | } 94 | } 95 | 96 | @js.native 97 | trait SQSMessageAttribute extends js.Object { 98 | var stringValue: js.UndefOr[String] = js.native 99 | var binaryValue: js.UndefOr[String] = js.native 100 | var stringListValues: js.Array[Nothing] = js.native 101 | var binaryListValues: js.Array[Nothing] = js.native 102 | var dataType: SQSMessageAttributeDataType = js.native 103 | } 104 | object SQSMessageAttribute { 105 | def apply( 106 | stringListValues: js.Array[Nothing], 107 | binaryListValues: js.Array[Nothing], 108 | dataType: SQSMessageAttributeDataType, 109 | stringValue: js.UndefOr[String] = js.undefined, 110 | binaryValue: js.UndefOr[String] = js.undefined 111 | ): SQSMessageAttribute = { 112 | val _obj$ = js.Dynamic.literal( 113 | "stringListValues" -> stringListValues.asInstanceOf[js.Any], 114 | "binaryListValues" -> binaryListValues.asInstanceOf[js.Any], 115 | "dataType" -> dataType.asInstanceOf[js.Any] 116 | ) 117 | stringValue.foreach(_v => _obj$.updateDynamic("stringValue")(_v.asInstanceOf[js.Any])) 118 | binaryValue.foreach(_v => _obj$.updateDynamic("binaryValue")(_v.asInstanceOf[js.Any])) 119 | _obj$.asInstanceOf[SQSMessageAttribute] 120 | } 121 | } 122 | 123 | @js.native 124 | trait SQSBatchResponse extends js.Object { 125 | var batchItemFailures: js.Array[SQSBatchItemFailure] = js.native 126 | } 127 | object SQSBatchResponse { 128 | def apply( 129 | batchItemFailures: js.Array[SQSBatchItemFailure] 130 | ): SQSBatchResponse = { 131 | val _obj$ = js.Dynamic.literal( 132 | "batchItemFailures" -> batchItemFailures.asInstanceOf[js.Any] 133 | ) 134 | _obj$.asInstanceOf[SQSBatchResponse] 135 | } 136 | } 137 | 138 | @js.native 139 | trait SQSBatchItemFailure extends js.Object { 140 | var itemIdentifier: String = js.native 141 | } 142 | object SQSBatchItemFailure { 143 | def apply( 144 | itemIdentifier: String 145 | ): SQSBatchItemFailure = { 146 | val _obj$ = js.Dynamic.literal( 147 | "itemIdentifier" -> itemIdentifier.asInstanceOf[js.Any] 148 | ) 149 | _obj$.asInstanceOf[SQSBatchItemFailure] 150 | } 151 | } 152 | --------------------------------------------------------------------------------