This is a short breakdown of information returned by the various importer object types. Obviously, each object type has to return its individual set of fields to match the resources given by Azure.
Any query returns at least these fields by the time of writing:
- name
- subscriptionId
- id
- location
- provider
- type
The 'name' is the name chosen in Microsoft Azure for the returned object. The 'subscriptionId' is just for convenience to group inventories if you have multiple subscriptions you are importing of. An 'id' is simply the returned id from Azure which is the path of the URI of the object in the API for most of times, which includes the subscription id itself. The 'id' field may not be unique. The 'location' field is the location returned from Azure and contains the Azure region the object is located in.
The 'type' field is just a static string derived from the API query to give a reference to the main API call that was used and to provide the IcingaWeb2 Director user with something to group results.
The 'metricDefinitions' field is a comma separated list with metric names available for this object type, if available. (cf. https://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/monitoring-supported-metrics?toc=/azure/azure-monitor/toc.json )
The Virtual machines object type does return these fields:
- name
- subscriptionId
- id
- location
- type
- osType
- osDiskName
- dataDisks
- network_interfaces_count
- publicIP
- privateIP
- cores
- resourceDiskSizeInMB
- memoryInMB
- maxDataDiscCount
- prosioningState
- metricDefinitions
- tags
- state
Please note that this reports the private and/or public IP of the first interface found.
The Virtual machines (disks) object type does return these fields:
- name
- subscriptionId
- id
- location
- type
- managedBy
- diskState
- provisioningState
- timeCreated
- diskSizeGB
- osType
- createOption
- imageReferenceId
- imageReferenceLun
- sourceUri
- sourceResourceId
- encryptionEnabled
- vmName
- vmUsageType
- vmCaching
- vmLocation
- vmProvisioningState
Please note, the interfaces will show only one ip configuration on the VM query class VirtualMachines. In opposition, this class "VirtualMachinesInterfaces" will create an interface object for each ip configuration found on the network interface. Therefore the object id man not be unique and I introduced a second field uniqueId, which is assembled from the interface id as well as the ip configuration id.
The Virtual machines (interfaces) object type does return these fields:
- name
- subscriptionId
- id
- type
- uniqueId
- location
- etag
- provisioningState
- macAddress
- enableAcceleratedNetworking
- enableIPForwarding
- networkSecurityGroupId
- dnsServers
- appliedDnsServers
- internalDnsNameLabel
- internalFqdn
- internalDomainNameSuffix
- virtualMachineId
- vmName
- vmLocation
- vmProvisioningState
- ipConfName
- ipConfId
- ipConfEtag
- ipConfProvisioningState
- ipConfPrivateIPAddress
- ipConfPrivateIPAllocationMethod
- ipConfSubnetId
- ipConfPrimary
- ipConfPrivateIPAddressVersion
- ipConfInUseWithService
- ipConfPublicIPAddressId
- ipConfPublicIPAddressName
- ipConfPublicIPAddress
- ipConfPublicIPAddressProvState
- ipConfPublicIPAddressVersion
- ipConfPublicIPAllocationMethod
- ipConfPublicIPAddressLocation
- ipConfPublicIPAddressIdleTimeoutInMinutes
- metricDefinitions
https://docs.microsoft.com/en-us/rest/api/load-balancer/loadbalancers/list
- name
- subscriptionId
- id
- type
- location
- provisioningState
- frontEndPublicIP
- metricDefinitions
https://docs.microsoft.com/en-us/rest/api/application-gateway/applicationgateways/list
- name
- subscriptionId
- id
- type
- location
- provisioningState
- frontEndPublicIP
- frontEndPrivateIP
- operationalState
- frontEndPort
- enabledHTTP2
- enabledWAF
- metricDefinitions
https://docs.microsoft.com/en-us/rest/api/expressroute/expressroutecircuits/list
- name
- subscriptionId
- id
- location
- type
- provisioningState
- bandwithInGbps
- circuitProvisioningState
- allowClassicOperations
- serviceProviderName
- serviceproviderProvisioningState
- serviceProviderBandwitdthInMbps 1)
- peeringlocation
- metricDefinitions
- etag
- expressRoutePort
- gatewayManagerEtag
- serviceKey
- serviceProviderNotes
- stag
- skuName
- skuTier
- skuFamily
- tags
- authorizations
- peerings
- was renamed from bandwithInMbps
https://docs.microsoft.com/en-us/rest/api/expressroute/expressroutecircuitauthorizations/list
- name
- id
- etags
- metricDefinitions
- type
- subscriptionId
- provisioningState
- expressRouteCircuitName
- authorizationKey
- authorizationUseStatus
https://docs.microsoft.com/en-us/rest/api/expressroute/expressroutecircuitpeerings/list
- name
- id
- etag
- metricDefinitions
- type
- subscriptionId
- expressRouteCircuitName
- provisioningState
- peeringType
- azureASN
- peerASN
- primaryPeerAddressPrefix
- primaryAzurePort
- secondaryPeerAddressPrefix
- secondaryAzurePort
- state
- statsPrimaryBytesIn
- statsPrimaryBytesOut
- statsSecondaryBytesIn
- statsSecondaryBytesOut
- vlanId
- lastModifiedBy
- gatewayManagerEtag
- sharedKey
https://docs.microsoft.com/en-us/rest/api/postgresql/servers/list
- name
- subscriptionId
- id
- location
- type
- version
- tier
- capacity
- sslEnforcement
- userVisibleState
- fqdn
- earliestRestoreDate
- storageMB
- backupRetentionDays
- geoRedundantBackup
- metricDefinitions
https://docs.microsoft.com/en-us/rest/api/postgresql/databases/listbyserver
- name
- subscriptionId
- id
- location - the location of the server
- type
- metricDefinitions - currently empty
- charset
- collation
https://docs.microsoft.com/en-us/rest/api/postgresql/configurations/listbyserver
- name
- subscriptionId
- id
- location
- type
- metricDefinitions
- allowedValues
- dataType
- defaultValue
- description
- source
- value
https://docs.microsoft.com/en-us/rest/api/postgresql/firewallrules/listbyserver
- name
- subscriptionId
- id
- type
- metricDefinitions
- endIpAddress
- startIpAddress
https://docs.microsoft.com/en-us/rest/api/postgresql/virtualnetworkrules/listbyserver
- name
- subscriptionId
- id
- type
- metricDefinitions
- ignoreMissingVnetServiceEndpoint
- state
- virtualNetworkSubnetId
https://docs.microsoft.com/en-us/rest/api/postgresql/serversecurityalertpolicies/get
- name
- subscriptionId
- id
- type
- metricDefinitions
- disabledAlerts
- emailAccountAdmins
- emailAddresses
- retentionDays
- state
- storageAccountAccessKey
- storageEndpoint
https://docs.microsoft.com/en-us/rest/api/postgresql/locationbasedperformancetier/list
This importer gets all locations from any MS PostgreSQL server (SAAS) available in the current subscription. On these locations, the location based performance tier API is queried and the result is presented here. "slo" stands for "service level objective".
- name
- subscriptionId
- id
- type
- metricDefinitions
- sloHardwareGeneration
- sloId
- sloMaxBackupRetentionDays
- sloMaxStorageMB
- sloMinBackupRetentionDays
- sloMinStorageMB
- sloVCore
The simple query for resource groups available in the given subscription might not be too usefull in Azure but on the one hand you could monitor the provisioning state. The primary reason for this to exist is as a helper for the dynamically generated configuration menu for all importers based on this Azure API director plugin.
- name
- subscriptionId
- id
- location
- type
- provisioningState
The simple query for subscriptions available with the given credentials. This might not be too usefull in Azure but on the one hand you could monitor the subscription state. The primary reason for this to exist is as a helper for the dynamically generated configuration menu for all importers based on this Azure API director plugin.
- name
- subscriptionId
- id
- type
- state
- locationPlacementId
- quotaId
- spendingLimit
https://docs.microsoft.com/en-us/rest/api/containerregistry/registries/list
- name
- id
- subscriptionId
- location
- type
- metricDefinitions
- tags
- skuName
- skuTier
- loginServer
- creationDate
- provisioningState
- statusDisplayStatus
- statusMessage
- statusTimestamp
- adminUserEnabled
- storageAccountId
- policiesQuarantinePolicyStatus
- policiesTrustPolicyStatus
- policiesTrustPolicyType