{"id":13693277,"url":"https://github.com/osfx/ocean_kit","last_synced_at":"2025-05-02T21:31:49.288Z","repository":{"id":94959925,"uuid":"82063744","full_name":"osfx/ocean_kit","owner":"osfx","description":"Digital Ocen v2 API Client","archived":false,"fork":false,"pushed_at":"2017-10-14T22:05:51.000Z","size":59,"stargazers_count":12,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-12T19:41:09.919Z","etag":null,"topics":["api-client","crystal","digitalocean","v2"],"latest_commit_sha":null,"homepage":null,"language":"Crystal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/osfx.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2017-02-15T13:31:22.000Z","updated_at":"2024-04-05T20:02:58.000Z","dependencies_parsed_at":"2023-03-06T18:45:40.784Z","dependency_job_id":null,"html_url":"https://github.com/osfx/ocean_kit","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osfx%2Focean_kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osfx%2Focean_kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osfx%2Focean_kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osfx%2Focean_kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/osfx","download_url":"https://codeload.github.com/osfx/ocean_kit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252108860,"owners_count":21696150,"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","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":["api-client","crystal","digitalocean","v2"],"created_at":"2024-08-02T17:01:07.869Z","updated_at":"2025-05-02T21:31:49.022Z","avatar_url":"https://github.com/osfx.png","language":"Crystal","funding_links":[],"categories":["Third-party APIs"],"sub_categories":[],"readme":"# OceanKit\nOceanKit is DigitalOcean V2 API client.\nIt support almost everethyng the API can do.\n\n\n## Docs\n[![docrystal.org](http://docrystal.org/badge.svg)](http://docrystal.org/github.com/osfx/ocean_kit)\n\n\n\n## Installation\nAdd this to your application's `shard.yml`:\n\n```yaml\ndependencies:\n  ocean_kit:\n    github: osfx/ocean_kit\n```\n\n\n## Usage\nThis client based on official API client [droplet_kit](https://github.com/digitalocean/droplet_kit) writen in Ruby.\nSo this means almost all methods work the same.\n\n```crystal\nrequire \"ocean_kit\"\n\nocean_kit = OceanKit::Client.new(\"API-KEY\")\n\n# Single droplet\ndroplet = {\n  \"name\": \"example.com\",\n  \"region\": \"nyc3\",\n  \"size\": \"512mb\",\n  \"image\": \"ubuntu-14-04-x64\",\n  \"tags\": [\n    \"web\"\n  ]\n}\n\nocean_kit.droplets.create(droplet)\n\n# Multiple droplets\ndroplets = {\n  \"names\": [\n    \"sub-01.example.com\",\n    \"sub-02.example.com\"\n  ],\n  \"region\": \"nyc3\",\n  \"size\": \"512mb\",\n  \"image\": \"ubuntu-14-04-x64\",\n  \"ipv6\": true,\n  \"tags\": [\n    \"xxx\"\n  ]\n}\n\nocean_kit.droplets.create(droplets)\n```\n\n\n## Available methods\n```crystal\nocean_kit = OceanKit::Client.new(\"API-KEY\")\n```\n\n### Account\n* `ocean_kit.account.info`\n\n### Certificates\n* `ocean_kit.certificates.all`\n* `ocean_kit.certificates.find(id)`\n* `ocean_kit.certificates.create(options)`\n* `ocean_kit.certificates.delete(id)`\n\n### Domain Records\n* `ocean_kit.domain_records.all(domain_name)`\n* `ocean_kit.domain_records.create(domain, name, ip)`\n* `ocean_kit.domain_records.find(name)`\n* `ocean_kit.domain_records.delete(name)`\n\n### Domains\n* `ocean_kit.domains.all`\n* `ocean_kit.domains.create(name, ip_address)`\n* `ocean_kit.domains.find(domain_name)`\n* `ocean_kit.domains.delete(name, id)`\n\n### Droplet Actions\n* `ocean_kit.droplet_actions.reboot(id)`\n* `ocean_kit.droplet_actions.power_cycle(id)`\n* `ocean_kit.droplet_actions.shutdown(id)`\n* `ocean_kit.droplet_actions.power_off`\n* `ocean_kit.droplet_actions.power_on`\n* `ocean_kit.droplet_actions.password_reset(id)`\n* `ocean_kit.droplet_actions.enable_ipv6`\n* `ocean_kit.droplet_actions.enable_backups(id)`\n* `ocean_kit.droplet_actions.disable_backups(id)`\n* `ocean_kit.droplet_actions.rebuild(id, name)`\n* `ocean_kit.droplet_actions.restore(id)`\n\n### Droplets\n* `ocean_kit.droplets.all`\n* `ocean_kit.droplets.all(tag)`\n* `ocean_kit.droplets.create(options)`\n* `ocean_kit.droplets.delete(id)`\n* `ocean_kit.droplets.delete_for_tag(tag)`\n* `ocean_kit.droplets.find(id)`\n* `ocean_kit.droplets.kernels(id)`\n* `ocean_kit.droplets.backups(id)`\n* `ocean_kit.droplets.snapshots(id)`\n* `ocean_kit.droplets.actions(id)`\n\n### Floating Ip\n* `ocean_kit.floating_ip_actions.attach(ip, droplet_id)`\n* `ocean_kit.floating_ip_actions.deattach(id)`\n* `ocean_kit.floating_ips.all`\n* `ocean_kit.floating_ips.cretate(droplet_id)`\n* `ocean_kit.floating_ips.find(floating_ip)`\n* `ocean_kit.floating_ips.delete(floating_ip)`\n\n### Image Actions\n* `ocean_kit.image_actions.all(id)`\n* `ocean_kit.image_actions.convert_to_snapshot(id)`\n* `ocean_kit.image_actions.transfer(id, region)`\n\n### Images\n* `ocean_kit.images.all`\n* `ocean_kit.images.find(id)`\n* `ocean_kit.images.delete(id)`\n* `ocean_kit.images.update(id, name)`\n* `ocean_kit.images.all_distribution`\n* `ocean_kit.images.all_application`\n* `ocean_kit.images.all_private`\n\n### Load Balancer\n* `ocean_kit.load_balancers.all`\n* `ocean_kit.load_balancers.find(id)`\n* `ocean_kit.load_balancers.create(options)`\n* `ocean_kit.load_balancers.create_with_tag(options)`\n* `ocean_kit.load_balancers.update(id, options)`\n* `ocean_kit.load_balancers.add_droplet(id, options)`\n* `ocean_kit.load_balancers.remove_droplet(id, options)`\n* `ocean_kit.load_balancers.add_rule(id, options)`\n* `ocean_kit.load_balancers.remove_rule(id, options)`\n\n### Regions\n* `ocean_kit.regions.all`\n\n### Images\n* `ocean_kit.sizes.all`\n\n### Snapshots\n* `ocean_kit.snapshots.all`\n* `ocean_kit.snapshots.find(id)`\n* `ocean_kit.snapshots.delete(id)`\n\n\n### SSH Key\n* `ocean_kit.ssh_keys.all`\n* `ocean_kit.ssh_keys.create(name, public_key)`\n* `ocean_kit.ssh_keys.find(id)`\n* `ocean_kit.ssh_keys.delete(id)`\n* `ocean_kit.ssh_keys.update(id)`\n\n### Volume Action\n* `ocean_kit.volume_actions.attach(volume_id, droplet_id)`\n* `ocean_kit.volume_actions.deattach(volume_id, droplet_id)`\n* `ocean_kit.volume_actions.resize(volume_id, size_gigabytes)`\n\n### Volume\n* `ocean_kit.volumes.all`\n* `ocean_kit.volumes.create`\n* `ocean_kit.volumes.find(volume_id)`\n* `ocean_kit.volumes.snapshots(volume_id)`\n* `ocean_kit.volumes.create_snapshot(volume_id, name)`\n* `ocean_kit.volumes.delete(volume_id)`\n---\n\n## Contributing\n\n1. Fork it ( https://github.com/osfx/ocean_kit/fork )\n2. Create your feature branch (git checkout -b my-new-feature)\n3. Commit your changes (git commit -am 'Add some feature')\n4. Push to the branch (git push origin my-new-feature)\n5. Create a new Pull Request\n\n## Contributors\n\n- [osfx](https://github.com/osfx) osfx - creator, maintainer\n- [abudhu](https://github.com/abudhu) abudhu - contributor\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosfx%2Focean_kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fosfx%2Focean_kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosfx%2Focean_kit/lists"}