{"id":32957297,"url":"https://github.com/seratch/AWScala","last_synced_at":"2025-11-13T06:01:19.854Z","repository":{"id":10237138,"uuid":"12340196","full_name":"seratch/AWScala","owner":"seratch","description":"Using AWS SDK on the Scala REPL","archived":true,"fork":false,"pushed_at":"2023-06-13T10:47:07.000Z","size":1152,"stargazers_count":736,"open_issues_count":71,"forks_count":227,"subscribers_count":36,"default_branch":"master","last_synced_at":"2024-10-29T16:33:10.955Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/seratch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2013-08-24T08:06:48.000Z","updated_at":"2024-10-27T10:13:03.000Z","dependencies_parsed_at":"2024-01-02T21:57:47.133Z","dependency_job_id":"c20401aa-413e-4508-903e-58226a1d45de","html_url":"https://github.com/seratch/AWScala","commit_stats":null,"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"purl":"pkg:github/seratch/AWScala","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2FAWScala","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2FAWScala/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2FAWScala/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2FAWScala/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seratch","download_url":"https://codeload.github.com/seratch/AWScala/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2FAWScala/sbom","scorecard":{"id":811921,"data":{"date":"2025-08-11","repo":{"name":"github.com/seratch/AWScala","commit":"b6cf1f056659dbffe743c718e9a6bfdfa5839186"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/2 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/labeler.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/scala-steward.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/seratch/AWScala/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/seratch/AWScala/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/seratch/AWScala/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/labeler.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/seratch/AWScala/labeler.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/seratch/AWScala/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/seratch/AWScala/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/seratch/AWScala/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/seratch/AWScala/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/scala-steward.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/seratch/AWScala/scala-steward.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/scala-steward.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/seratch/AWScala/scala-steward.yml/master?enable=pin","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T13:23:42.220Z","repository_id":10237138,"created_at":"2025-08-23T13:23:42.220Z","updated_at":"2025-08-23T13:23:42.220Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284162996,"owners_count":26957899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-13T02:00:06.582Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-11-12T23:00:22.448Z","updated_at":"2025-11-13T06:01:19.844Z","avatar_url":"https://github.com/seratch.png","language":"Scala","readme":"## ⚠️ Important Notice ⚠️\n\nThis library is no longer maintained. If you would like to continue using it, please fork and update it on your own.\n\nAWScala: AWS SDK on the Scala REPL\n=======\n\n[![Maven Central](https://img.shields.io/maven-central/v/com.github.seratch/awscala_2.13.svg?label=Maven%20Central)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.github.seratch%22%20a%3A%22awscala_2.13%22)\n\nAWScala enables Scala developers to easily work with Amazon Web Services in the Scala way.\n\nThough AWScala objects basically extend AWS SDK for Java APIs, you can use them with less stress on Scala REPL or `sbt console`.\n\n## Supported Services\n\nhttp://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/\n\n- AWS Identity and Access Management (IAM)\n- AWS Security Token Service (STS)\n- Amazon Elastic Compute Cloud (Amazon EC2)\n- Amazon Simple Storage Service (Amazon S3)\n- Amazon Simple Queue Service（Amazon SQS）\n- Amazon Redshift\n- Amazon DynamoDB\n- Amazon SimpleDB\n- AWS Step Functions\n\n## How to use\n\nTo pull in all modules:\n\n```scala\nlibraryDependencies += \"com.github.seratch\" %% \"awscala\" % \"0.9.+\"\n```\n\nTo pull in only selected modules:\n\n```scala\nlibraryDependencies ++= Seq(\n    \"com.github.seratch\" %% \"awscala-ec2\" % \"0.9.+\",\n    \"com.github.seratch\" %% \"awscala-iam\" % \"0.9.+\",\n    \"com.github.seratch\" %% \"awscala-dynamodb\" % \"0.9.+\",\n    \"com.github.seratch\" %% \"awscala-emr\" % \"0.9.+\",\n    \"com.github.seratch\" %% \"awscala-redshift\" % \"0.9.+\",\n    \"com.github.seratch\" %% \"awscala-s3\" % \"0.9.+\",\n    \"com.github.seratch\" %% \"awscala-simpledb\" % \"0.9.+\",\n    \"com.github.seratch\" %% \"awscala-sqs\" % \"0.9.+\",\n    \"com.github.seratch\" %% \"awscala-sts\" % \"0.9.+\",\n    \"com.github.seratch\" %% \"awscala-stepfunctions\" % \"0.9.+\"\n)\n```\n\nConfigure credentials in the AWS Java SDK way.\n\nhttp://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/credentials.html\n\n## Examples\n\n### AWS Identity and Access Management (IAM)\n\n```scala\nimport awscala._, iam._\nimplicit val iam = IAM()\n\nval group = iam.createGroup(\"Developers\")\n\ngroup.putPolicy(\"policy-name\", \n  Policy(Seq(Statement(Effect.Allow, Seq(Action(\"s3:*\")), Seq(Resource(\"*\"))))))\n\nval user: User = iam.createUser(\"Alice\")\nuser.setLoginPassword(\"password\")\ngroup.add(user)\n\ngroup.policyNames.foreach(name =\u003e group.policy(name).destroy())\ngroup.destroy()\n```\n\nhttps://github.com/seratch/AWScala/blob/master/iam/src/main/scala/awscala/iam/IAM.scala\n\nhttps://github.com/seratch/awscala/blob/master/iam/src/test/scala/awscala/IAMSpec.scala\n\n##### AWS Security Token Service (STS)\n\n```scala\nimport awscala._, sts._\n\nimplicit val sts = STS()\n\nval federation: FederationToken = sts.federationToken(\n  name = \"anonymous-user\",\n  policy = Policy(Seq(Statement(Effect.Allow, Seq(Action(\"s3:*\")), Seq(Resource(\"*\"))))),\n  durationSeconds = 1200)\n\nval signinToken: String = sts.signinToken(federation.credentials)\n\nval loginUrl: String = sts.loginUrl(\n  credentials = federation.credentials,\n  consoleUrl  = \"https://console.aws.amazon.com/iam\",\n  issuerUrl   = \"http://example.com/internal/auth\")\n```\n\nhttps://github.com/seratch/awscala/blob/master/sts/src/main/scala/awscala/sts/STS.scala\n\nhttps://github.com/seratch/awscala/blob/master/sts/src/test/scala/awscala/STSSpec.scala\n\n\n### Amazon Elastic Compute Cloud (Amazon EC2)\n\n```scala\nimport awscala._, ec2._\n\nimplicit val ec2 = EC2.at(Region.Tokyo)\n\nval existings: Seq[Instance] = ec2.instances\n\nimport scala.concurrent._\nimport scala.concurrent.ExecutionContext.Implicits.global\n\n// simply create a t1.micro instance\nval f = Future(ec2.runAndAwait(\"ami-2819aa29\", ec2.keyPairs.head))\n\nfor {\n  instances \u003c- f\n  instance \u003c- instances\n} {\n  instance.withKeyPair(new java.io.File(\"key_pair_file\")) { i =\u003e\n    // optional: scala-ssh (https://github.com/sirthias/scala-ssh)\n    i.ssh { ssh =\u003e\n      ssh.exec(\"ls -la\").right.map { result =\u003e\n        println(s\"------\\n${inst.instanceId} Result:\\n\" + result.stdOutAsString())\n      }\n    }\n  }\n  instance.terminate()\n}\n```\n\nhttps://github.com/seratch/awscala/blob/master/ec2/src/main/scala/awscala/ec2/EC2.scala\n\nhttps://github.com/seratch/awscala/blob/master/ec2/src/test/scala/awscala/EC2Spec.scala\n\n\n### Amazon Simple Storage Service (Amazon S3)\n\n```scala\nimport awscala._, s3._\n\nimplicit val s3 = S3.at(Region.Tokyo)\n\nval buckets: Seq[Bucket] = s3.buckets\nval bucket: Bucket = s3.createBucket(\"unique-name-xxx\")\nval summaries: Seq[S3ObjectSummary] = bucket.objectSummaries\n\nbucket.put(\"sample.txt\", new java.io.File(\"sample.txt\"))\n\nval s3obj: Option[S3Object] = bucket.getObject(\"sample.txt\")\n\ns3obj.foreach { obj =\u003e\n  obj.publicUrl // http://unique-name-xxx.s3.amazonaws.com/sample.txt\n  obj.generatePresignedUrl(DateTime.now.plusMinutes(10)) // ?Expires=....\n  bucket.delete(obj) // or obj.destroy()\n}\n```\n\nhttps://github.com/seratch/awscala/blob/master/s3/src/main/scala/awscala/s3/S3.scala\n\nhttps://github.com/seratch/awscala/blob/master/s3/src/test/scala/awscala/S3Spec.scala\n\n### Amazon Simple Queue Service（Amazon SQS）\n\n```scala\nimport awscala._, sqs._\nimplicit val sqs = SQS.at(Region.Tokyo)\n\nval queue: Queue = sqs.createQueue(\"sample-queue\")\n\nqueue.add(\"message body\")\nqueue.add(\"first\", \"second\", \"third\")\n\nval messages: Seq[Message] = queue.messages\nqueue.removeAll(messages)\n\nqueue.destroy()\n```\n\nhttps://github.com/seratch/awscala/blob/master/sqs/src/main/scala/awscala/sqs/SQS.scala\n\nhttps://github.com/seratch/awscala/blob/master/sqs/src/test/scala/awscala/SQSSpec.scala\n\n### Amazon Redshift\n\n```scala\nimport awscala._, redshift._\n\nimplicit val redshift = Redshift.at(Region.Tokyo)\n\nval cluster: Cluster = redshift.createCluster(NewCluster(\n  \"sample-cluster\", \"mydb\", \"username\", \"password\"))\n\nval snapshot: Snapshot = redshift.createSnapshot(cluster, \"snapshot-name\") \n\nredshift.delete(cluster, \"final-snapshot-name\")\n```\n\nhttps://github.com/seratch/awscala/blob/master/redshift/src/main/scala/awscala/redshift/Redshift.scala\n\n### Amazon DynamoDB\n\n```scala\nimport awscala._, dynamodbv2._ \n\nimplicit val dynamoDB = DynamoDB.at(Region.Tokyo)\n\nval tableMeta: TableMeta = dynamoDB.createTable(\n  name = \"Members\",\n  hashPK =  \"Id\" -\u003e AttributeType.Number,\n  rangePK = \"Country\" -\u003e AttributeType.String,\n  otherAttributes = Seq(\"Company\" -\u003e AttributeType.String),\n  indexes = Seq(LocalSecondaryIndex(\n    name = \"CompanyIndex\",\n    keySchema = Seq(KeySchema(\"Id\", KeyType.Hash), KeySchema(\"Company\", KeyType.Range)),\n    projection = Projection(ProjectionType.Include, Seq(\"Company\"))\n  ))\n)\n\nval table: Table = dynamoDB.table(\"Members\").get\n\ntable.put(1, \"Japan\", \"Name\" -\u003e \"Alice\", \"Age\" -\u003e 23, \"Company\" -\u003e \"Google\")\ntable.put(2, \"U.S.\",  \"Name\" -\u003e \"Bob\",   \"Age\" -\u003e 36, \"Company\" -\u003e \"Google\")\ntable.put(3, \"Japan\", \"Name\" -\u003e \"Chris\", \"Age\" -\u003e 29, \"Company\" -\u003e \"Amazon\")\n\nval googlers: Seq[Item] = table.scan(Seq(\"Company\" -\u003e cond.eq(\"Google\")))\n\ntable.destroy()\n```\n\nPUT method with case class usage (@hashPK and @rangePK annotations are not currently available in Scala 3)\n\n```scala\nimport awscala._, dynamodbv2._ \n\nimplicit val dynamoDB = DynamoDB.at(Region.Tokyo)\n\ncase class Member(Name: String, Age: Int, Company: String)\ncase class TestMember(\n     @hashPK id: Int,\n     @rangePK country: String,\n     company: String,\n     name: String,\n     age: Int)\nval tableMeta: TableMeta = dynamoDB.createTable(\n  name = \"Members\",\n  hashPK =  \"Id\" -\u003e AttributeType.Number,\n  rangePK = \"Country\" -\u003e AttributeType.String,\n  otherAttributes = Seq(\"Company\" -\u003e AttributeType.String),\n  indexes = Seq(LocalSecondaryIndex(\n    name = \"CompanyIndex\",\n    keySchema = Seq(KeySchema(\"Id\", KeyType.Hash), KeySchema(\"Company\", KeyType.Range)),\n    projection = Projection(ProjectionType.Include, Seq(\"Company\"))\n  ))\n)\n\nval table: Table = dynamoDB.table(\"Members\").get\nval member = Member(\"Alex\", 29, \"DataMass\")\ntable.putItem(1, \"PL\", member)\n\n// putItem() allows you to push the whole case class object with hashPK and rangePK included\nval user = TestMember(2,\"PL\", \"Jakub\", 33, \"DataMass\")\ntable.putItem(user)\n\nval members: Seq[Item] = table.scan(Seq(\"Company\" -\u003e cond.eq(\"DataMass\")))\ntable.destroy()\n```\n \n\n\nhttps://github.com/seratch/awscala/blob/master/dynamodb/src/main/scala/awscala/dynamodbv2/DynamoDB.scala\n\nhttps://github.com/seratch/awscala/blob/master/dynamodb/src/test/scala/awscala/DynamoDBV2Spec.scala\n\n### Amazon SimpleDB\n\n```scala\nimport awscala._, simpledb._\n\nimplicit val simpleDB = SimpleDB.at(Region.Tokyo)\n\nval domain: Domain = simpleDB.createDomain(\"users\")\n\ndomain.put(\"00001\", \"name\" -\u003e \"Alice\", \"age\" -\u003e \"23\", \"country\" -\u003e \"America\")\ndomain.put(\"00002\", \"name\" -\u003e \"Bob\",   \"age\" -\u003e \"34\", \"country\" -\u003e \"America\")\ndomain.put(\"00003\", \"name\" -\u003e \"Chris\", \"age\" -\u003e \"27\", \"country\" -\u003e \"Japan\")\n\nval items: Seq[Item] = domain.select(s\"select * from users where country = 'America'\")\n\nsimpleDB.domains.foreach(_.destroy())\n```\n\nhttps://github.com/seratch/awscala/blob/master/simpledb/src/main/scala/awscala/simpledb/SimpleDB.scala\n\nhttps://github.com/seratch/awscala/blob/master/simpledb/src/test/scala/awscala/SimpleDBSpec.scala\n\n### AWS Step Functions\n\n```scala\nimport awscala._, stepfunctions._\n\nimplicit val steps = StepFunctions.at(Region.Tokyo)\n\nval machineDefinition = \"{ ... state machine definition ... }\"\nval role = Role(...)\n\nval machine = steps.createStateMachine(\"myMachine\", machineDefinition, role)\nval activity = steps.createActivity(\"MyActivity\")\nval exec = machine.startExecution(\"machine input\")\n\nsteps.runActivity(activity.name) { input =\u003e s\"Received input $input\" }\n\nexec.stepStatus(\"Some Step\")\nval history: Seq[ExecutionEvent] = exec.history()\nval status = exec.status()\n\nmachine.delete()\nactivity.delete()\n```\n\nhttps://github.com/seratch/awscala/blob/master/stepfunctions/src/main/scala/awscala/stepfunctions/StepFunctions.scala\n\nhttps://github.com/seratch/awscala/blob/master/stepfunctions/src/test/scala/awscala/StepFunctionsSpec.scala\n\n### Amazon Elastic MapReduce (Amazon EMR)\n\nCreated by @CruncherBigData. If you have any feedback or questions, please contact @CruncherBigData.\n\nhttps://github.com/seratch/awscala/blob/master/emr/src/main/scala/awscala/emr/EMR.scala\n\nhttps://github.com/seratch/awscala/blob/master/emr/src/test/scala/awscala/EMRSpec.scala\n\n## How to contribute\n\nIf you're interested in contributing this project, please send pull requests!\n\n### Running tests\n\nTests require aws credentials with Administrator permissions:\n\n```\nexport AWS_ACCESS_KEY_ID=xxx\nexport AWS_SECRET_ACCESS_KEY=yyy\n```\n\nThe DynamoDB tests also require a locally running instance of DynamoDB.\nAn install script is provided as `bin/installDynamoDbLocal`.\nA launch script is provided as `bin/runDynamoDbLocal`.\nSee http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.DynamoDBLocal.html for more info.\n\nTo run the tests, just type `sbt test`.\n\n## License\n\nCopyright 2013 - AWScala Developers\n\nApache License, Version 2.0\n\n","funding_links":[],"categories":["Scala Tools and Libraries","Tools","Scala Tools, Libraries, and Frameworks","SDKs and Samples"],"sub_categories":["Mesh networks","JavaScript Libraries for Machine Learning","Scala SDK"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseratch%2FAWScala","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseratch%2FAWScala","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseratch%2FAWScala/lists"}