{"id":17304044,"url":"https://github.com/owainlewis/oci-sdk-clj","last_synced_at":"2026-07-06T13:31:40.283Z","repository":{"id":145457077,"uuid":"241608969","full_name":"owainlewis/oci-sdk-clj","owner":"owainlewis","description":"Clojure SDK for Oracle Cloud Infrastructure","archived":false,"fork":false,"pushed_at":"2026-07-05T20:33:43.000Z","size":71,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-07-05T22:07:38.536Z","etag":null,"topics":["clojure","infrastructure-as-code","oracle","oracle-cloud","oracle-cloud-infrastructure"],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/owainlewis.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-02-19T11:50:14.000Z","updated_at":"2026-07-05T20:33:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"2b195286-ec12-4c60-949f-e51a4463b158","html_url":"https://github.com/owainlewis/oci-sdk-clj","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/owainlewis/oci-sdk-clj","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owainlewis%2Foci-sdk-clj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owainlewis%2Foci-sdk-clj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owainlewis%2Foci-sdk-clj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owainlewis%2Foci-sdk-clj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/owainlewis","download_url":"https://codeload.github.com/owainlewis/oci-sdk-clj/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owainlewis%2Foci-sdk-clj/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35193679,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"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":["clojure","infrastructure-as-code","oracle","oracle-cloud","oracle-cloud-infrastructure"],"created_at":"2024-10-15T11:52:03.190Z","updated_at":"2026-07-06T13:31:40.273Z","avatar_url":"https://github.com/owainlewis.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# oci-sdk-clj\n\nA lightweight and Clojure friendly library for working with Oracle Cloud Infrastructure (OCI).\n\nThis library uses the OCI Java SDK for request signing and can wrap current OCI Java SDK clients.\n\nBy default, the dependency set is intentionally lean. Add the OCI Java SDK service modules you need, or use the full shaded SDK when you want every client available.\n\n## Usage\n\nThe most basic usage allows you to dispatch API request manually. You can use any clojure-http compatable\nrequest.\n\n```clj\n(ns oci-sdk-clj.example\n  (:require [oci-sdk-clj.auth :as auth]\n            [oci-sdk-clj.core :as oci]))\n\n(def provider (auth/config-file-authentication-details-provider \"DEFAULT\"))\n\n;; Get a  list of available OCI compute shapes\n(oci/run provider :compute :shapes :list {:query-params {:compartmentId compartment-ocid}}))\n```\n\nFor new code, prefer the Java SDK wrapper path. It uses typed OCI Java SDK clients and requests while keeping the call site small:\n\n```clj\n(ns oci-sdk-clj.example\n  (:require [oci-sdk-clj.auth :as auth]\n            [oci-sdk-clj.java :as oci-java]))\n\n(def provider (auth/config-file-authentication-details-provider \"DEFAULT\"))\n(def identity (oci-java/client provider :identity {:region :uk-london-1}))\n\n(defn list-users [compartment-ocid]\n  (let [request (oci-java/request \"com.oracle.bmc.identity.requests.ListUsersRequest\"\n                                  {:compartment-id compartment-ocid})]\n    (oci-java/call identity :list-users request)))\n```\n\nFor the example above, add the Identity service module and an HTTP client:\n\n```clj\n{:deps {com.owainlewis/oci-sdk-clj {:mvn/version \"0.1.0\"}\n        com.oracle.oci.sdk/oci-java-sdk-common-httpclient-jersey {:mvn/version \"3.91.0\"}\n        com.oracle.oci.sdk/oci-java-sdk-identity {:mvn/version \"3.91.0\"}}}\n```\n\nFor full Java SDK client availability, add:\n\n```clj\n{:deps {com.oracle.oci.sdk/oci-java-sdk-shaded-full {:mvn/version \"3.91.0\"}}}\n```\n\nSee `docs/modules.md` for the module strategy.\n\nYou can also construct HTTP request manually. For example:\n\n```clj\n(ns oci-sdk-clj.example\n  (:require [oci-sdk-clj.auth :as auth]\n            [oci-sdk-clj.core :as oci]))\n\n(def provider (auth/config-file-authentication-details-provider \"DEFAULT\"))\n\n(defn bare-metal-shapes\n  \"Return a list of all available bare metal compute shapes\"\n  [compartment-ocid]\n  (let [all-shapes (oci/get provider \"https://iaas.uk-london-1.oraclecloud.com/20160918/shapes/\"\n                     {:query-params {:compartmentId compartment-ocid}})]\n    (filter (fn [shape]\n              (clojure.string/starts-with? shape \"BM\"))\n            (mapv :shape all-shapes)))))\n\n[\"BM.Standard2.52\"\n \"BM.Standard.E3.128\"\n \"BM.Standard.E2.64\"\n \"BM.Standard1.36\"\n \"BM.Standard2.52\"\n \"BM.Standard.E3.128\"\n \"BM.Standard.E2.64\"\n \"BM.Standard1.36\"\n \"BM.Standard2.52\"\n \"BM.Standard.E3.128\"\n \"BM.Standard.E2.64\"\n \"BM.Standard1.36\"]\n```\n\n\n\n## Running tests\n\n```\nclojure -M:test\nclojure -M:fmt check\nclojure -M:oci/full:inventory\nclojure -T:build jar\n```\n\nThe default tests do not require OCI credentials. Live OCI calls require a configured OCI profile and tenancy permissions.\n## License\n\nCopyright © 2020 Owain Lewis \u003cowain@owainlewis.com\u003e\n\nThis program and the accompanying materials are made available under the\nterms of the Eclipse Public License 2.0 which is available at\nhttp://www.eclipse.org/legal/epl-2.0.\n\nThis Source Code may also be made available under the following Secondary\nLicenses when the conditions for such availability set forth in the Eclipse\nPublic License, v. 2.0 are satisfied: GNU General Public License as published by\nthe Free Software Foundation, either version 2 of the License, or (at your\noption) any later version, with the GNU Classpath Exception which is available\nat https://www.gnu.org/software/classpath/license.html.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowainlewis%2Foci-sdk-clj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fowainlewis%2Foci-sdk-clj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowainlewis%2Foci-sdk-clj/lists"}