az_resource_group {AzureRMR} | R Documentation |
Azure resource group class
Description
Class representing an Azure resource group.
Format
An R6 object of class az_resource_group
.
Methods
-
new(token, subscription, id, ...)
: Initialize a resource group object. See 'Initialization' for more details. -
delete(confirm=TRUE)
: Delete this resource group, after a confirmation check. This is asynchronous: while the method returns immediately, the delete operation continues on the host in the background. For resource groups containing a large number of deployed resources, this may take some time to complete. -
sync_fields()
: Synchronise the R object with the resource group it represents in Azure. -
list_templates(filter, top)
: List deployed templates in this resource group.filter
andtop
are optional arguments to filter the results; see the Azure documentation for more details. Iftop
is specified, the returned list will have a maximum of this many items. -
get_template(name)
: Return an object representing an existing template. -
deploy_template(...)
: Deploy a new template. See 'Templates' for more details. By default, AzureRMR will set thecreatedBy
tag on a newly-deployed template to the valueAzureR/AzureRMR
. -
delete_template(name, confirm=TRUE, free_resources=FALSE)
: Delete a deployed template, and optionally free any resources that were created. -
get_resource(...)
: Return an object representing an existing resource. See 'Resources' for more details. -
create_resource(...)
: Create a new resource. By default, AzureRMR will set thecreatedBy
tag on a newly-created resource to the valueAzureR/AzureRMR
. -
delete_resource(..., confirm=TRUE, wait=FALSE)
: Delete an existing resource. Optionally wait for the delete to finish. -
resource_exists(...)
: Check if a resource exists. -
list_resources(filter, expand, top)
: Return a list of resource group objects for this subscription.filter
,expand
andtop
are optional arguments to filter the results; see the Azure documentation for more details. Iftop
is specified, the returned list will have a maximum of this many items. -
do_operation(...)
: Carry out an operation. See 'Operations' for more details. -
set_tags(..., keep_existing=TRUE)
: Set the tags on this resource group. The tags can be either names or name-value pairs. To delete a tag, set it toNULL
. -
get_tags()
: Get the tags on this resource group. -
create_lock(name, level)
: Create a management lock on this resource group (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 apply to this resource group. Note this includes locks created at the subscription level, and for any resources within the resource group. -
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.
Initialization
Initializing a new object of this class can either retrieve an existing resource group, or create a new resource group on the host. Generally, the easiest way to create a resource group object is via the get_resource_group
, create_resource_group
or list_resource_groups
methods of the az_subscription class, which handle this automatically.
To create a resource group object in isolation, supply (at least) an Oauth 2.0 token of class AzureToken, the subscription ID, and the resource group name. If this object refers to a new resource group, supply the location as well (use the list_locations
method of the az_subscription class
for possible locations). You can also pass any optional parameters for the resource group as named arguments to new()
.
Templates
To deploy a new template, pass the following arguments to deploy_template()
:
-
name
: The name of the deployment. -
template
: The template to deploy. This can be provided in a number of ways:A nested list of name-value pairs representing the parsed JSON
The name of a template file
A vector of strings containing unparsed JSON
A URL from which the template can be downloaded
-
parameters
: The parameters for the template. This can be provided using any of the same methods as thetemplate
argument. -
wait
: Optionally, whether or not to wait until the deployment is complete before returning. Defaults toFALSE
.
Retrieving or deleting a deployed template requires only the name of the deployment.
Resources
There are a number of arguments to get_resource()
, create_resource()
and delete_resource()
that serve to identify the specific resource in question:
-
id
: The full ID of the resource, including subscription ID and resource group. -
provider
: The provider of the resource, egMicrosoft.Compute
. -
path
: The full path to the resource, egvirtualMachines
. -
type
: The combination of provider and path, egMicrosoft.Compute/virtualMachines
. -
name
: The name of the resource instance, egmyWindowsVM
.
Providing the id
argument will fill in the values for all the other arguments. Similarly, providing the type
argument will fill in the values for provider
and path
. Unless you provide id
, you must also provide name
.
To create/deploy a new resource, specify any extra parameters that the provider needs as named arguments to create_resource()
. Like deploy_template()
, create_resource()
also takes an optional wait
argument that specifies whether to wait until resource creation is complete before returning.
Operations
The do_operation()
method allows you to carry out arbitrary operations on the resource group. 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, usebody
to supply the body of a PUT, POST or PATCH request, andapi_version
to set the API version. -
http_verb
: The HTTP verb as a string, one ofGET
,PUT
,POST
,DELETE
,HEAD
orPATCH
.
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
az_subscription, az_template, az_resource, Azure resource group overview, Resources API reference, Template API reference
For role-based access control methods, see rbac
For management locks, see lock
Examples
## Not run:
# recommended way to retrieve a resource group object
rg <- get_azure_login("myaadtenant")$
get_subscription("subscription_id")$
get_resource_group("rgname")
# list resources & templates in this resource group
rg$list_resources()
rg$list_templates()
# get a resource (virtual machine)
rg$get_resource(type="Microsoft.Compute/virtualMachines", name="myvm")
# create a resource (storage account)
rg$create_resource(type="Microsoft.Storage/storageAccounts", name="mystorage",
kind="StorageV2",
sku=list(name="Standard_LRS"))
# delete a resource
rg$delete_resource(type="Microsoft.Storage/storageAccounts", name="mystorage")
# deploy a template
rg$deploy_template("tplname",
template="template.json",
parameters="parameters.json")
# deploy a template with parameters inline
rg$deploy_template("mydeployment",
template="template.json",
parameters=list(parm1="foo", parm2="bar"))
# delete a template and free resources
rg$delete_template("tplname", free_resources=TRUE)
# delete the resource group itself
rg$delete()
## End(Not run)