azapi.getResourceAction
Explore with Pulumi AI
This resource can perform resource action which gets information from an existing resource.
It’s recommended to use azapi.ResourceAction data source to perform readonly action, please use azapi.ResourceAction resource,
if user wants to perform actions which change a resource’s state.
Example Usage
terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}
provider "azapi" {
}
provider "azurerm" {
  features {}
}
resource "azurerm_resource_group" "example" {
  name     = "example-rg"
  location = "west europe"
}
resource "azurerm_automation_account" "example" {
  name                = "example-account"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  sku_name            = "Basic"
}
data "azapi_resource_action" "example" {
  type                   = "Microsoft.Automation/automationAccounts@2021-06-22"
  resource_id            = azurerm_automation_account.example.id
  action                 = "listKeys"
  response_export_values = ["*"]
}
Here’s an example to use the azapi.ResourceAction data source to get a provider’s permissions.
provider "azurerm" {
  features {}
}
data "azurerm_client_config" "current" {}
data "azapi_resource_action" "test" {
  type        = "Microsoft.Resources/providers@2021-04-01"
  resource_id = "/subscriptions/${data.azurerm_client_config.current.subscription_id}/providers/Microsoft.Network"
  action      = "providerPermissions"
  method      = "GET"
}
Here’s an example to use the azapi.ResourceAction data source to perform a provider action.
terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}
resource "azapi_resource_action" "test" {
  type        = "Microsoft.Cache@2023-04-01"
  resource_id = "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Cache"
  action      = "CheckNameAvailability"
  body = jsonencode({
    type = "Microsoft.Cache/Redis"
    name = "cacheName"
  })
}
Using getResourceAction
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getResourceAction(args: GetResourceActionArgs, opts?: InvokeOptions): Promise<GetResourceActionResult>
function getResourceActionOutput(args: GetResourceActionOutputArgs, opts?: InvokeOptions): Output<GetResourceActionResult>def get_resource_action(action: Optional[str] = None,
                        body: Optional[str] = None,
                        method: Optional[str] = None,
                        resource_id: Optional[str] = None,
                        response_export_values: Optional[Sequence[str]] = None,
                        type: Optional[str] = None,
                        opts: Optional[InvokeOptions] = None) -> GetResourceActionResult
def get_resource_action_output(action: Optional[pulumi.Input[str]] = None,
                        body: Optional[pulumi.Input[str]] = None,
                        method: Optional[pulumi.Input[str]] = None,
                        resource_id: Optional[pulumi.Input[str]] = None,
                        response_export_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                        type: Optional[pulumi.Input[str]] = None,
                        opts: Optional[InvokeOptions] = None) -> Output[GetResourceActionResult]func LookupResourceAction(ctx *Context, args *LookupResourceActionArgs, opts ...InvokeOption) (*LookupResourceActionResult, error)
func LookupResourceActionOutput(ctx *Context, args *LookupResourceActionOutputArgs, opts ...InvokeOption) LookupResourceActionResultOutput> Note: This function is named LookupResourceAction in the Go SDK.
public static class GetResourceAction 
{
    public static Task<GetResourceActionResult> InvokeAsync(GetResourceActionArgs args, InvokeOptions? opts = null)
    public static Output<GetResourceActionResult> Invoke(GetResourceActionInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetResourceActionResult> getResourceAction(GetResourceActionArgs args, InvokeOptions options)
public static Output<GetResourceActionResult> getResourceAction(GetResourceActionArgs args, InvokeOptions options)
fn::invoke:
  function: azapi:index/getResourceAction:getResourceAction
  arguments:
    # arguments dictionaryThe following arguments are supported:
- Type string
- It is in a format like <resource-type>@<api-version>.<resource-type>is the Azure resource type, for example,Microsoft.Storage/storageAccounts.<api-version>is version of the API used to manage this azure resource.
- Action string
- The name of the resource action. It's also possible to make Http requests towards the resource ID if leave this field empty.
- Body string
- A JSON object that contains the request body.
- Method string
- Specifies the Http method of the azure resource action. Allowed values are POSTandGET. Defaults toPOST.
- ResourceId string
- The ID of an existing azure source.
- ResponseExport List<string>Values 
- A list of path that needs to be exported from response body.
Setting it to ["*"]will export the full response body. Here's an example. If it sets to["keys"], it will set the following json to computed propertyoutput.{ "keys": [ { "KeyName": "Primary", "Permissions": "Full", "Value": "nHGYNd******i4wdug==" }, { "KeyName": "Secondary", "Permissions": "Full", "Value": "6yoCad******SLzKzg==" } ] }
- Type string
- It is in a format like <resource-type>@<api-version>.<resource-type>is the Azure resource type, for example,Microsoft.Storage/storageAccounts.<api-version>is version of the API used to manage this azure resource.
- Action string
- The name of the resource action. It's also possible to make Http requests towards the resource ID if leave this field empty.
- Body string
- A JSON object that contains the request body.
- Method string
- Specifies the Http method of the azure resource action. Allowed values are POSTandGET. Defaults toPOST.
- ResourceId string
- The ID of an existing azure source.
- ResponseExport []stringValues 
- A list of path that needs to be exported from response body.
Setting it to ["*"]will export the full response body. Here's an example. If it sets to["keys"], it will set the following json to computed propertyoutput.{ "keys": [ { "KeyName": "Primary", "Permissions": "Full", "Value": "nHGYNd******i4wdug==" }, { "KeyName": "Secondary", "Permissions": "Full", "Value": "6yoCad******SLzKzg==" } ] }
- type String
- It is in a format like <resource-type>@<api-version>.<resource-type>is the Azure resource type, for example,Microsoft.Storage/storageAccounts.<api-version>is version of the API used to manage this azure resource.
- action String
- The name of the resource action. It's also possible to make Http requests towards the resource ID if leave this field empty.
- body String
- A JSON object that contains the request body.
- method String
- Specifies the Http method of the azure resource action. Allowed values are POSTandGET. Defaults toPOST.
- resourceId String
- The ID of an existing azure source.
- responseExport List<String>Values 
- A list of path that needs to be exported from response body.
Setting it to ["*"]will export the full response body. Here's an example. If it sets to["keys"], it will set the following json to computed propertyoutput.{ "keys": [ { "KeyName": "Primary", "Permissions": "Full", "Value": "nHGYNd******i4wdug==" }, { "KeyName": "Secondary", "Permissions": "Full", "Value": "6yoCad******SLzKzg==" } ] }
- type string
- It is in a format like <resource-type>@<api-version>.<resource-type>is the Azure resource type, for example,Microsoft.Storage/storageAccounts.<api-version>is version of the API used to manage this azure resource.
- action string
- The name of the resource action. It's also possible to make Http requests towards the resource ID if leave this field empty.
- body string
- A JSON object that contains the request body.
- method string
- Specifies the Http method of the azure resource action. Allowed values are POSTandGET. Defaults toPOST.
- resourceId string
- The ID of an existing azure source.
- responseExport string[]Values 
- A list of path that needs to be exported from response body.
Setting it to ["*"]will export the full response body. Here's an example. If it sets to["keys"], it will set the following json to computed propertyoutput.{ "keys": [ { "KeyName": "Primary", "Permissions": "Full", "Value": "nHGYNd******i4wdug==" }, { "KeyName": "Secondary", "Permissions": "Full", "Value": "6yoCad******SLzKzg==" } ] }
- type str
- It is in a format like <resource-type>@<api-version>.<resource-type>is the Azure resource type, for example,Microsoft.Storage/storageAccounts.<api-version>is version of the API used to manage this azure resource.
- action str
- The name of the resource action. It's also possible to make Http requests towards the resource ID if leave this field empty.
- body str
- A JSON object that contains the request body.
- method str
- Specifies the Http method of the azure resource action. Allowed values are POSTandGET. Defaults toPOST.
- resource_id str
- The ID of an existing azure source.
- response_export_ Sequence[str]values 
- A list of path that needs to be exported from response body.
Setting it to ["*"]will export the full response body. Here's an example. If it sets to["keys"], it will set the following json to computed propertyoutput.{ "keys": [ { "KeyName": "Primary", "Permissions": "Full", "Value": "nHGYNd******i4wdug==" }, { "KeyName": "Secondary", "Permissions": "Full", "Value": "6yoCad******SLzKzg==" } ] }
- type String
- It is in a format like <resource-type>@<api-version>.<resource-type>is the Azure resource type, for example,Microsoft.Storage/storageAccounts.<api-version>is version of the API used to manage this azure resource.
- action String
- The name of the resource action. It's also possible to make Http requests towards the resource ID if leave this field empty.
- body String
- A JSON object that contains the request body.
- method String
- Specifies the Http method of the azure resource action. Allowed values are POSTandGET. Defaults toPOST.
- resourceId String
- The ID of an existing azure source.
- responseExport List<String>Values 
- A list of path that needs to be exported from response body.
Setting it to ["*"]will export the full response body. Here's an example. If it sets to["keys"], it will set the following json to computed propertyoutput.{ "keys": [ { "KeyName": "Primary", "Permissions": "Full", "Value": "nHGYNd******i4wdug==" }, { "KeyName": "Secondary", "Permissions": "Full", "Value": "6yoCad******SLzKzg==" } ] }
getResourceAction Result
The following output properties are available:
- Id string
- The provider-assigned unique ID for this managed resource.
- Output string
- The output json containing the properties specified in response_export_values. Here are some examples to decode json and extract the value.// it will output "nHGYNd******i4wdug==" output "primary_key" { value = jsondecode(azapi_resource_action.test.output).keys.0.Value }
- Type string
- Action string
- Body string
- Method string
- ResourceId string
- ResponseExport List<string>Values 
- Id string
- The provider-assigned unique ID for this managed resource.
- Output string
- The output json containing the properties specified in response_export_values. Here are some examples to decode json and extract the value.// it will output "nHGYNd******i4wdug==" output "primary_key" { value = jsondecode(azapi_resource_action.test.output).keys.0.Value }
- Type string
- Action string
- Body string
- Method string
- ResourceId string
- ResponseExport []stringValues 
- id String
- The provider-assigned unique ID for this managed resource.
- output String
- The output json containing the properties specified in response_export_values. Here are some examples to decode json and extract the value.// it will output "nHGYNd******i4wdug==" output "primary_key" { value = jsondecode(azapi_resource_action.test.output).keys.0.Value }
- type String
- action String
- body String
- method String
- resourceId String
- responseExport List<String>Values 
- id string
- The provider-assigned unique ID for this managed resource.
- output string
- The output json containing the properties specified in response_export_values. Here are some examples to decode json and extract the value.// it will output "nHGYNd******i4wdug==" output "primary_key" { value = jsondecode(azapi_resource_action.test.output).keys.0.Value }
- type string
- action string
- body string
- method string
- resourceId string
- responseExport string[]Values 
- id str
- The provider-assigned unique ID for this managed resource.
- output str
- The output json containing the properties specified in response_export_values. Here are some examples to decode json and extract the value.// it will output "nHGYNd******i4wdug==" output "primary_key" { value = jsondecode(azapi_resource_action.test.output).keys.0.Value }
- type str
- action str
- body str
- method str
- resource_id str
- response_export_ Sequence[str]values 
- id String
- The provider-assigned unique ID for this managed resource.
- output String
- The output json containing the properties specified in response_export_values. Here are some examples to decode json and extract the value.// it will output "nHGYNd******i4wdug==" output "primary_key" { value = jsondecode(azapi_resource_action.test.output).keys.0.Value }
- type String
- action String
- body String
- method String
- resourceId String
- responseExport List<String>Values 
Package Details
- Repository
- azapi dirien/pulumi-azapi
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the azapiTerraform Provider.