Skip to main content

azure_service_bus_topics resource

Use the azure_service_bus_topics InSpec audit resource to test the properties related to all Azure Service Bus topics within a project.

Azure REST API version, endpoint, and HTTP client parameters

This resource interacts with API versions supported by the resource provider. You can specify the api_version as a resource parameter to use a specific version of the Azure REST API. If you don’t specify an API version, this resource uses the latest version available. For more information about API versioning, see the azure_generic_resource.

By default, this resource uses the azure_cloud global endpoint and default HTTP client settings. You can override these settings if you need to connect to a different Azure environment (such as Azure Government or Azure China). For more information about configuration options, see the resource pack README.

Syntax

An azure_service_bus_topics resource block returns all Azure Service Bus topics within a project.

name, namespace_name, and resource_group are the required parameters.

describe azure_service_bus_topics(resource_group: 'RESOURCE_GROUP', namespace_name: 'SERVICE_BUS_NAMESPACE_NAME') do
  #...
end

Parameters

resource_group (required)
Azure resource group where the targeted resource resides. MyResourceGroup.
namespace_name (required)
Name of the namespace where the topic resides.

Properties

ids
A list of resource IDs.

Field: id

names
A list of resource names.

Field: name

types
A list of the resource types.

Field: type

properties
A list of properties for all the Service Bus topics.

Field: properties

maxSizeInMegabytes
A list of maximum sizes of the topics.

Field: maxSizeInMegabytes

sizeInBytes
A list of sizes of the topics.

Field: sizeInBytes

statuses
A list of the status of a messaging entity.

Field: status

countDetails
A list of message count details.

Field: countDetails

Note

For information on using filter criteria on plural resources, see the documentation on FilterTable

Examples

Loop through Service Bus topics by their names:

azure_service_bus_topics(resource_group: 'RESOURCE_GROUP', namespace_name: 'SERVICE_BUS_NAMESPACE_NAME').names.each do |name|
  describe azure_service_bus_topic(resource_group: 'RESOURCE_GROUP', namespace_name: 'SERVICE_BUS_NAMESPACE_NAME', name: name) do
    it { should exist }
  end
end

Test that there are Service Bus topics that are successfully provisioned:

describe azure_service_bus_topics(resource_group: 'RESOURCE_GROUP', namespace_name: 'SERVICE_BUS_NAMESPACE_NAME').where(status: 'Active') do
  it { should exist }
end

Matchers

For a full list of available matchers, see our Universal Matchers page.

This resource has the following special matchers.

exists

# Should not exist if no Service Bus topics are present.

describe azure_service_bus_topics(resource_group: 'RESOURCE_GROUP', namespace_name: 'SERVICE_BUS_NAMESPACE_NAME') do
  it { should_not exist }
end

not_exists

# Should exist if the filter returns at least one Service Bus topic.

describe azure_service_bus_topics(resource_group: 'RESOURCE_GROUP', namespace_name: 'SERVICE_BUS_NAMESPACE_NAME') do
  it { should exist }
end

Azure permissions

Your Service Principal must be set up with at least a reader role on the subscription you wish to test.

Thank you for your feedback!

×