Chilkat Online Tools

CreateVolume SQL Server Example

Amazon FSx

CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @iTmp0 int
    DECLARE @sTmp0 nvarchar(max)
    -- This example requires the Chilkat API to have been previously unlocked.
    -- See Global Unlock Sample for sample code.

    DECLARE @rest int
    EXEC @hr = sp_OACreate 'Chilkat_9_5_0.Rest', @rest OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    DECLARE @success int

    DECLARE @authAws int
    EXEC @hr = sp_OACreate 'Chilkat_9_5_0.AuthAws', @authAws OUT

    EXEC sp_OASetProperty @authAws, 'AccessKey', 'AWS_ACCESS_KEY'
    EXEC sp_OASetProperty @authAws, 'SecretKey', 'AWS_SECRET_KEY'

    -- Don't forget to change the region to your particular region. (Also make the same change in the call to Connect below.)
    EXEC sp_OASetProperty @authAws, 'Region', 'us-west-2'
    EXEC sp_OASetProperty @authAws, 'ServiceName', 'fsx'
    -- SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
    EXEC sp_OAMethod @rest, 'SetAuthAws', @success OUT, @authAws

    -- URL: https://fsx.us-west-2.amazonaws.com/
    -- Use the same region as specified above.
    EXEC sp_OAMethod @rest, 'Connect', @success OUT, 'fsx.us-west-2.amazonaws.com', 443, 1, 1
    IF @success <> 1
      BEGIN

        EXEC sp_OAGetProperty @rest, 'ConnectFailReason', @iTmp0 OUT
        PRINT 'ConnectFailReason: ' + @iTmp0
        EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @rest
        EXEC @hr = sp_OADestroy @authAws
        RETURN
      END

    -- The following code creates the JSON request body.
    -- The JSON created by this code is shown below.

    -- Use this online tool to generate code from sample JSON:
    -- Generate Code to Create JSON

    DECLARE @json int
    EXEC @hr = sp_OACreate 'Chilkat_9_5_0.JsonObject', @json OUT

    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'ClientRequestToken', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'Name', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'OntapConfiguration.JunctionPath', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'OntapConfiguration.SecurityStyle', 'string'
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'OntapConfiguration.SizeInMegabytes', 123
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'OntapConfiguration.StorageEfficiencyEnabled', 123
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'OntapConfiguration.StorageVirtualMachineId', 'string'
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'OntapConfiguration.TieringPolicy.CoolingPeriod', 123
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'OntapConfiguration.TieringPolicy.Name', 'string'
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'OpenZFSConfiguration.CopyTagsToSnapshots', 123
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'OpenZFSConfiguration.DataCompressionType', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'OpenZFSConfiguration.NfsExports[0].ClientConfigurations[0].Clients', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'OpenZFSConfiguration.NfsExports[0].ClientConfigurations[0].Options[0]', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'OpenZFSConfiguration.OriginSnapshot.CopyStrategy', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'OpenZFSConfiguration.OriginSnapshot.SnapshotARN', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'OpenZFSConfiguration.ParentVolumeId', 'string'
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'OpenZFSConfiguration.ReadOnly', 123
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'OpenZFSConfiguration.RecordSizeKiB', 123
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'OpenZFSConfiguration.StorageCapacityQuotaGiB', 123
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'OpenZFSConfiguration.StorageCapacityReservationGiB', 123
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'OpenZFSConfiguration.UserAndGroupQuotas[0].Id', 123
    EXEC sp_OAMethod @json, 'UpdateInt', @success OUT, 'OpenZFSConfiguration.UserAndGroupQuotas[0].StorageCapacityQuotaGiB', 123
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'OpenZFSConfiguration.UserAndGroupQuotas[0].Type', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'Tags[0].Key', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'Tags[0].Value', 'string'
    EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'VolumeType', 'string'

    -- The JSON request body created by the above code:

    -- {
    --   "ClientRequestToken": "string",
    --   "Name": "string",
    --   "OntapConfiguration": {
    --     "JunctionPath": "string",
    --     "SecurityStyle": "string",
    --     "SizeInMegabytes": number,
    --     "StorageEfficiencyEnabled": boolean,
    --     "StorageVirtualMachineId": "string",
    --     "TieringPolicy": {
    --       "CoolingPeriod": number,
    --       "Name": "string"
    --     }
    --   },
    --   "OpenZFSConfiguration": {
    --     "CopyTagsToSnapshots": boolean,
    --     "DataCompressionType": "string",
    --     "NfsExports": [
    --       {
    --         "ClientConfigurations": [
    --           {
    --             "Clients": "string",
    --             "Options": [
    --               "string"
    --             ]
    --           }
    --         ]
    --       }
    --     ],
    --     "OriginSnapshot": {
    --       "CopyStrategy": "string",
    --       "SnapshotARN": "string"
    --     },
    --     "ParentVolumeId": "string",
    --     "ReadOnly": boolean,
    --     "RecordSizeKiB": number,
    --     "StorageCapacityQuotaGiB": number,
    --     "StorageCapacityReservationGiB": number,
    --     "UserAndGroupQuotas": [
    --       {
    --         "Id": number,
    --         "StorageCapacityQuotaGiB": number,
    --         "Type": "string"
    --       }
    --     ]
    --   },
    --   "Tags": [
    --     {
    --       "Key": "string",
    --       "Value": "string"
    --     }
    --   ],
    --   "VolumeType": "string"
    -- }

    EXEC sp_OAMethod @rest, 'AddHeader', @success OUT, 'Content-Type', 'application/x-amz-json-1.1'
    EXEC sp_OAMethod @rest, 'AddHeader', @success OUT, 'X-Amz-Target', 'AWSSimbaAPIService_v20180301.CreateVolume'

    DECLARE @sbRequestBody int
    EXEC @hr = sp_OACreate 'Chilkat_9_5_0.StringBuilder', @sbRequestBody OUT

    EXEC sp_OAMethod @json, 'EmitSb', @success OUT, @sbRequestBody
    DECLARE @sbResponseBody int
    EXEC @hr = sp_OACreate 'Chilkat_9_5_0.StringBuilder', @sbResponseBody OUT

    EXEC sp_OAMethod @rest, 'FullRequestSb', @success OUT, 'POST', '/', @sbRequestBody, @sbResponseBody
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @rest
        EXEC @hr = sp_OADestroy @authAws
        EXEC @hr = sp_OADestroy @json
        EXEC @hr = sp_OADestroy @sbRequestBody
        EXEC @hr = sp_OADestroy @sbResponseBody
        RETURN
      END
    DECLARE @respStatusCode int
    EXEC sp_OAGetProperty @rest, 'ResponseStatusCode', @respStatusCode OUT

    PRINT 'response status code = ' + @respStatusCode
    IF @respStatusCode <> 200
      BEGIN

        PRINT 'Response Header:'
        EXEC sp_OAGetProperty @rest, 'ResponseHeader', @sTmp0 OUT
        PRINT @sTmp0

        PRINT 'Response Body:'
        EXEC sp_OAMethod @sbResponseBody, 'GetAsString', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @rest
        EXEC @hr = sp_OADestroy @authAws
        EXEC @hr = sp_OADestroy @json
        EXEC @hr = sp_OADestroy @sbRequestBody
        EXEC @hr = sp_OADestroy @sbResponseBody
        RETURN
      END

    DECLARE @jResp int
    EXEC @hr = sp_OACreate 'Chilkat_9_5_0.JsonObject', @jResp OUT

    EXEC sp_OAMethod @jResp, 'LoadSb', @success OUT, @sbResponseBody

    -- The following code parses the JSON response.
    -- A sample JSON response is shown below the sample code.

    -- Use this online tool to generate parsing code from sample JSON:
    -- Generate Parsing Code from JSON

    DECLARE @AdministrativeActionType nvarchar(max)

    DECLARE @FailureDetailsMessage nvarchar(max)

    DECLARE @ProgressPercent int

    DECLARE @RequestTime int

    DECLARE @Status nvarchar(max)

    DECLARE @TargetFileSystemValuesCreationTime int

    DECLARE @DNSName nvarchar(max)

    DECLARE @TargetFileSystemValuesFileSystemId nvarchar(max)

    DECLARE @FileSystemType nvarchar(max)

    DECLARE @FileSystemTypeVersion nvarchar(max)

    DECLARE @KmsKeyId nvarchar(max)

    DECLARE @TargetFileSystemValuesLifecycle nvarchar(max)

    DECLARE @AutomaticBackupRetentionDays int

    DECLARE @CopyTagsToBackups int

    DECLARE @DailyAutomaticBackupStartTime nvarchar(max)

    DECLARE @LustreConfigurationDataCompressionType nvarchar(max)

    DECLARE @AutoImportPolicy nvarchar(max)

    DECLARE @ExportPath nvarchar(max)

    DECLARE @ImportedFileChunkSize int

    DECLARE @ImportPath nvarchar(max)

    DECLARE @DataRepositoryConfigurationLifecycle nvarchar(max)

    DECLARE @DeploymentType nvarchar(max)

    DECLARE @DriveCacheType nvarchar(max)

    DECLARE @Destination nvarchar(max)

    DECLARE @Level nvarchar(max)

    DECLARE @MountName nvarchar(max)

    DECLARE @PerUnitStorageThroughput int

    DECLARE @WeeklyMaintenanceStartTime nvarchar(max)

    DECLARE @OntapConfigurationAutomaticBackupRetentionDays int

    DECLARE @OntapConfigurationDailyAutomaticBackupStartTime nvarchar(max)

    DECLARE @OntapConfigurationDeploymentType nvarchar(max)

    DECLARE @Iops int

    DECLARE @Mode nvarchar(max)

    DECLARE @EndpointIpAddressRange nvarchar(max)

    DECLARE @InterclusterDNSName nvarchar(max)

    DECLARE @ManagementDNSName nvarchar(max)

    DECLARE @PreferredSubnetId nvarchar(max)

    DECLARE @ThroughputCapacity int

    DECLARE @OntapConfigurationWeeklyMaintenanceStartTime nvarchar(max)

    DECLARE @OpenZFSConfigurationAutomaticBackupRetentionDays int

    DECLARE @OpenZFSConfigurationCopyTagsToBackups int

    DECLARE @CopyTagsToVolumes int

    DECLARE @OpenZFSConfigurationDailyAutomaticBackupStartTime nvarchar(max)

    DECLARE @OpenZFSConfigurationDeploymentType nvarchar(max)

    DECLARE @DiskIopsConfigurationIops int

    DECLARE @DiskIopsConfigurationMode nvarchar(max)

    DECLARE @RootVolumeId nvarchar(max)

    DECLARE @OpenZFSConfigurationThroughputCapacity int

    DECLARE @OpenZFSConfigurationWeeklyMaintenanceStartTime nvarchar(max)

    DECLARE @OwnerId nvarchar(max)

    DECLARE @TargetFileSystemValuesResourceARN nvarchar(max)

    DECLARE @StorageCapacity int

    DECLARE @StorageType nvarchar(max)

    DECLARE @VpcId nvarchar(max)

    DECLARE @ActiveDirectoryId nvarchar(max)

    DECLARE @AuditLogDestination nvarchar(max)

    DECLARE @FileAccessAuditLogLevel nvarchar(max)

    DECLARE @FileShareAccessAuditLogLevel nvarchar(max)

    DECLARE @WindowsConfigurationAutomaticBackupRetentionDays int

    DECLARE @WindowsConfigurationCopyTagsToBackups int

    DECLARE @WindowsConfigurationDailyAutomaticBackupStartTime nvarchar(max)

    DECLARE @WindowsConfigurationDeploymentType nvarchar(max)

    DECLARE @PreferredFileServerIp nvarchar(max)

    DECLARE @WindowsConfigurationPreferredSubnetId nvarchar(max)

    DECLARE @RemoteAdministrationEndpoint nvarchar(max)

    DECLARE @DomainName nvarchar(max)

    DECLARE @FileSystemAdministratorsGroup nvarchar(max)

    DECLARE @OrganizationalUnitDistinguishedName nvarchar(max)

    DECLARE @UserName nvarchar(max)

    DECLARE @WindowsConfigurationThroughputCapacity int

    DECLARE @WindowsConfigurationWeeklyMaintenanceStartTime nvarchar(max)

    DECLARE @TargetSnapshotValuesCreationTime int

    DECLARE @TargetSnapshotValuesLifecycle nvarchar(max)

    DECLARE @LifecycleTransitionReasonMessage nvarchar(max)

    DECLARE @TargetSnapshotValuesName nvarchar(max)

    DECLARE @TargetSnapshotValuesResourceARN nvarchar(max)

    DECLARE @SnapshotId nvarchar(max)

    DECLARE @TargetSnapshotValuesVolumeId nvarchar(max)

    DECLARE @TargetVolumeValues nvarchar(max)

    DECLARE @j int

    DECLARE @count_j int

    DECLARE @strVal nvarchar(max)

    DECLARE @Key nvarchar(max)

    DECLARE @Value nvarchar(max)

    DECLARE @Clients nvarchar(max)

    DECLARE @k int

    DECLARE @count_k int

    DECLARE @Id int

    DECLARE @v_Type nvarchar(max)

    DECLARE @CreationTime int
    EXEC sp_OAMethod @jResp, 'IntOf', @CreationTime OUT, 'Volume.CreationTime'
    DECLARE @FileSystemId nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @FileSystemId OUT, 'Volume.FileSystemId'
    DECLARE @Lifecycle nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @Lifecycle OUT, 'Volume.Lifecycle'
    DECLARE @Message nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @Message OUT, 'Volume.LifecycleTransitionReason.Message'
    DECLARE @Name nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @Name OUT, 'Volume.Name'
    DECLARE @FlexCacheEndpointType nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @FlexCacheEndpointType OUT, 'Volume.OntapConfiguration.FlexCacheEndpointType'
    DECLARE @JunctionPath nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @JunctionPath OUT, 'Volume.OntapConfiguration.JunctionPath'
    DECLARE @OntapVolumeType nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @OntapVolumeType OUT, 'Volume.OntapConfiguration.OntapVolumeType'
    DECLARE @SecurityStyle nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @SecurityStyle OUT, 'Volume.OntapConfiguration.SecurityStyle'
    DECLARE @SizeInMegabytes int
    EXEC sp_OAMethod @jResp, 'IntOf', @SizeInMegabytes OUT, 'Volume.OntapConfiguration.SizeInMegabytes'
    DECLARE @StorageEfficiencyEnabled int
    EXEC sp_OAMethod @jResp, 'IntOf', @StorageEfficiencyEnabled OUT, 'Volume.OntapConfiguration.StorageEfficiencyEnabled'
    DECLARE @StorageVirtualMachineId nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @StorageVirtualMachineId OUT, 'Volume.OntapConfiguration.StorageVirtualMachineId'
    DECLARE @StorageVirtualMachineRoot int
    EXEC sp_OAMethod @jResp, 'IntOf', @StorageVirtualMachineRoot OUT, 'Volume.OntapConfiguration.StorageVirtualMachineRoot'
    DECLARE @CoolingPeriod int
    EXEC sp_OAMethod @jResp, 'IntOf', @CoolingPeriod OUT, 'Volume.OntapConfiguration.TieringPolicy.CoolingPeriod'
    DECLARE @TieringPolicyName nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @TieringPolicyName OUT, 'Volume.OntapConfiguration.TieringPolicy.Name'
    DECLARE @UUID nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @UUID OUT, 'Volume.OntapConfiguration.UUID'
    DECLARE @CopyTagsToSnapshots int
    EXEC sp_OAMethod @jResp, 'IntOf', @CopyTagsToSnapshots OUT, 'Volume.OpenZFSConfiguration.CopyTagsToSnapshots'
    DECLARE @DataCompressionType nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @DataCompressionType OUT, 'Volume.OpenZFSConfiguration.DataCompressionType'
    DECLARE @CopyStrategy nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @CopyStrategy OUT, 'Volume.OpenZFSConfiguration.OriginSnapshot.CopyStrategy'
    DECLARE @SnapshotARN nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @SnapshotARN OUT, 'Volume.OpenZFSConfiguration.OriginSnapshot.SnapshotARN'
    DECLARE @ParentVolumeId nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @ParentVolumeId OUT, 'Volume.OpenZFSConfiguration.ParentVolumeId'
    DECLARE @ReadOnly int
    EXEC sp_OAMethod @jResp, 'IntOf', @ReadOnly OUT, 'Volume.OpenZFSConfiguration.ReadOnly'
    DECLARE @RecordSizeKiB int
    EXEC sp_OAMethod @jResp, 'IntOf', @RecordSizeKiB OUT, 'Volume.OpenZFSConfiguration.RecordSizeKiB'
    DECLARE @StorageCapacityQuotaGiB int
    EXEC sp_OAMethod @jResp, 'IntOf', @StorageCapacityQuotaGiB OUT, 'Volume.OpenZFSConfiguration.StorageCapacityQuotaGiB'
    DECLARE @StorageCapacityReservationGiB int
    EXEC sp_OAMethod @jResp, 'IntOf', @StorageCapacityReservationGiB OUT, 'Volume.OpenZFSConfiguration.StorageCapacityReservationGiB'
    DECLARE @VolumePath nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @VolumePath OUT, 'Volume.OpenZFSConfiguration.VolumePath'
    DECLARE @ResourceARN nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @ResourceARN OUT, 'Volume.ResourceARN'
    DECLARE @VolumeId nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @VolumeId OUT, 'Volume.VolumeId'
    DECLARE @VolumeType nvarchar(max)
    EXEC sp_OAMethod @jResp, 'StringOf', @VolumeType OUT, 'Volume.VolumeType'
    DECLARE @i int
    SELECT @i = 0
    DECLARE @count_i int
    EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_i OUT, 'Volume.AdministrativeActions'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jResp, 'I', @i
        EXEC sp_OAMethod @jResp, 'StringOf', @AdministrativeActionType OUT, 'Volume.AdministrativeActions[i].AdministrativeActionType'
        EXEC sp_OAMethod @jResp, 'StringOf', @FailureDetailsMessage OUT, 'Volume.AdministrativeActions[i].FailureDetails.Message'
        EXEC sp_OAMethod @jResp, 'IntOf', @ProgressPercent OUT, 'Volume.AdministrativeActions[i].ProgressPercent'
        EXEC sp_OAMethod @jResp, 'IntOf', @RequestTime OUT, 'Volume.AdministrativeActions[i].RequestTime'
        EXEC sp_OAMethod @jResp, 'StringOf', @Status OUT, 'Volume.AdministrativeActions[i].Status'
        EXEC sp_OAMethod @jResp, 'IntOf', @TargetFileSystemValuesCreationTime OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.CreationTime'
        EXEC sp_OAMethod @jResp, 'StringOf', @DNSName OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.DNSName'
        EXEC sp_OAMethod @jResp, 'StringOf', @FailureDetailsMessage OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.FailureDetails.Message'
        EXEC sp_OAMethod @jResp, 'StringOf', @TargetFileSystemValuesFileSystemId OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.FileSystemId'
        EXEC sp_OAMethod @jResp, 'StringOf', @FileSystemType OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.FileSystemType'
        EXEC sp_OAMethod @jResp, 'StringOf', @FileSystemTypeVersion OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.FileSystemTypeVersion'
        EXEC sp_OAMethod @jResp, 'StringOf', @KmsKeyId OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.KmsKeyId'
        EXEC sp_OAMethod @jResp, 'StringOf', @TargetFileSystemValuesLifecycle OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.Lifecycle'
        EXEC sp_OAMethod @jResp, 'IntOf', @AutomaticBackupRetentionDays OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.AutomaticBackupRetentionDays'
        EXEC sp_OAMethod @jResp, 'IntOf', @CopyTagsToBackups OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.CopyTagsToBackups'
        EXEC sp_OAMethod @jResp, 'StringOf', @DailyAutomaticBackupStartTime OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.DailyAutomaticBackupStartTime'
        EXEC sp_OAMethod @jResp, 'StringOf', @LustreConfigurationDataCompressionType OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.DataCompressionType'
        EXEC sp_OAMethod @jResp, 'StringOf', @AutoImportPolicy OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.DataRepositoryConfiguration.AutoImportPolicy'
        EXEC sp_OAMethod @jResp, 'StringOf', @ExportPath OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.DataRepositoryConfiguration.ExportPath'
        EXEC sp_OAMethod @jResp, 'StringOf', @FailureDetailsMessage OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.DataRepositoryConfiguration.FailureDetails.Message'
        EXEC sp_OAMethod @jResp, 'IntOf', @ImportedFileChunkSize OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.DataRepositoryConfiguration.ImportedFileChunkSize'
        EXEC sp_OAMethod @jResp, 'StringOf', @ImportPath OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.DataRepositoryConfiguration.ImportPath'
        EXEC sp_OAMethod @jResp, 'StringOf', @DataRepositoryConfigurationLifecycle OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.DataRepositoryConfiguration.Lifecycle'
        EXEC sp_OAMethod @jResp, 'StringOf', @DeploymentType OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.DeploymentType'
        EXEC sp_OAMethod @jResp, 'StringOf', @DriveCacheType OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.DriveCacheType'
        EXEC sp_OAMethod @jResp, 'StringOf', @Destination OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.LogConfiguration.Destination'
        EXEC sp_OAMethod @jResp, 'StringOf', @Level OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.LogConfiguration.Level'
        EXEC sp_OAMethod @jResp, 'StringOf', @MountName OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.MountName'
        EXEC sp_OAMethod @jResp, 'IntOf', @PerUnitStorageThroughput OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.PerUnitStorageThroughput'
        EXEC sp_OAMethod @jResp, 'StringOf', @WeeklyMaintenanceStartTime OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.LustreConfiguration.WeeklyMaintenanceStartTime'
        EXEC sp_OAMethod @jResp, 'IntOf', @OntapConfigurationAutomaticBackupRetentionDays OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.AutomaticBackupRetentionDays'
        EXEC sp_OAMethod @jResp, 'StringOf', @OntapConfigurationDailyAutomaticBackupStartTime OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.DailyAutomaticBackupStartTime'
        EXEC sp_OAMethod @jResp, 'StringOf', @OntapConfigurationDeploymentType OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.DeploymentType'
        EXEC sp_OAMethod @jResp, 'IntOf', @Iops OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.DiskIopsConfiguration.Iops'
        EXEC sp_OAMethod @jResp, 'StringOf', @Mode OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.DiskIopsConfiguration.Mode'
        EXEC sp_OAMethod @jResp, 'StringOf', @EndpointIpAddressRange OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.EndpointIpAddressRange'
        EXEC sp_OAMethod @jResp, 'StringOf', @InterclusterDNSName OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.Endpoints.Intercluster.DNSName'
        EXEC sp_OAMethod @jResp, 'StringOf', @ManagementDNSName OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.Endpoints.Management.DNSName'
        EXEC sp_OAMethod @jResp, 'StringOf', @PreferredSubnetId OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.PreferredSubnetId'
        EXEC sp_OAMethod @jResp, 'IntOf', @ThroughputCapacity OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.ThroughputCapacity'
        EXEC sp_OAMethod @jResp, 'StringOf', @OntapConfigurationWeeklyMaintenanceStartTime OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.WeeklyMaintenanceStartTime'
        EXEC sp_OAMethod @jResp, 'IntOf', @OpenZFSConfigurationAutomaticBackupRetentionDays OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OpenZFSConfiguration.AutomaticBackupRetentionDays'
        EXEC sp_OAMethod @jResp, 'IntOf', @OpenZFSConfigurationCopyTagsToBackups OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OpenZFSConfiguration.CopyTagsToBackups'
        EXEC sp_OAMethod @jResp, 'IntOf', @CopyTagsToVolumes OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OpenZFSConfiguration.CopyTagsToVolumes'
        EXEC sp_OAMethod @jResp, 'StringOf', @OpenZFSConfigurationDailyAutomaticBackupStartTime OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OpenZFSConfiguration.DailyAutomaticBackupStartTime'
        EXEC sp_OAMethod @jResp, 'StringOf', @OpenZFSConfigurationDeploymentType OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OpenZFSConfiguration.DeploymentType'
        EXEC sp_OAMethod @jResp, 'IntOf', @DiskIopsConfigurationIops OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OpenZFSConfiguration.DiskIopsConfiguration.Iops'
        EXEC sp_OAMethod @jResp, 'StringOf', @DiskIopsConfigurationMode OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OpenZFSConfiguration.DiskIopsConfiguration.Mode'
        EXEC sp_OAMethod @jResp, 'StringOf', @RootVolumeId OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OpenZFSConfiguration.RootVolumeId'
        EXEC sp_OAMethod @jResp, 'IntOf', @OpenZFSConfigurationThroughputCapacity OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OpenZFSConfiguration.ThroughputCapacity'
        EXEC sp_OAMethod @jResp, 'StringOf', @OpenZFSConfigurationWeeklyMaintenanceStartTime OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OpenZFSConfiguration.WeeklyMaintenanceStartTime'
        EXEC sp_OAMethod @jResp, 'StringOf', @OwnerId OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OwnerId'
        EXEC sp_OAMethod @jResp, 'StringOf', @TargetFileSystemValuesResourceARN OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.ResourceARN'
        EXEC sp_OAMethod @jResp, 'IntOf', @StorageCapacity OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.StorageCapacity'
        EXEC sp_OAMethod @jResp, 'StringOf', @StorageType OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.StorageType'
        EXEC sp_OAMethod @jResp, 'StringOf', @VpcId OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.VpcId'
        EXEC sp_OAMethod @jResp, 'StringOf', @ActiveDirectoryId OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.ActiveDirectoryId'
        EXEC sp_OAMethod @jResp, 'StringOf', @AuditLogDestination OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.AuditLogConfiguration.AuditLogDestination'
        EXEC sp_OAMethod @jResp, 'StringOf', @FileAccessAuditLogLevel OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.AuditLogConfiguration.FileAccessAuditLogLevel'
        EXEC sp_OAMethod @jResp, 'StringOf', @FileShareAccessAuditLogLevel OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.AuditLogConfiguration.FileShareAccessAuditLogLevel'
        EXEC sp_OAMethod @jResp, 'IntOf', @WindowsConfigurationAutomaticBackupRetentionDays OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.AutomaticBackupRetentionDays'
        EXEC sp_OAMethod @jResp, 'IntOf', @WindowsConfigurationCopyTagsToBackups OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.CopyTagsToBackups'
        EXEC sp_OAMethod @jResp, 'StringOf', @WindowsConfigurationDailyAutomaticBackupStartTime OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.DailyAutomaticBackupStartTime'
        EXEC sp_OAMethod @jResp, 'StringOf', @WindowsConfigurationDeploymentType OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.DeploymentType'
        EXEC sp_OAMethod @jResp, 'StringOf', @PreferredFileServerIp OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.PreferredFileServerIp'
        EXEC sp_OAMethod @jResp, 'StringOf', @WindowsConfigurationPreferredSubnetId OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.PreferredSubnetId'
        EXEC sp_OAMethod @jResp, 'StringOf', @RemoteAdministrationEndpoint OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.RemoteAdministrationEndpoint'
        EXEC sp_OAMethod @jResp, 'StringOf', @DomainName OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.SelfManagedActiveDirectoryConfiguration.DomainName'
        EXEC sp_OAMethod @jResp, 'StringOf', @FileSystemAdministratorsGroup OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.SelfManagedActiveDirectoryConfiguration.FileSystemAdministratorsGroup'
        EXEC sp_OAMethod @jResp, 'StringOf', @OrganizationalUnitDistinguishedName OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.SelfManagedActiveDirectoryConfiguration.OrganizationalUnitDistinguishedName'
        EXEC sp_OAMethod @jResp, 'StringOf', @UserName OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.SelfManagedActiveDirectoryConfiguration.UserName'
        EXEC sp_OAMethod @jResp, 'IntOf', @WindowsConfigurationThroughputCapacity OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.ThroughputCapacity'
        EXEC sp_OAMethod @jResp, 'StringOf', @WindowsConfigurationWeeklyMaintenanceStartTime OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.WeeklyMaintenanceStartTime'
        EXEC sp_OAMethod @jResp, 'IntOf', @TargetSnapshotValuesCreationTime OUT, 'Volume.AdministrativeActions[i].TargetSnapshotValues.CreationTime'
        EXEC sp_OAMethod @jResp, 'StringOf', @TargetSnapshotValuesLifecycle OUT, 'Volume.AdministrativeActions[i].TargetSnapshotValues.Lifecycle'
        EXEC sp_OAMethod @jResp, 'StringOf', @LifecycleTransitionReasonMessage OUT, 'Volume.AdministrativeActions[i].TargetSnapshotValues.LifecycleTransitionReason.Message'
        EXEC sp_OAMethod @jResp, 'StringOf', @TargetSnapshotValuesName OUT, 'Volume.AdministrativeActions[i].TargetSnapshotValues.Name'
        EXEC sp_OAMethod @jResp, 'StringOf', @TargetSnapshotValuesResourceARN OUT, 'Volume.AdministrativeActions[i].TargetSnapshotValues.ResourceARN'
        EXEC sp_OAMethod @jResp, 'StringOf', @SnapshotId OUT, 'Volume.AdministrativeActions[i].TargetSnapshotValues.SnapshotId'
        EXEC sp_OAMethod @jResp, 'StringOf', @TargetSnapshotValuesVolumeId OUT, 'Volume.AdministrativeActions[i].TargetSnapshotValues.VolumeId'
        EXEC sp_OAMethod @jResp, 'StringOf', @TargetVolumeValues OUT, 'Volume.AdministrativeActions[i].TargetVolumeValues'
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.AdministrativeActions'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @strVal OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.AdministrativeActions[j]'
            SELECT @j = @j + 1
          END
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.NetworkInterfaceIds'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @strVal OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.NetworkInterfaceIds[j]'
            SELECT @j = @j + 1
          END
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.Endpoints.Intercluster.IpAddresses'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @strVal OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.Endpoints.Intercluster.IpAddresses[j]'
            SELECT @j = @j + 1
          END
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.Endpoints.Management.IpAddresses'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @strVal OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.Endpoints.Management.IpAddresses[j]'
            SELECT @j = @j + 1
          END
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.RouteTableIds'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @strVal OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.OntapConfiguration.RouteTableIds[j]'
            SELECT @j = @j + 1
          END
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.SubnetIds'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @strVal OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.SubnetIds[j]'
            SELECT @j = @j + 1
          END
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.Tags'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @Key OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.Tags[j].Key'
            EXEC sp_OAMethod @jResp, 'StringOf', @Value OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.Tags[j].Value'
            SELECT @j = @j + 1
          END
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.Aliases'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @Lifecycle OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.Aliases[j].Lifecycle'
            EXEC sp_OAMethod @jResp, 'StringOf', @Name OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.Aliases[j].Name'
            SELECT @j = @j + 1
          END
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.MaintenanceOperationsInProgress'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @strVal OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.MaintenanceOperationsInProgress[j]'
            SELECT @j = @j + 1
          END
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.SelfManagedActiveDirectoryConfiguration.DnsIps'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @strVal OUT, 'Volume.AdministrativeActions[i].TargetFileSystemValues.WindowsConfiguration.SelfManagedActiveDirectoryConfiguration.DnsIps[j]'
            SELECT @j = @j + 1
          END
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.AdministrativeActions[i].TargetSnapshotValues.AdministrativeActions'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @strVal OUT, 'Volume.AdministrativeActions[i].TargetSnapshotValues.AdministrativeActions[j]'
            SELECT @j = @j + 1
          END
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.AdministrativeActions[i].TargetSnapshotValues.Tags'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @Key OUT, 'Volume.AdministrativeActions[i].TargetSnapshotValues.Tags[j].Key'
            EXEC sp_OAMethod @jResp, 'StringOf', @Value OUT, 'Volume.AdministrativeActions[i].TargetSnapshotValues.Tags[j].Value'
            SELECT @j = @j + 1
          END
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_i OUT, 'Volume.OpenZFSConfiguration.NfsExports'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jResp, 'I', @i
        SELECT @j = 0
        EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_j OUT, 'Volume.OpenZFSConfiguration.NfsExports[i].ClientConfigurations'
        WHILE @j < @count_j
          BEGIN
            EXEC sp_OASetProperty @jResp, 'J', @j
            EXEC sp_OAMethod @jResp, 'StringOf', @Clients OUT, 'Volume.OpenZFSConfiguration.NfsExports[i].ClientConfigurations[j].Clients'
            SELECT @k = 0
            EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_k OUT, 'Volume.OpenZFSConfiguration.NfsExports[i].ClientConfigurations[j].Options'
            WHILE @k < @count_k
              BEGIN
                EXEC sp_OASetProperty @jResp, 'K', @k
                EXEC sp_OAMethod @jResp, 'StringOf', @strVal OUT, 'Volume.OpenZFSConfiguration.NfsExports[i].ClientConfigurations[j].Options[k]'
                SELECT @k = @k + 1
              END
            SELECT @j = @j + 1
          END
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_i OUT, 'Volume.OpenZFSConfiguration.UserAndGroupQuotas'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jResp, 'I', @i
        EXEC sp_OAMethod @jResp, 'IntOf', @Id OUT, 'Volume.OpenZFSConfiguration.UserAndGroupQuotas[i].Id'
        EXEC sp_OAMethod @jResp, 'IntOf', @StorageCapacityQuotaGiB OUT, 'Volume.OpenZFSConfiguration.UserAndGroupQuotas[i].StorageCapacityQuotaGiB'
        EXEC sp_OAMethod @jResp, 'StringOf', @v_Type OUT, 'Volume.OpenZFSConfiguration.UserAndGroupQuotas[i].Type'
        SELECT @i = @i + 1
      END
    SELECT @i = 0
    EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_i OUT, 'Volume.Tags'
    WHILE @i < @count_i
      BEGIN
        EXEC sp_OASetProperty @jResp, 'I', @i
        EXEC sp_OAMethod @jResp, 'StringOf', @Key OUT, 'Volume.Tags[i].Key'
        EXEC sp_OAMethod @jResp, 'StringOf', @Value OUT, 'Volume.Tags[i].Value'
        SELECT @i = @i + 1
      END

    -- A sample JSON response body parsed by the above code:

    -- {
    --   "Volume": {
    --     "AdministrativeActions": [
    --       {
    --         "AdministrativeActionType": "string",
    --         "FailureDetails": {
    --           "Message": "string"
    --         },
    --         "ProgressPercent": number,
    --         "RequestTime": number,
    --         "Status": "string",
    --         "TargetFileSystemValues": {
    --           "AdministrativeActions": [
    --             "AdministrativeAction"
    --           ],
    --           "CreationTime": number,
    --           "DNSName": "string",
    --           "FailureDetails": {
    --             "Message": "string"
    --           },
    --           "FileSystemId": "string",
    --           "FileSystemType": "string",
    --           "FileSystemTypeVersion": "string",
    --           "KmsKeyId": "string",
    --           "Lifecycle": "string",
    --           "LustreConfiguration": {
    --             "AutomaticBackupRetentionDays": number,
    --             "CopyTagsToBackups": boolean,
    --             "DailyAutomaticBackupStartTime": "string",
    --             "DataCompressionType": "string",
    --             "DataRepositoryConfiguration": {
    --               "AutoImportPolicy": "string",
    --               "ExportPath": "string",
    --               "FailureDetails": {
    --                 "Message": "string"
    --               },
    --               "ImportedFileChunkSize": number,
    --               "ImportPath": "string",
    --               "Lifecycle": "string"
    --             },
    --             "DeploymentType": "string",
    --             "DriveCacheType": "string",
    --             "LogConfiguration": {
    --               "Destination": "string",
    --               "Level": "string"
    --             },
    --             "MountName": "string",
    --             "PerUnitStorageThroughput": number,
    --             "WeeklyMaintenanceStartTime": "string"
    --           },
    --           "NetworkInterfaceIds": [
    --             "string"
    --           ],
    --           "OntapConfiguration": {
    --             "AutomaticBackupRetentionDays": number,
    --             "DailyAutomaticBackupStartTime": "string",
    --             "DeploymentType": "string",
    --             "DiskIopsConfiguration": {
    --               "Iops": number,
    --               "Mode": "string"
    --             },
    --             "EndpointIpAddressRange": "string",
    --             "Endpoints": {
    --               "Intercluster": {
    --                 "DNSName": "string",
    --                 "IpAddresses": [
    --                   "string"
    --                 ]
    --               },
    --               "Management": {
    --                 "DNSName": "string",
    --                 "IpAddresses": [
    --                   "string"
    --                 ]
    --               }
    --             },
    --             "PreferredSubnetId": "string",
    --             "RouteTableIds": [
    --               "string"
    --             ],
    --             "ThroughputCapacity": number,
    --             "WeeklyMaintenanceStartTime": "string"
    --           },
    --           "OpenZFSConfiguration": {
    --             "AutomaticBackupRetentionDays": number,
    --             "CopyTagsToBackups": boolean,
    --             "CopyTagsToVolumes": boolean,
    --             "DailyAutomaticBackupStartTime": "string",
    --             "DeploymentType": "string",
    --             "DiskIopsConfiguration": {
    --               "Iops": number,
    --               "Mode": "string"
    --             },
    --             "RootVolumeId": "string",
    --             "ThroughputCapacity": number,
    --             "WeeklyMaintenanceStartTime": "string"
    --           },
    --           "OwnerId": "string",
    --           "ResourceARN": "string",
    --           "StorageCapacity": number,
    --           "StorageType": "string",
    --           "SubnetIds": [
    --             "string"
    --           ],
    --           "Tags": [
    --             {
    --               "Key": "string",
    --               "Value": "string"
    --             }
    --           ],
    --           "VpcId": "string",
    --           "WindowsConfiguration": {
    --             "ActiveDirectoryId": "string",
    --             "Aliases": [
    --               {
    --                 "Lifecycle": "string",
    --                 "Name": "string"
    --               }
    --             ],
    --             "AuditLogConfiguration": {
    --               "AuditLogDestination": "string",
    --               "FileAccessAuditLogLevel": "string",
    --               "FileShareAccessAuditLogLevel": "string"
    --             },
    --             "AutomaticBackupRetentionDays": number,
    --             "CopyTagsToBackups": boolean,
    --             "DailyAutomaticBackupStartTime": "string",
    --             "DeploymentType": "string",
    --             "MaintenanceOperationsInProgress": [
    --               "string"
    --             ],
    --             "PreferredFileServerIp": "string",
    --             "PreferredSubnetId": "string",
    --             "RemoteAdministrationEndpoint": "string",
    --             "SelfManagedActiveDirectoryConfiguration": {
    --               "DnsIps": [
    --                 "string"
    --               ],
    --               "DomainName": "string",
    --               "FileSystemAdministratorsGroup": "string",
    --               "OrganizationalUnitDistinguishedName": "string",
    --               "UserName": "string"
    --             },
    --             "ThroughputCapacity": number,
    --             "WeeklyMaintenanceStartTime": "string"
    --           }
    --         },
    --         "TargetSnapshotValues": {
    --           "AdministrativeActions": [
    --             "AdministrativeAction"
    --           ],
    --           "CreationTime": number,
    --           "Lifecycle": "string",
    --           "LifecycleTransitionReason": {
    --             "Message": "string"
    --           },
    --           "Name": "string",
    --           "ResourceARN": "string",
    --           "SnapshotId": "string",
    --           "Tags": [
    --             {
    --               "Key": "string",
    --               "Value": "string"
    --             }
    --           ],
    --           "VolumeId": "string"
    --         },
    --         "TargetVolumeValues": "Volume"
    --       }
    --     ],
    --     "CreationTime": number,
    --     "FileSystemId": "string",
    --     "Lifecycle": "string",
    --     "LifecycleTransitionReason": {
    --       "Message": "string"
    --     },
    --     "Name": "string",
    --     "OntapConfiguration": {
    --       "FlexCacheEndpointType": "string",
    --       "JunctionPath": "string",
    --       "OntapVolumeType": "string",
    --       "SecurityStyle": "string",
    --       "SizeInMegabytes": number,
    --       "StorageEfficiencyEnabled": boolean,
    --       "StorageVirtualMachineId": "string",
    --       "StorageVirtualMachineRoot": boolean,
    --       "TieringPolicy": {
    --         "CoolingPeriod": number,
    --         "Name": "string"
    --       },
    --       "UUID": "string"
    --     },
    --     "OpenZFSConfiguration": {
    --       "CopyTagsToSnapshots": boolean,
    --       "DataCompressionType": "string",
    --       "NfsExports": [
    --         {
    --           "ClientConfigurations": [
    --             {
    --               "Clients": "string",
    --               "Options": [
    --                 "string"
    --               ]
    --             }
    --           ]
    --         }
    --       ],
    --       "OriginSnapshot": {
    --         "CopyStrategy": "string",
    --         "SnapshotARN": "string"
    --       },
    --       "ParentVolumeId": "string",
    --       "ReadOnly": boolean,
    --       "RecordSizeKiB": number,
    --       "StorageCapacityQuotaGiB": number,
    --       "StorageCapacityReservationGiB": number,
    --       "UserAndGroupQuotas": [
    --         {
    --           "Id": number,
    --           "StorageCapacityQuotaGiB": number,
    --           "Type": "string"
    --         }
    --       ],
    --       "VolumePath": "string"
    --     },
    --     "ResourceARN": "string",
    --     "Tags": [
    --       {
    --         "Key": "string",
    --         "Value": "string"
    --       }
    --     ],
    --     "VolumeId": "string",
    --     "VolumeType": "string"
    --   }
    -- }

    EXEC @hr = sp_OADestroy @rest
    EXEC @hr = sp_OADestroy @authAws
    EXEC @hr = sp_OADestroy @json
    EXEC @hr = sp_OADestroy @sbRequestBody
    EXEC @hr = sp_OADestroy @sbResponseBody
    EXEC @hr = sp_OADestroy @jResp


END
GO