Sample code for 30+ languages & platforms
Perl

Azure List Storage Accounts

See more Azure Storage Accounts Examples

Demonstrates how to list Azure storage accounts.

Chilkat Perl Downloads

Perl
use chilkat();

$success = 0;

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

$http = chilkat::CkHttp->new();

# Load an OAuth2 access token previously fetched by this example:  Get Azure OAuth2 Access Token
$jsonToken = chilkat::CkJsonObject->new();
$success = $jsonToken->LoadFile("qa_data/tokens/azureToken.json");
# Assuming success..
$http->put_AuthToken($jsonToken->stringOf("access_token"));
print "AuthToken: " . $http->authToken() . "\r\n";

$http->put_Accept("application/json");

$url = "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Storage/storageAccounts?api-version=2018-11-01";

$jsonResp = $http->quickGetStr($url);
if ($http->get_LastMethodSuccess() != 1) {
    print $http->lastErrorText() . "\r\n";
    exit;
}

print "Response Status Code: " . $http->get_LastStatus() . "\r\n";

$json = chilkat::CkJsonObject->new();
$json->Load($jsonResp);
$json->put_EmitCompact(0);
print $json->emit() . "\r\n";

if ($http->get_LastStatus() != 200) {
    print "Failed." . "\r\n";
    exit;
}

# Sample output...
# (See the parsing code below..)
# 
# Use this online tool to generate parsing code from sample JSON: 
# Generate Parsing Code from JSON

# {
#   "value": [
#     {
#       "sku": {
#         "name": "Standard_LRS",
#         "tier": "Standard"
#       },
#       "kind": "Storage",
#       "id": "/subscriptions/6c42643b-ebef-45e0-b917-b3583b84a57f/resourceGroups/gchilkat/providers/Microsoft.Storage/storageAccounts/chilkat",
#       "name": "chilkat",
#       "type": "Microsoft.Storage/storageAccounts",
#       "location": "eastus",
#       "tags": {},
#       "properties": {
#         "networkAcls": {
#           "bypass": "AzureServices",
#           "virtualNetworkRules": [
#           ],
#           "ipRules": [
#           ],
#           "defaultAction": "Allow"
#         },
#         "supportsHttpsTrafficOnly": true,
#         "encryption": {
#           "services": {
#             "file": {
#               "enabled": true,
#               "lastEnabledTime": "2017-12-28T11:02:10.6840887Z"
#             },
#             "blob": {
#               "enabled": true,
#               "lastEnabledTime": "2017-12-28T11:02:10.6840887Z"
#             }
#           },
#           "keySource": "Microsoft.Storage"
#         },
#         "provisioningState": "Succeeded",
#         "creationTime": "2016-04-18T22:57:36.5377065Z",
#         "primaryEndpoints": {
#           "blob": "https://chilkat.blob.core.windows.net/",
#           "queue": "https://chilkat.queue.core.windows.net/",
#           "table": "https://chilkat.table.core.windows.net/",
#           "file": "https://chilkat.file.core.windows.net/"
#         },
#         "primaryLocation": "eastus",
#         "statusOfPrimary": "available"
#       }
#     }
#   ]
# }
# 

$i = 0;
$count_i = $json->SizeOfArray("value");
while ($i < $count_i) {
    $json->put_I($i);
    $skuName = $json->stringOf("value[i].sku.name");
    $skuTier = $json->stringOf("value[i].sku.tier");
    $kind = $json->stringOf("value[i].kind");
    $id = $json->stringOf("value[i].id");
    $name = $json->stringOf("value[i].name");
    $v_type = $json->stringOf("value[i].type");
    $location = $json->stringOf("value[i].location");
    $propertiesNetworkAclsBypass = $json->stringOf("value[i].properties.networkAcls.bypass");
    $propertiesNetworkAclsDefaultAction = $json->stringOf("value[i].properties.networkAcls.defaultAction");
    $propertiesSupportsHttpsTrafficOnly = $json->BoolOf("value[i].properties.supportsHttpsTrafficOnly");
    $propertiesEncryptionServicesFileEnabled = $json->BoolOf("value[i].properties.encryption.services.file.enabled");
    $propertiesEncryptionServicesFileLastEnabledTime = $json->stringOf("value[i].properties.encryption.services.file.lastEnabledTime");
    $propertiesEncryptionServicesBlobEnabled = $json->BoolOf("value[i].properties.encryption.services.blob.enabled");
    $propertiesEncryptionServicesBlobLastEnabledTime = $json->stringOf("value[i].properties.encryption.services.blob.lastEnabledTime");
    $propertiesEncryptionKeySource = $json->stringOf("value[i].properties.encryption.keySource");
    $propertiesProvisioningState = $json->stringOf("value[i].properties.provisioningState");
    $propertiesCreationTime = $json->stringOf("value[i].properties.creationTime");
    $propertiesPrimaryEndpointsBlob = $json->stringOf("value[i].properties.primaryEndpoints.blob");
    $propertiesPrimaryEndpointsQueue = $json->stringOf("value[i].properties.primaryEndpoints.queue");
    $propertiesPrimaryEndpointsTable = $json->stringOf("value[i].properties.primaryEndpoints.table");
    $propertiesPrimaryEndpointsFile = $json->stringOf("value[i].properties.primaryEndpoints.file");
    $propertiesPrimaryLocation = $json->stringOf("value[i].properties.primaryLocation");
    $propertiesStatusOfPrimary = $json->stringOf("value[i].properties.statusOfPrimary");
    $i = $i + 1;
}