{"id":20657728,"url":"https://github.com/boltops-tools/armrest","last_synced_at":"2025-04-19T13:16:04.656Z","repository":{"id":40550063,"uuid":"447034455","full_name":"boltops-tools/armrest","owner":"boltops-tools","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-31T06:17:51.000Z","size":31,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-08T00:43:56.915Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/boltops-tools.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-12T01:18:02.000Z","updated_at":"2024-02-04T18:08:44.000Z","dependencies_parsed_at":"2022-08-09T22:51:10.609Z","dependency_job_id":null,"html_url":"https://github.com/boltops-tools/armrest","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boltops-tools%2Farmrest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boltops-tools%2Farmrest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boltops-tools%2Farmrest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boltops-tools%2Farmrest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boltops-tools","download_url":"https://codeload.github.com/boltops-tools/armrest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224954279,"owners_count":17397841,"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":[],"created_at":"2024-11-16T18:22:40.459Z","updated_at":"2024-11-16T18:22:41.098Z","avatar_url":"https://github.com/boltops-tools.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Armrest\n\n[![BoltOps Badge](https://img.boltops.com/boltops/badges/boltops-badge.png)](https://www.boltops.com)\n\n[![Gem Version](https://badge.fury.io/rb/armrest.svg)](https://badge.fury.io/rb/armrest)\n\nA very lightweight Azure library that works with the [Azure REST API](https://docs.microsoft.com/en-us/rest/api/azure/), it is not meant to be exhaustive.\n\nThis was built because there doesn't seem to be a good library out there with the Azure features that [Terraspace](https://terraspace.cloud/) and [Terraspace Plugin Azurerm](https://github.com/boltops-tools/terraspace_plugin_azurerm) wanted to use:\n\n* Auth Chain Provider: env vars -\u003e MSI -\u003e CLI creds. [#6](https://github.com/boltops-tools/terraspace_plugin_azurerm/issues/6)\n* KeyVault secrets via the REST API\n\nAlso, the [Microsoft Azure SDK for Ruby library was deprecated as of Feb 2021](https://github.com/Azure/azure-sdk-for-ruby/blob/master/docs/README.md) and was officially retired. It's core library [ms_rest_azure.gemspec](https://github.com/Azure/azure-sdk-for-ruby/blob/master/runtime/ms_rest_azure/ms_rest_azure.gemspec#L39) have pinned versions of gems like faraday \u003c 2, which causes gem dependency resolution issues.\n\nThis library also only makes use of the Ruby standard builtin net/http library so there's no dependency on faraday.\n\nAgain, this library has no goals of being extensive. Code generated SDKs is the approach that would take for that, but not dedicating the time to do that for this library.\n\n## Usage: Ruby\n\nResource group:\n\n```ruby\nrequire \"armrest\"\nresource_group = Armrest::Services::ResourceGroup.new\nresource_group.create_or_update(\n  name: \"my-resource-group\",\n  location: \"eastus\",\n  tags: {key1: \"value1\"},\n)\n```\n\nRefer to the [boltops-tools/terraspace_plugin_azurerm](https://github.com/boltops-tools/terraspace_plugin_azurerm) for more examples.\n\n## Usage: CLI\n\nThe main purpose of gem is to be a Ruby library that Terraspace can interact with.  The CLI interface was only built to help quickly test the code with live resources. It's essentially a way to QA.  Here are some examples:\n\nAuth:\n\n    armrest auth app\n    armrest auth msi\n    armrest auth cli\n\nThe auth chain is: app -\u003e msi -\u003e cli\n\n    armrest auth\n\nYou can disable MSI with `ARMREST_DISABLE_MSI=1`.\n\nResource Group:\n\n    armrest resource_group check_existence demo\n\nStorage Account:\n\n    armrest storage_account create demofoobar123v3 --tags name:bob age:8\n\nBlob Service:\n\n    armrest blob_service set_properties --storage-account demofoobar123 --delete-retention-policy days:9 enabled:true --container-delete-retention-policy days:10 enabled:true --is-versioning-enabled\n\nSecret:\n\n    $ export ARMREST_VAULT=demo-dev-vault-test1\n    $ armrest secret show demo-dev-pass\n    secret1\n    $\n\n## Installation\n\nAdd to your Gemfile\n\nGemfile\n\n    gem \"armrest\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboltops-tools%2Farmrest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboltops-tools%2Farmrest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboltops-tools%2Farmrest/lists"}