az_subscription: Azure subscription class

az_subscriptionR Documentation

Azure subscription class


Class representing an Azure subscription.


An R6 object of class az_subscription.


  • new(token, id, ...): Initialize a subscription object.

  • list_resource_groups(filter, top): Return a list of resource group objects for this subscription. filter and top are optional arguments to filter the results; see the Azure documentation for more details. If top is specified, the returned list will have a maximum of this many items.

  • get_resource_group(name): Return an object representing an existing resource group.

  • create_resource_group(name, location): Create a new resource group in the specified region/location, and return an object representing it. By default, AzureRMR will set the createdBy tag on a newly-created resource group to the value AzureR/AzureRMR.

  • delete_resource_group(name, confirm=TRUE): Delete a resource group, after asking for confirmation.

  • resource_group_exists(name): Check if a resource group exists.

  • list_resources(filter, expand, top): List all resources deployed under this subscription. filter, expand and top are optional arguments to filter the results; see the Azure documentation for more details. If top is specified, the returned list will have a maximum of this many items.

  • list_locations(info=c("partial", "all")): List locations available. The default info="partial" returns a subset of the information about each location; set info="all" to return everything.

  • get_provider_api_version(provider, type, which=1, stable_only=TRUE): Get the current API version for the given resource provider and type. If no resource type is supplied, returns a vector of API versions, one for each resource type for the given provider. If neither provider nor type is supplied, returns the API versions for all resources and providers. Set stable_only=FALSE to allow preview APIs to be returned. Set which to a number > 1 to return an API other than the most recent.

  • do_operation(...): Carry out an operation. See 'Operations' for more details.

  • create_lock(name, level): Create a management lock on this subscription (which will propagate to all resources within it).

  • get_lock(name): Returns a management lock object.

  • delete_lock(name): Deletes a management lock object.

  • list_locks(): List all locks that exist in this subscription.

  • add_role_assignment(name, ...): Adds a new role assignment. See 'Role-based access control' below.

  • get_role_assignment(id): Retrieves an existing role assignment.

  • remove_role_assignment(id): Removes an existing role assignment.

  • list_role_assignments(): Lists role assignments.

  • get_role_definition(id): Retrieves an existing role definition.

  • list_role_definitions() Lists role definitions.

  • get_tags() Get the tags on this subscription.


Generally, the easiest way to create a subscription object is via the get_subscription or list_subscriptions methods of the az_rm class. To create a subscription object in isolation, call the new() method and supply an Oauth 2.0 token of class AzureToken, along with the ID of the subscription.


The do_operation() method allows you to carry out arbitrary operations on the subscription. It takes the following arguments:

  • op: The operation in question, which will be appended to the URL path of the request.

  • options: A named list giving the URL query parameters.

  • ...: Other named arguments passed to call_azure_rm, and then to the appropriate call in httr. In particular, use body to supply the body of a PUT, POST or PATCH request, and api_version to set the API version.

  • http_verb: The HTTP verb as a string, one of GET, PUT, POST, DELETE, HEAD or PATCH.

Consult the Azure documentation for what operations are supported.

Role-based access control

AzureRMR implements a subset of the full RBAC functionality within Azure Active Directory. You can retrieve role definitions and add and remove role assignments, at the subscription, resource group and resource levels. See rbac for more information.

See Also

Azure Resource Manager overview

For role-based access control methods, see rbac

For management locks, see lock


## Not run: 

# recommended way to retrieve a subscription object
sub <- get_azure_login("myaadtenant")$

# retrieve list of resource group objects under this subscription

# get a resource group

# check if a resource group exists, and if not, create it
rg_exists <- sub$resource_group_exists("rgname")
    sub$create_resource_group("rgname", location="australiaeast")

# delete a resource group

# get provider API versions for some resource types
sub$get_provider_api_version("Microsoft.Compute", "virtualMachines")
sub$get_provider_api_version("Microsoft.Storage", "storageAccounts")

## End(Not run)

AzureRMR documentation built on Sept. 21, 2023, 9:07 a.m.